借助RAM实现子账号对主账号的 Log Service 资源的访问

您创建的Project、Logstore、Config、MachineGroup,都是您自己拥有的资源。默认情况下,您对自己的资源拥有完整的操作权限,可以使用本文档中列举的所有 API 对资源进行操作。

但在主子账号的场景下,子账号刚创建时是没有资格去操作主账号的资源的。需要通过RAM授权的方式,给予子账号操作主账号资源的权限。

说明
在了解如何使用 RAM 来授权和访问 Log Service 资源之前,请确保您已详细阅读了 用户RAM简介
RAM和日志服务相关的授权策略:
  • AliyunLogFullAccess
    给子用户授予该权限,那么子用户将对主账号拥有的日志服务的资源有完全的访问权限。授权策略描述如下:
      {
        "Version": "1",
        "Statement": [
          {
            "Action": "log:*",
            "Resource": "*",
            "Effect": "Allow"
          }
        ]
      }
  • AliyunLogReadOnlyAccess
    给子用户授予该权限,那么子用户将对主账号拥有的日志服务的资源有只读的访问权限。授权策略描述如下:
     {
        "Version": "1",
        "Statement": [
          {
            "Action": [
              "log:Get*",
              "log:List*"
            ],
            "Resource": "*",
            "Effect": "Allow"
          }
        ]
      }
  • 向指定日志库(Logstore)上传数据

    给予用户授予该权限,那么子用户将可以通过API/SDK直接向指定日志库上传数据,授权策略描述如下:

      {
        "Version": "1",
        "Statement": [
          {
            "Action": [
              "log:Post*",
              "log:BatchPost*"
            ],
            "Resource": "*",
            "Effect": "Allow"
          }
        ]
      }
  • 控制台查询指定日志库(Logstore)数据
    给子用户授予该权限,那么子用户在登录控制台后将对主账号拥有指定日志库资源只读的访问权限(查询日志、拖取日志、查看日志库列表)。授权策略描述如下:
      {
        "Version": "1",
        "Statement": [
          {
            "Action": ["log:ListProject", "log:ListLogStores"],
            "Resource": ["acs:log:*:*:project/<指定的 proejct 名称>/*"],
            "Effect": "Allow"
          },
          {
            "Action": ["log:Get*"],
            "Resource": ["acs:log:*:*:project/<指定的 proejct 名称>/logstore/<指定的 logstore 名称>"],
            "Effect": "Allow"
          }
        ]
      }

如果您不需要跨账户进行 Log Service 资源的授权和访问,您可以跳过此章节。跳过这些部分并不影响您对文档中其余部分的理解和使用。