将基于身份的策略(IAM 策略)用于 CloudWatch - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

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

重要

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

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

下面介绍权限策略示例。

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

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

使用 CloudWatch 控制台所需的权限

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

  • Amazon EC2 Auto Scaling

  • CloudTrail

  • CloudWatch

  • CloudWatch Events

  • CloudWatch Logs (CloudWatch 日志)

  • Amazon EC2

  • Amazon ES

  • IAM

  • Kinesis

  • Lambda

  • Amazon S3

  • Amazon SNS

  • Amazon SQS

  • Amazon SWF

  • X-Ray(如果您使用的是 ServiceLens 功能)

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

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

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

  • application-autoscaling:DescribeScalingPolicies

  • autoscaling:DescribeAutoScalingGroups

  • autoscaling:DescribePolicies

  • cloudtrail:DescribeTrails

  • cloudwatch:DeleteAlarms

  • cloudwatch:DescribeAlarmHistory

  • cloudwatch:DescribeAlarms

  • cloudwatch:GetMetricData

  • 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:DescribeStream

  • 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:DescribeQueries

  • logs:DescribeSubscriptionFilters

  • logs:FilterLogEvents

  • logs:GetLogGroupFields

  • logs:GetLogRecord

  • logs:GetLogEvents

  • logs:GetQueryResults

  • logs:PutMetricFilter

  • logs:PutRetentionPolicy

  • logs:PutSubscriptionFilter

  • logs:StartQuery

  • logs:StopQuery

  • logs:TestMetricFilter

  • s3:CreateBucket

  • s3:ListBucket

  • 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

此外,要查看 ServiceLens 中的服务地图,您需要 AWSXrayReadOnlyAccess

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

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

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

注意

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

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

CloudWatchFullAccess

这些区域有:CloudWatchFullAccess策略授予对所有 CloudWatch 操作和资源的完全访问权。该文件的内容如下:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:Describe*", "cloudwatch:*", "logs:*", "ssm-incidents:ListResponsePlans", "sns:*", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:GetRole" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": [ "events.amazonaws.com", "ssm.alarms.cloudwatch.amazonaws.com", "ssm-incidents.alarms.cloudwatch.amazonaws.com" ] } } } ] }

CloudWatchActionsEC2Access

这些区域有:云观察操作 2 访问策略授予对 CloudWatch 警报和指标,以及 Amazon EC2 元数据的只读访问权限。此外,它还授予对 EC2 实例的停止、终止和重启 API 操作的访问权限。

CloudWatchReadOnlyAccess

这些区域有:CloudWatchReadOnlyAccess策略授予对 CloudWatch 的只读访问权限。

CloudWatchAutomaticDashboardsAccess

这些区域有:CloudWatch-跨账户访问托管策略由CloudWatch-CloudWatch-CloudWatch 角色IAM 角色。此角色和策略使跨账户仪表板的用户能够查看共享仪表板的每个帐户中的自动仪表板。

以下内容云观察自动化仪表板访问

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "autoscaling:DescribeAutoScalingGroups", "cloudfront:GetDistribution", "cloudfront:ListDistributions", "dynamodb:DescribeTable", "dynamodb:ListTables", "ec2:DescribeInstances", "ec2:DescribeVolumes", "ecs:DescribeClusters", "ecs:DescribeContainerInstances", "ecs:ListClusters", "ecs:ListContainerInstances", "ecs:ListServices", "elasticache:DescribeCacheClusters", "elasticbeanstalk:DescribeEnvironments", "elasticfilesystem:DescribeFileSystems", "elasticloadbalancing:DescribeLoadBalancers", "kinesis:DescribeStream", "kinesis:ListStreams", "lambda:GetFunction", "lambda:ListFunctions", "rds:DescribeDBClusters", "rds:DescribeDBInstances", "resource-groups:ListGroupResources", "resource-groups:ListGroups", "route53:GetHealthCheck", "route53:ListHealthChecks", "s3:ListAllMyBuckets", "s3:ListBucket", "sns:ListTopics", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "sqs:ListQueues", "synthetics:DescribeCanariesLastRun", "tag:GetResources" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "apigateway:GET" ], "Effect": "Allow", "Resource": [ "arn:aws:apigateway:*::/restapis*" ] } ]
注意

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

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

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

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

  • CloudWatchSyntheticsFullAccess或者CloudWatchSyntheticsReadOnlyAccess— 查看 Canary 详细信息和 Canary 测试运行的结果。

  • AmazonS3ReadOnlyAccessCloudWatchReadOnlyAccess— 能够在 CloudWatch 控制台中读取所有 Synthetics 数据。

  • AWSLAMD 只读访问— 为了能够查看金丝雀使用的源代码。

  • CloudWatchSyntheticsFullAccess-使您能够创建 Canary, 此外,要创建将为其创建新 IAM 角色的 Canary,您还需要以下内联策略语句:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy" ], "Resource": [ "arn:aws:iam::*:role/service-role/CloudWatchSyntheticsRole*", "arn:aws:iam::*:policy/service-role/CloudWatchSyntheticsPolicy*" ] } ] }
    重要

    通过向用户授予 iam:CreateRoleiam:CreatePolicyiam:AttachRolePolicy 权限,用户将获得对 Amazon 账户的完全管理访问权限。例如,具有这些权限的用户可以创建一个对所有资源具有完全权限的策略,并将该策略附加到任何角色。请谨慎地为相关人员授予这些权限。

    有关附加策略和向用户授予权限的信息,请参阅更改 IAM 用户的权限为用户或角色嵌入内联策略

Amazon适用于的托管策略AmazonSystems Manager Events Manager

这些区域有:AWSS 云监视器 _ 操作服务策略策略附加到一个与服务相关的角色,该角色允许 CloudWatch 在Amazon代表您的系统经理事故管理员。有关更多信息,请参阅CloudWatch 警报服务相关角色权限

该策略具有以下权限:

  • SS-事件:开始事件

客户管理的策略示例

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

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

要授予用户对 CloudWatch 的完全访问权限,您可以使用授予用户CloudWatchFullAccess托管策略,而不是创建客户管理的策略。的内容CloudWatchFullAccess列在CloudWatchFullAccess

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

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

{ "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 操作是可选的。建议您选择这些操作以确保正确停止或终止了实例。

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

CloudWatch 更新Amazon托管策略

查看有关更新的详细信息Amazon托管策略 CloudWatch 因为此服务开始跟踪这些更改。有关此页面更改的自动警报,请订阅 CloudWatch 文档历史记录页面上的 RSS 源。

变更 描述 日期

AWSS 云监视器 _ 操作服务策略— 新托管策略

CloudWatch 添加了一个新的托管 IAM 策略,以允许 CloudWatch 在Amazon Systems Manager事件管理员。

2021 年 5 月 10 日

CloudWatchFullAccess— 更新到现有策略

CloudWatch 更改了CloudWatchFullAccess托管策略。进行了下列更改:

  • 这些区域有:ssm-incidents:ListResponsePlans权限添加到此策略中,以使客户能够检索其 SSM 事件响应计划。

  • 这些区域有:Resource允许iam:CreateServiceLinkedRole权限已更改为*使 CloudWatch 能够创建多个与服务相关的角色,包括 EventBridge 梁、SSM OpsItems 和 SSM 事件的角色。

  • 适用于iam:CreateServiceLinkedRole权限,StringLike部分已扩展,以允许ssm.alarms.cloudwatch.amazonaws.comssm-incidents.alarms.cloudwatch.amazonaws.com,以便 CloudWatch 可以创建创建 SSM 事件的警报所必需的服务链接角色。

2021 年 5 月 10 日

云观察自动化仪表板访问— 更新到现有策略

CloudWatch 添加了一个权限云观察自动化仪表板访问托管策略。这些区域有:synthetics:DescribeCanariesLastRun权限添加到此策略中,以使跨账户仪表板用户能够查看有关 CloudWatch Synthetics 金丝雀运行的详细信息。

2021 年 4 月 20 日

CloudWatch 开始跟踪更改

CloudWatch 开始跟踪其Amazon托管策略。

2021 年 4 月 14 日