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

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

本主题提供了基于身份的策略的示例,这些示例展示了账户管理员如何将权限策略附加到 IAM 身份 (即用户、组和角色),从而授予对 CloudWatch 资源执行操作的权限。

重要

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

本主题的各个部分涵盖以下内容:

下面介绍权限策略示例。

Copy
{ "Version": "2012-10-17", "Statement":[{ "Effect":"Allow", "Action":["cloudwatch:GetMetricStatistics","cloudwatch:ListMetrics"], "Resource":"*", "Condition":{ "Bool":{ "aws:SecureTransport":"true" } } } ] }

本示例策略包含一个语句,该语句向一个组授予执行两个 CloudWatch 操作 (cloudwatch:GetMetricStatisticsdatacloudwatch:ListMetrics) 的权限,但前提是该组将 SSL 用于请求 ("aws:SecureTransport":"true")。有关 IAM 策略语句中的元素的更多信息,请参阅 IAM 用户指南 中的指定策略元素:操作、效果和委托人IAM 策略元素参考

使用 CloudWatch 控制台所需的权限

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

  • Auto Scaling

  • CloudTrail

  • CloudWatch

  • CloudWatch Events

  • CloudWatch Logs

  • Amazon EC2

  • Amazon ES

  • IAM

  • Kinesis

  • Lambda

  • Amazon S3

  • Amazon SNS

  • Amazon SQS

  • Amazon SWF

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

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

下面列出了使用 CloudWatch 控制台所需的一整套权限:

  • applicationautoscaling:describeScalingPolicies

  • autoscaling:describeAutoScalingGroups

  • autoscaling:describePolicies

  • cloudtrail:describeTrails

  • cloudwatch:deleteAlarms

  • cloudwatch:describeAlarmHistory

  • cloudwatch:describeAlarms

  • cloudwatch:getMetricData

  • cloudwatch:getMetricDataForAccounts

  • cloudwatch:getMetricStatistics

  • cloudwatch:listMetrics

  • cloudwatch:putMetricAlarm

  • cloudwatch:putMetricData

  • ec2:describeInstances

  • ec2:describeTags

  • ec2:describeVolumes

  • es:describeElasticsearchDomain

  • es:listDomainNames

  • events:deleteRule

  • events:describeRule

  • events:disableRule

  • events:enableRule

  • events:listRules

  • events:putRule

  • 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

  • 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

  • s3:createBucket

  • s3:listBuckets

  • sns:createTopic

  • sns:getTopicAttributes

  • sns:listSubscriptions

  • sns:listTopics

  • sns:setTopicAttributes

  • sns:subscribe

  • sns:unsubscribe

  • sqs:getQueueAttributes

  • sqs:getQueueUrl

  • sqs:listQueues

  • sqs:setQueueAttributes

  • swf:createAction

  • swf:describeAction

  • swf:listActionTemplates

  • swf:registerAction

  • swf:registerDomain

  • swf:updateAction

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

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

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

  • CloudWatchFullAccess - 授予对 CloudWatch 的完全访问权限。

  • CloudWatchReadOnlyAccess - 授予对 CloudWatch 的只读访问权限。

  • CloudWatchActionsEC2Access - 授予对 CloudWatch 警报和指标以及 Amazon EC2 元数据的只读访问权限。授予对 EC2 实例的停止、终止和重启 API 操作的访问权限。

注意

您可以通过登录到 IAM 控制台并在该控制台中搜索特定策略来查看这些权限策略。

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

客户托管策略示例

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

示例 1:允许用户完全访问 CloudWatch

以下策略允许用户对所有 CloudWatch 操作、CloudWatch Logs 操作和 Amazon SNS 操作进行访问以及对 Auto Scaling 操作进行只读访问。

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

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

以下策略允许用户对 CloudWatch 进行只读访问以及查看 Auto Scaling 操作、CloudWatch 指标、CloudWatch Logs 数据和警报相关 Amazon SNS 数据。

Copy
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "autoscaling:Describe*", "cloudwatch:Describe*", "cloudwatch:Get*", "cloudwatch:List*", "logs:Get*", "logs:Describe*", "sns:Get*", "sns:List*" ], "Effect": "Allow", "Resource": "*" } ] }

示例 3:停止或终止 Amazon EC2 实例

以下策略允许 CloudWatch 警报操作停止或终止 EC2 实例。在以下示例中,GetMetricStatistics、ListMetrics 和 DescribeAlarms 操作是可选的。建议您选择这些操作以确保正确停止或终止了实例。

Copy
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:PutMetricAlarm", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:DescribeAlarms" ], "Sid": "00000000000000", "Resource": [ "*" ], "Effect": "Allow" }, { "Action": [ "ec2:DescribeInstanceStatus", "ec2:DescribeInstances", "ec2:StopInstances", "ec2:TerminateInstances" ], "Sid": "00000000000000", "Resource": [ "*" ], "Effect": "Allow" } ] }