通过访问控制RAM可以为名下的RAM用户(子用户)授权,本文档为您介绍常见的自定义授权场景和授权内容。

背景信息

基于安全考虑,建议您为RAM用户授予最小可用权限。通常情况下,您需要为RAM用户授予Project列表的只读权限,否则RAM用户无法进入Project列表查看资源。具体请参见系统授权策略自定义授权策略

控制台场景

  • Project只读权限
    例如主账号需要授予RAM用户以下权限:
    • RAM用户具有主账号Project列表的查看权限。
    • RAM用户具有主账号指定Project的只读权限。
    同时满足上述权限的权限策略如下:
    {
       "Version": "1",
       "Statement": [
         {
           "Action": ["log:ListProject"],
           "Resource": ["acs:log:*:*:project/*"],
           "Effect": "Alow"
          },
         {
           "Action": [
             "log:Get*",
             "log:List*"
           ],
           "Resource": "acs:log:*:*:project/<指定的project名称>/*",
           "Effect": "Allow"
         }
       ]
     }
  • 指定Logstore的只读权限和快速查询的创建、使用权限
    例如主账号需要授予RAM用户以下权限:
    • RAM用户具有主账号Project列表的查看权限。
    • RAM用户具有指定Logstore的只读权限,同时具有创建并管理快速查询的权限。
    同时满足上述权限的权限策略如下:
    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "log:ListProject"
          ],
          "Resource": "acs:log:*:*:project/*",
          "Effect": "Allow"
        },
        {
          "Action": [
            "log:List*"
          ],
          "Resource": "acs:log:*:*:project/<指定的Project名称>/logstore/*",
          "Effect": "Allow"
        },
        {
          "Action": [
            "log:Get*",
            "log:List*"
          ],
          "Resource": [
            "acs:log:*:*:project/<指定的Project名称>/logstore/<指定的Logstore名称>"
          ],
          "Effect": "Allow"
        },
        {
          "Action": [
            "log:List*"
          ],
          "Resource": [
            "acs:log:*:*:project/<指定的Project名称>/dashboard",
            "acs:log:*:*:project/<指定的Project名称>/dashboard/*"
          ],
          "Effect": "Allow"
        },
        {
          "Action": [
            "log:Get*",
            "log:List*",
            "log:Create*"
          ],
          "Resource": [
            "acs:log:*:*:project/<指定的Project名称>/savedsearch",
            "acs:log:*:*:project/<指定的Project名称>/savedsearch/*"
          ],
          "Effect": "Allow"
        }
      ]
    }
    说明 授权策略中Resource内容结尾不带*仅表示当前资源,带*表示当前资源下的其他资源,内容用*代替。
  • 指定Logstore的只读权限及指定Project中快速查询和仪表盘的只读权限
    例如主账号需要授予RAM用户以下权限:
    • RAM用户具有主账号Project列表的查看权限。
    • RAM用户具有指定Logstore的只读权限,同时具有查看该Project中所有的快速查询和仪表盘列表的权限。
    同时满足上述权限的权限策略如下:
    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "log:ListProject"
          ],
          "Resource": "acs:log:*:*:project/*",
          "Effect": "Allow"
        },
        {
          "Action": [
            "log:List*"
          ],
          "Resource": "acs:log:*:*:project/<指定的Project名称>/logstore/*",
          "Effect": "Allow"
        },
        {
          "Action": [
            "log:Get*",
            "log:List*"
          ],
          "Resource": [
            "acs:log:*:*:project/<指定的Project名称>/logstore/<指定的Logstore名称>"
          ],
          "Effect": "Allow"
        },
        {
          "Action": [
            "log:Get*",
            "log:List*"
          ],
          "Resource": [
            "acs:log:*:*:project/<指定的Project名称>/dashboard",
            "acs:log:*:*:project/<指定的Project名称>/dashboard/*"
          ],
          "Effect": "Allow"
        },
        {
          "Action": [
            "log:Get*",
            "log:List*"
          ],
          "Resource": [
            "acs:log:*:*:project/<指定的Project名称>/savedsearch",
            "acs:log:*:*:project/<指定的Project名称>/savedsearch/*"
          ],
          "Effect": "Allow"
        }
      ]
    }

API场景

  • 指定Project的写入权限
    授予RAM用户向指定Project写入数据的权限,不包含查询等其他操作权限。
    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "log:Post*"
          ],
          "Resource": "acs:log:*:*:project/<指定的project名称>/*",
          "Effect": "Allow"
        }
      ]
    }
  • 指定Project的消费权限
    授予RAM用户消费指定Project数据的权限,不包含数据写入、查询等其他操作权限。
    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "log:ListShards",
            "log:GetCursorOrData",
            "log:GetConsumerGroupCheckPoint",
            "log:UpdateConsumerGroup",
            "log:ConsumerGroupHeartBeat",
            "log:ConsumerGroupUpdateCheckPoint",
            "log:ListConsumerGroup",
            "log:CreateConsumerGroup"
          ],
          "Resource": "acs:log:*:*:project/<指定的project名称>/*",
          "Effect": "Allow"
        }
      ]
    }
  • 指定Logstore的消费权限
    授予RAM用户消费指定Logstore数据的权限,不包含数据写入、查询等其他操作权限。
    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "log:ListShards",
            "log:GetCursorOrData",
            "log:GetConsumerGroupCheckPoint",
            "log:UpdateConsumerGroup",
            "log:ConsumerGroupHeartBeat",
            "log:ConsumerGroupUpdateCheckPoint",
            "log:ListConsumerGroup",
            "log:CreateConsumerGroup"
          ],
          "Resource": [
            "acs:log:*:*:project/<指定的project名称>/logstore/<指定的Logstore名称>",
            "acs:log:*:*:project/<指定的project名称>/logstore/<指定的Logstore名称>/*"
          ],
          "Effect": "Allow"
        }
      ]
    }

更多参考

更多授权信息请参见: