跨账号API错误诊断授权

在使用错误诊断工具时,可能会遇到无权限查询其他账号的API诊断信息的情况。这将影响对API错误原因的分析及解决方案的获取。本文将介绍如何通过账号授权,以获取查询其他账号API诊断信息的权限。

同一阿里云账号内

您可以为需要查看API诊断信息的RAM用户授予相应权限,以便其能够查看其他RAM用户或RAM角色的API诊断信息。

步骤一:创建自定义权限策略

  1. 使用主账号或者具有RAM管理权限的RAM用户登录RAM 访问控制

  2. 在左侧导航栏,选择权限管理,单击权限策略

  3. 权限策略页面,单击创建权限策略

    image

  4. 创建权限策略页面,单击脚本编辑页签。

    image

  5. 复制下面权限策略内容,单击确定

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "openapiexplorer:GetRequestLog",
                    "ram:DecodeDiagnosticMessage"
                ],
                "Resource": "*"
            }
        ]
    }
    说明

    该权限策略允许用户查看阿里云账号下所有的API调用日志及无权限访问的详细信息。

  6. 输入权限策略名称备注,单击确定

步骤二:RAM用户授权

您可以任选以下一种方式为RAM用户授权:

步骤三:查看API诊断结果

访问OpenAPI问题诊断,输入待查询的RequestId,单击诊断

image

不同阿里云账号之间

当需要查看其他阿里云账号的API诊断信息时,您可以通过角色扮演的方式获得相应权限。

方案流程如下:

image

账号A:调用API报错的账号。

账号B:需查看API诊断信息的账号。

  1. 账号A创建RAM角色,并授权允许账号B扮演。

  2. 账号B创建RAM用户,并授权该RAM用户进行角色扮演。

  3. 账号B通过RAM用户扮演账号A所提供的RAM角色,即可在错误诊断工具中成功完成跨账号API诊断信息的查询。

步骤一:账号A创建RAM角色并授权

  1. 创建RAM角色

    使用账号A登录RAM控制台,创建一个可信实体类型为阿里云账号的RAM角色。更多关于创建RAM角色的信息,请参见创建一个可信实体类型为阿里云账号的RAM角色。在创建角色页面创建可信实体为阿里云账号的RAM角色信任的云账号

    说明

    在创建角色页面选择信任的云账号处,选择其他云账号并填入账号B的账号ID(UID)。

    image

  2. 创建自定义权限策略

    具体操作步骤请参考步骤一:创建自定义权限策略

  3. RAM角色授权

    RAM角色授予步骤2创建的自定义权限策略,具体操作,请参见RAM角色授权

步骤二:账号B创建RAM用户并授权

  1. 创建RAM用户

    使用账号B登录RAM控制台,创建一个RAM用户。关于如何创建RAM用户,请参见创建RAM用户

    说明

    为了账号安全,建议您根据实际情况为RAM用户只配置一种访问方式,将控制台访问和程序访问分离,避免混用。

    image

  2. RAM用户授权

    在扮演RAM角色之前,需要为RAM用户授予扮演RAM角色的权限。使用账号B为该RAM用户授予AliyunSTSAssumeRoleAccess权限,以允许该RAM用户扮演所有RAM角色。有关如何为RAM用户授权的详细信息,请参见RAM用户授权

    说明

    如果希望该RAM用户仅能扮演指定的RAM角色,具体操作,请参见RAM角色和STS Token常见问题

步骤三:扮演RAM角色并查看API诊断信息

  1. 使用账号B创建的RAM用户访问RAM用户登录页进行登录。

  2. 将鼠标悬停在右上角头像的位置,单击切换身份image

  3. 角色切换页面,输入相关信息后,请单击提交进行登录。本示例输入的值为账号A的账号ID(UID)和RAM角色名称。image

  4. 查看API诊断信息。

    访问OpenAPI问题诊断,输入待查询的RequestId,单击诊断

    image