全部产品
Search
文档中心

日志服务:RAM自定义授权场景

更新时间:Feb 01, 2024

本文介绍常见的自定义授权场景和授权策略。

重要
  • 权限策略中的Logstore包括Logstore和MetricStore。当您的操作对象为MetricStore时,如下策略同样适用。

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

控制台场景

  • Project列表的查看权限

    例如使用阿里云账号授予RAM用户以下权限:

    • RAM用户具备当前阿里云账号下的Project列表的查看权限。

    同时满足上述权限的权限策略如下:

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "log:ListProject"
          ],
          "Resource": [
            "acs:log:*:*:project/*"
          ],
          "Effect": "Allow"
        }
      ]
    }

  • Project只读权限

    例如使用阿里云账号授予RAM用户以下权限:

    • RAM用户具备当前阿里云账号下的Project列表的查看权限。

    • RAM用户具备当前阿里云账号下指定的Project的只读权限。

    说明

    如果只授予Project只读权限,则该RAM用户仍无权限查看Project下的日志,还需授予Logstore只读权限。

    同时满足上述权限的权限策略如下:

    {
       "Version": "1",
       "Statement": [
         {
           "Action": ["log:ListProject"],
           "Resource": ["acs:log:*:*:project/*"],
           "Effect": "Allow"
          },
         {
           "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"
        }
      ]
    }
  • 指定Logstore的只读权限及指定Project中快速查询和仪表盘的只读权限

    例如使用阿里云账号授予RAM用户以下权限:

    • RAM用户具备当前阿里云账号下的Project列表的查看权限。

    • RAM用户具备指定的Logstore的只读权限,同时具备查看该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"
        }
      ]
    }
  • 指定Logstore的写入权限

    授予RAM用户向指定Logstore写入数据的权限,不包含查询等其他操作权限。

    权限策略中的Logstore包括了Logstore和MetricStore。当您的操作对象为MetricStore时,如下策略同样适用。

    {
      "Version":"1",
      "Statement":[
        {
          "Effect":"Allow",
          "Action":[
            "log:PostLogStoreLogs"
          ],
          "Resource":[
            "acs:log:*:*:project/<指定的Project名称>/logstore/<指定的Logstore名称>"
          ]
        }
      ]
    }
  • 指定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"
        }
      ]
    }
  • 指定Logstore必须启用加密配置

    授予RAM用户该权限策略后,RAM用户创建或者修改Logstore时必须指定加密配置。 未授予该权限策略的RAM用户,创建或修改Logstore时可以不指定加密配置。

    说明

    您可以自行指定Project名称和Logstore名称,也可以用星号(*)进行模糊匹配。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "log:CreateLogStore",
            "log:UpdateLogStore"
          ],
          "Resource": [
            "acs:log:*:*:project/<指定的Project名称>/logstore/<指定的Logstore名称>",
            "acs:log:*:*:project/<指定的project名称>/logstore/*"
          ],
          "Condition": {
            "Bool": {
              "log:Encrypted": "true"
            }
          }
        }
      ]
    }

日志应用场景

  • 使用日志应用所需的权限

    如果使用了以下日志应用,需要对子账号或者角色授予相应的权限。

    • 通用数据库审计

    • 移动运维监控

    • Flowlog日志中心

    • 日志分析 For AWS CloudTrail

    • SREWorks

    • 通用主机审计

    • 智能异常分析

    以下是使用日志应用所需的权限配置。

    • 只读权限

      {
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "log:GetResource",
                      "log:ListResources",
                      "log:GetResourceRecord",
                      "log:ListResourceRecords"
                  ],
                  "Resource": [
                      "acs:log:*:*:resource/*"
                  ]
              }
          ]
      }
    • 管理权限

      {
          "Statement": [
                {
            "Effect": "Allow",
            "Action": [
              "log:*"
            ],
            "Resource": [
              "acs:log:*:*:resource/*"
            ]
          }
          ]
      }

更多参考