Amazon CloudWatch Logs
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

为 CloudWatch Logs 使用基于身份的策略(IAM 策略)

本主题提供了基于身份的策略的示例,在这些策略中,账户管理员可以向 IAM 身份(即:用户、组和角色)挂载权限策略。

重要

我们建议您首先阅读以下介绍性主题,这些主题讲解了管理 CloudWatch Logs 资源访问的基本概念和选项。有关更多信息,请参阅管理对您的 CloudWatch Logs 资源的访问权限的概述

本主题包含以下内容:

下面是权限策略的示例:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }

本策略具有一个语句,该语句授予了创建日志组和日志流、将事件上传到日志流和列出有关日志流的详细信息的权限。

Resource 值结尾的通配符 (*) 表示一个语句,该语句授予了对任何日志组执行 logs:CreateLogGrouplogs:CreateLogStreamlogs:PutLogEventslogs:DescribeLogStreams 操作的权限。要将此权限限制到特定日志组,请使用将资源 ARN 中的通配符 (*) 替换为特定日志组 ARN。要了解 IAM 策略语句中有关这些部分的更多信息,请参阅 IAM 用户指南使用 IAM 中的 IAM 策略元素参考。有关显示所有 CloudWatch Logs 操作的列表,请参阅 CloudWatch Logs 权限参考

使用 CloudWatch 控制台所需要的权限

用户若要能够在 CloudWatch 控制台中使用 CloudWatch Logs,则必须拥有一组最低的权限来允许其在自己的 AWS 账户中描述其他 AWS 资源。要在 CloudWatch 控制台中使用 CloudWatch Logs,您必须拥有来自以下服务的权限:

  • CloudWatch

  • CloudWatch Logs

  • Amazon ES

  • IAM

  • Kinesis

  • Lambda

  • Amazon S3

如果创建比必需的最低权限更为严格的 IAM 策略,对于附加该 IAM 策略的用户,控制台将无法按预期正常运行。为确保这些用户仍可使用 CloudWatch 控制台,请另外附加 CloudWatchReadOnlyAccess 托管策略,如适用于 CloudWatch Logs 的 AWS 托管(预定义)策略所述。

对于只需要调用 AWS CLI 或 CloudWatch Logs API 的用户,无需为其提供最低控制台权限。

对于未使用控制台管理日志订阅的用户,使用 CloudWatch 控制台所需的完整权限集为:

  • cloudwatch:getMetricData

  • cloudwatch:listMetrics

  • logs:cancelExportTask

  • logs:createExportTask

  • logs:createLogGroup

  • logs:createLogStream

  • logs:deleteLogGroup

  • logs:deleteLogStream

  • logs:deleteMetricFilter

  • logs:deleteRetentionPolicy

  • logs:deleteSubscriptionFilter

  • logs:describeExportTasks

  • logs:describeLogGroups

  • logs:describeLogStreams

  • logs:describeMetricFilters

  • logs:describeSubscriptionFilters

  • logs:filterLogEvents

  • logs:getLogEvents

  • logs:putMetricFilter

  • logs:putRetentionPolicy

  • logs:putSubscriptionFilter

  • logs:testMetricFilter

对于同时使用控制台来管理日志订阅的用户,还需要以下权限:

  • es:describeElasticsearchDomain

  • es:listDomainNames

  • iam:attachRolePolicy

  • iam:createRole

  • iam:getPolicy

  • iam:getPolicyVersion

  • iam:getRole

  • iam:listAttachedRolePolicies

  • iam:listRoles

  • kinesis:describeStreams

  • kinesis:listStreams

  • lambda:addPermission

  • lambda:createFunction

  • lambda:getFunctionConfiguration

  • lambda:listAliases

  • lambda:listFunctions

  • lambda:listVersionsByFunction

  • lambda:removePermission

  • s3:listBuckets

适用于 CloudWatch Logs 的 AWS 托管(预定义)策略

AWS 通过提供由 AWS 创建和管理的独立 IAM 策略来解决许多常用案例。托管策略可授予常用案例的必要权限,因此,您可以免去调查都需要哪些权限的工作。有关更多信息,请参阅 IAM 用户指南 中的 AWS 托管策略

以下 AWS 托管策略(可以附加到您的账户中的用户)是特定于 CloudWatch Logs 的:

  • CloudWatchLogsFullAccess – 授予对 CloudWatch Logs 的完全访问权限。

  • CloudWatchLogsReadOnlyAccess – 授予对 CloudWatch Logs 的只读访问权限。

注意

您可在登录 IAM 控制台后搜索特定策略来查看这些权限策略。

此外,您还可以创建自己的自定义 IAM 策略,以授予 CloudWatch Logs 操作和资源的相关权限。您可以将这些自定义策略附加到需要这些权限的 IAM 用户或组。

客户托管策略示例

本节的用户策略示例介绍如何授予各 CloudWatch Logs 操作的权限。当您使用 CloudWatch Logs API、AWS 开发工具包或 AWS CLI 时,可以使用这些策略。

示例 1:允许对 CloudWatch Logs 进行完全访问

以下策略允许用户访问所有 CloudWatch Logs 操作。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:*" ], "Effect": "Allow", "Resource": "*" } ] }

示例 2:允许对 CloudWatch Logs 进行只读访问

以下策略允许用户对 CloudWatch Logs 数据进行只读访问。

{ "Version":"2012-10-17", "Statement":[ { "Action":[ "logs:Describe*", "logs:Get*", "logs:TestMetricFilter", "logs:FilterLogEvents" ], "Effect":"Allow", "Resource":"*" } ] }