Amazon CloudWatch Logs
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

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

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

重要

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

本主题包含以下内容:

下面是权限策略的示例:

Copy
{ "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 策略元素参考。有关显示所有 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 操作。

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

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

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

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