日志服务自定义权限策略参考

如果系统权限策略不能满足您的要求,您可以创建自定义权限策略实现最小授权。使用自定义权限策略有助于实现权限的精细化管控,是提升资源访问安全的有效手段。本文介绍日志服务使用自定义权限策略的场景和策略示例。

什么是自定义权限策略

在基于RAM的访问控制体系中,自定义权限策略是指在系统权限策略之外,您可以自主创建、更新和删除的权限策略。自定义权限策略的版本更新需由您来维护。

  • 创建自定义权限策略后,需为RAM用户、用户组或RAM角色绑定权限策略,这些RAM身份才能获得权限策略中指定的访问权限。

  • 已创建的权限策略支持删除,但删除前需确保该策略未被引用。如果该权限策略已被引用,您需要在该权限策略的引用记录中移除授权。

  • 自定义权限策略支持版本控制,您可以按照RAM规定的版本管理机制来管理您创建的自定义权限策略版本。

操作文档

常见自定义权限策略场景及示例

重要
  • 本文示例中所有的权限策略也适用于资源为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"
    }
  ]
}

指定Project的写入权限

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

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "log:Post*"
      ],
      "Resource": "acs:log:*:*:project/<指定的project名称>/*",
      "Effect": "Allow"
    }
  ]
}

指定Logstore的写入权限

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

{
  "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

  • 通用主机审计

  • 智能异常分析

  • 应用自定义仪表盘

  • 仪表盘演示列表

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

  • 只读权限

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

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

授权信息参考

使用自定义权限策略,您需要了解业务的权限管控需求,并了解日志服务的授权信息。详细内容请参见授权信息