共享 CloudWatch 控制面板 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

共享 CloudWatch 控制面板

您可以与无法直接访问您 Amazon 账户的人员共享 CloudWatch 控制面板。这使您能够跨团队、与利益攸关方以及企业外部人员共享控制面板。您甚至可以在团队区域的大屏幕上显示控制面板,或将控制面板嵌入到 Wiki 和其他网页中。

警告

向与您共享控制面板的所有人员授予该账户中 授予与您共享控制面板的人员的权限 列出的权限。如果您公开共享控制面板,则拥有控制面板链接的所有人均具有这些权限。

cloudwatch:GetMetricDataec2:DescribeTags 权限范围不能缩小到特定指标或 EC2 实例,因此具有控制面板访问权限的人员可以查询所有 CloudWatch 指标以及账户中所有 EC2 实例的名称和标签。

共享控制面板时,您可以通过三种方式指定谁可以查看控制面板:

  • 共享单个控制面板并指定可查看控制面板的人员的特定电子邮件地址。这些用户中的每个用户都会创建自己的密码,他们必须输入该密码才能查看控制面板。

  • 公开共享单个控制面板,以便拥有该链接的任何人都可以查看控制面板。

  • 共享您账户中的所有 CloudWatch 控制面板,并指定第三方单点登录 (SSO) 提供商进行控制面板访问。属于此 SSO 提供商列表成员的所有用户均可访问该账户中的所有控制面板。要启用此功能,请将 SSO 提供商与 Amazon Cognito 集成。SSO 提供商必须支持安全断言标记语言 (SAML)。有关 Amazon Cognito 的更多信息,请参阅什么是 Amazon Cognito?

共享控制面板所需的权限

要能够使用以下任一方法共享控制面板并查看已共享哪些控制面板,您必须登录具有特定权限的 IAM 用户或 IAM 角色。

为了能够共享控制面板,您的 IAM 用户或 IAM 角色必须包含以下策略语句中包含的权限:

{ "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy", "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/service-role/CWDBSharing*", "arn:aws:iam::*:policy/*" ] }, { "Effect": "Allow", "Action": [ "cognito-idp:*", "cognito-identity:*", ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:GetDashboard", ], "Resource": [ "*" // or the ARNs of dashboards that you want to share ] }

为了能够查看已共享的控制面板但无法共享控制面板,您的 IAM 用户或 IAM 角色可以包含类似于以下内容的策略语句:

{ "Effect": "Allow", "Action": [ "cognito-idp:*", "cognito-identity:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:ListDashboards", ], "Resource": [ "*" ] }

授予与您共享控制面板的人员的权限

当您共享控制面板时,CloudWatch 会在账户中创建一个 IAM 角色,该角色会向与您共享控制面板的人员授予以下权限:

  • cloudwatch:GetInsightRuleReport

  • cloudwatch:GetMetricData

  • cloudwatch:DescribeAlarms

  • ec2:DescribeTags

警告

向与您共享控制面板的所有人员授予该账户的这些权限。如果您公开共享控制面板,则拥有控制面板链接的所有人均具有这些权限。

cloudwatch:GetMetricDataec2:DescribeTags 权限范围不能缩小到特定指标或 EC2 实例,因此具有控制面板访问权限的人员可以查询所有 CloudWatch 指标以及账户中所有 EC2 实例的名称和标签。

共享控制面板时,默认情况下,CloudWatch 创建的权限仅限制对共享控制面板上的告警和 Contributor Insights 规则的访问。如果您向控制面板添加新告警或 Contributor Insights 规则,并希望与您共享控制面板的人员也能查看,则必须更新策略以允许这些资源。

与特定用户共享单个控制面板

使用本节中的步骤,以便与您选择的特定电子邮件地址共享控制面板。

注意

默认情况下,控制面板上的任何 CloudWatch Logs 小组件对与您共享控制面板的人员均不可见。有关更多信息,请参阅 允许与您共享的人员查看日志表小组件

默认情况下,控制面板上的任何复合告警小组件对与您共享控制面板的人员均不可见。有关更多信息,请参阅 允许与您共享的人员查看复合告警

与特定用户共享控制面板

  1. 访问 https://console.aws.amazon.com/cloudwatch/,打开 CloudWatch 控制台。

  2. 在导航窗格中,选择 Dashboards(控制面板)

  3. 选择控制面板的名称。

  4. 依次选择 Actions(操作)Share dashboard(共享控制面板)

  5. Share your dashboard and require a username and password(共享您的控制面板且需要用户名和密码)旁边,选择 Start sharing(开始共享)

  6. Add email addresses(添加电子邮件地址)下,输入要与其共享控制面板的电子邮件地址。

  7. 输入所有电子邮件地址后,阅读协议并选择确认框。然后,选择 Preview policy(预览策略)

  8. 确认将要共享的资源是您想要的,然后选择 Confirm and generate shareable link(确认并生成可共享的链接)

  9. 在下一页上,选择 Copy link to clipboard(将链接复制到剪贴板)。然后,您可以将此链接粘贴到电子邮件中并将其发送给受邀用户。他们会自动收到一封带有用户名和临时密码的单独电子邮件,用于连接到控制面板。

公开共享单个控制面板

按照本节中的步骤公开共享控制面板。这十分有利于在团队会议室的大屏幕上显示控制面板或嵌入 Wiki 页面。

重要

公开共享控制面板使得拥有该链接的任何人都可以访问该控制面板,而无需身份验证。仅对不包含敏感信息的控制面板执行此操作。

注意

默认情况下,控制面板上的任何 CloudWatch Logs 小组件对与您共享控制面板的人员均不可见。有关更多信息,请参阅 允许与您共享的人员查看日志表小组件

默认情况下,控制面板上的任何复合告警小组件对与您共享控制面板的人员均不可见。有关更多信息,请参阅 允许与您共享的人员查看复合告警

公开共享控制面板

  1. 访问 https://console.aws.amazon.com/cloudwatch/,打开 CloudWatch 控制台。

  2. 在导航窗格中,选择 Dashboards(控制面板)

  3. 选择控制面板的名称。

  4. 依次选择 Actions(操作)Share dashboard(共享控制面板)

  5. Share your dashboard publicly(公开共享您的控制面板)旁,选择 Start sharing(开始共享)

  6. 在文本框中输入 Confirm

  7. 阅读协议并选择确认框。然后,选择 Preview policy(预览策略)

  8. 确认将要共享的资源是您想要的,然后选择 Confirm and generate shareable link(确认并生成可共享的链接)

  9. 在下一页上,选择 Copy link to clipboard(将链接复制到剪贴板)。然后,您可以共享此链接。与您共享链接的任何人都可以访问控制面板,而无需提供凭证。

使用 SSO 共享账户中的所有 CloudWatch 控制面板

使用本节中的步骤,通过单点登录 (SSO) 与用户共享您账户中的所有控制面板。

注意

默认情况下,控制面板上的任何 CloudWatch Logs 小组件对与您共享控制面板的人员均不可见。有关更多信息,请参阅 允许与您共享的人员查看日志表小组件

默认情况下,控制面板上的任何复合告警小组件对与您共享控制面板的人员均不可见。有关更多信息,请参阅 允许与您共享的人员查看复合告警

与 SSO 提供商列表中的用户共享您的 CloudWatch 控制面板

  1. 访问 https://console.aws.amazon.com/cloudwatch/,打开 CloudWatch 控制台。

  2. 在导航窗格中,选择 Dashboards(控制面板)

  3. 选择控制面板的名称。

  4. 依次选择 Actions(操作)Share dashboard(共享控制面板)

  5. 选择 Go to CloudWatch Settings(转到 CloudWatch 设置)

  6. 如果您需要的 SSO 提供商未在 Available SSO providers(可用 SSO 提供商)中列出,请选择 Manage SSO providers(管理 SSO 提供商)并按照 为 CloudWatch 控制面板共享设置 SSO 中的说明进行操作。

    然后返回到 CloudWatch 控制台并刷新浏览器。您启用的 SSO 提供商现在应显示在列表中。

  7. Available SSO providers(可用 SSO 提供商)列表中选择所需的 SSO 提供商。

  8. 选择保存更改

为 CloudWatch 控制面板共享设置 SSO

若要通过支持 SAML 的第三方单点登录提供商设置控制面板共享,请按照下列步骤操作。

重要

我们强烈建议您不要使用非 SAML SSO 提供商共享控制面板。这样操作会导致无意中允许第三方访问您账户的控制面板的风险。

设置 SSO 提供商以启用控制面板共享

  1. 将 SSO 提供商与 Amazon Cognito 集成。有关更多信息,请参阅将第三方 SAML 身份提供商与 Amazon Cognito 用户池集成

  2. 从 SSO 提供商下载元数据 XML 文件。

  3. 访问 https://console.aws.amazon.com/cloudwatch/,打开 CloudWatch 控制台。

  4. 在导航窗格中,选择 Settings

  5. Dashboard sharing(控制面板共享)部分中,选择 Configure(配置)

  6. 选择 Manage SSO providers(管理 SSO 提供商)

    此操作会在美国东部(弗吉尼亚北部)区域 (us-east-1) 中打开 Amazon Cognito 控制台。如果您没有看到任何 User Pools(用户池),则 Amazon Cognito 控制台可能已在其他区域中打开。如果是,请将区域更改为 US East (N. Virginia) us-east-1(美国东部(弗吉尼亚北部)us-east-1),然后继续执行后续步骤。

  7. 选择 CloudWatchDashboardSharing 池。

  8. 在导航窗格中,选择 Identity providers(身份提供商)。

  9. 选择 SAML

  10. Provider name(提供商名称)中输入您的 SSO 提供商的名称。

  11. 选择 Select file(选择文件),然后选择您在步骤 1 中下载的元数据 XML 文件。

  12. 选择创建提供商

查看已共享的控制面板的数量

您可以使用 CloudWatch 控制台查看当前正在与其他人共享的 CloudWatch 控制面板的数量。

查看正在共享的控制面板的数量

  1. 访问 https://console.aws.amazon.com/cloudwatch/,打开 CloudWatch 控制台。

  2. 在导航窗格中,选择 Settings

  3. Dashboard sharing(共享控制面板)部分会显示共享的控制面板的数量。

  4. 要查看共享的控制面板,请选择 Username and password(用户名和密码)Public dashboards(公有控制面板)下的 number dashboards shared(共享控制面板数量)

查看您的哪些控制面板已共享

您可以使用 CloudWatch 控制台查看您的哪些控制面板当前正在与其他人共享。

查看正在共享哪些控制面板

  1. 访问 https://console.aws.amazon.com/cloudwatch/,打开 CloudWatch 控制台。

  2. 在导航窗格中,选择 Dashboards(控制面板)

  3. 在控制面板列表中,请参阅 Share(共享)列。包含此列中图标的控制面板当前正在共享。

  4. 要查看与哪些用户共享控制面板,请选择控制面板名称,然后依次选择 Actions(操作)Share dashboard(共享控制面板)

    Share dashboard(共享控制面板)dashboard name(控制面板名称)页面会显示控制面板的共享方式。如果需要,可以通过选择 Stop sharing(停止共享),停止共享控制面板。

停止共享一个或多个控制面板

您可以停止共享单个共享控制面板,或一次性停止共享所有共享控制面板。

停止共享单个控制面板

  1. 访问 https://console.aws.amazon.com/cloudwatch/,打开 CloudWatch 控制台。

  2. 在导航窗格中,选择 Dashboards(控制面板)

  3. 选择共享控制面板的名称。

  4. 依次选择 Actions(操作)Share dashboard(共享控制面板)

  5. 选择 Stop sharing(停止共享)

  6. 在确认框中,选择 Stop sharing(停止共享)

停止共享所有的共享控制面板

  1. 访问 https://console.aws.amazon.com/cloudwatch/,打开 CloudWatch 控制台。

  2. 在导航窗格中,选择 Settings

  3. Dashboard sharing(控制面板共享)部分中,选择 Stop sharing all dashboards(停止共享所有控制面板)

  4. 在确认框中,选择 Stop sharing all dashboards(停止共享所有控制面板)

查看共享控制面板权限并更改权限范围

如果要查看共享控制面板用户的权限,或更改共享控制面板权限的范围,请按照本节中的步骤进行操作。

查看共享控制面板的权限

  1. 访问 https://console.aws.amazon.com/cloudwatch/,打开 CloudWatch 控制台。

  2. 在导航窗格中,选择 Dashboards(控制面板)

  3. 选择共享控制面板的名称。

  4. 依次选择 Actions(操作)Share dashboard(共享控制面板)

  5. Resources(资源)下,选择 IAM Role(IAM 角色)

  6. 在 IAM 控制台中,选择所显示的策略。

  7. (可选)要限制共享控制面板用户可以查看哪些告警,请选择 Edit policy(编辑策略)并将 cloudwatch:DescribeAlarms 权限从其当前位置移动到一个新 Allow 语句,该语句仅列出您希望共享控制面板用户查看的告警的 ARN。请参见以下示例。

    { "Effect": "Allow", "Action": "cloudwatch:DescribeAlarms", "Resource": [ "AlarmARN1", "AlarmARN2" ] }

    如果您执行此操作,请务必从当前策略的如下部分中删除 cloudwatch:DescribeAlarms 权限:

    { "Effect": "Allow", "Action": [ "cloudwatch:GetInsightRuleReport", "cloudwatch:GetMetricData", "cloudwatch:DescribeAlarms", "ec2:DescribeTags" ], "Resource": "*" }
  8. (可选)要限制共享控制面板用户可以查看的 Contributor Insights 规则的范围,请选择 Edit policy(编辑策略)cloudwatch:GetInsightRuleReport 从当前位置移动到一个新 Allow 语句,该语句仅列出您希望共享控制面板用户查看的 Contributor Insights 规则的 ARN。请参见以下示例。

    { "Effect": "Allow", "Action": "cloudwatch:GetInsightRuleReport", "Resource": [ "PublicContributorInsightsRuleARN1", "PublicContributorInsightsRuleARN2" ] }

    如果您执行此操作,请务必从当前策略的如下部分中删除 cloudwatch:GetInsightRuleReport

    { "Effect": "Allow", "Action": [ "cloudwatch:GetInsightRuleReport", "cloudwatch:GetMetricData", "cloudwatch:DescribeAlarms", "ec2:DescribeTags" ], "Resource": "*" }

允许与您共享的人员查看复合告警

在共享控制面板时,默认情况下,控制面板上的复合告警小组件对与您共享控制面板的人员不可见。要使复合告警小组件可见,您需要向控制面板共享策略添加 DescribeAlarms: * 权限。该权限如下所示:

{ "Effect": "Allow", "Action": "cloudwatch:DescribeAlarms", "Resource": "*" }
警告

上述策略语句允许访问账户中的所有告警。要缩小 cloudwatch:DescribeAlarms 的范围,您必须使用 Deny 语句。您可以向策略添加一个 Deny 语句,并指定要锁定的告警的 ARN。该拒绝语句应类似于以下内容:

{ "Effect": "Allow", "Action": "cloudwatch:DescribeAlarms", "Resource": "*" }, { "Effect": "Deny", "Action": "cloudwatch:DescribeAlarms", "Resource": [ "SensitiveAlarm1ARN", "SensitiveAlarm1ARN" ] }

允许与您共享的人员查看日志表小组件

在共享控制面板时,默认情况下,控制面板上的 CloudWatch Logs Insights 小组件对与您共享控制面板的人员不可见。这会影响现存的 CloudWatch Logs Insights 小组件以及在共享该小组件后添加到控制面板的任何小组件。

如果您希望这些人员能够查看 CloudWatch Logs 小组件,则必须向 IAM 角色添加权限以进行控制面板共享。

允许与您共享控制面板的人员查看 CloudWatch Logs 小组件

  1. 访问 https://console.aws.amazon.com/cloudwatch/,打开 CloudWatch 控制台。

  2. 在导航窗格中,选择 Dashboards(控制面板)

  3. 选择共享控制面板的名称。

  4. 依次选择 Actions(操作)Share dashboard(共享控制面板)

  5. Resources(资源)下,选择 IAM Role(IAM 角色)

  6. 在 IAM 控制台中,选择所显示的策略。

  7. 选择 Edit policy(编辑策略)并添加以下语句。在新语句中,我们建议您仅指定要共享的日志组的 ARN。请参见以下示例。

    { "Effect": "Allow", "Action": [ "logs:FilterLogEvents", "logs:StartQuery", "logs:StopQuery", "logs:GetLogRecord" ], "Resource": [ "SharedLogGroup1ARN", "SharedLogGroup2ARN" ] },
  8. 选择 Save Changes

如果您的控制面板共享 IAM 策略已包含带 * 的四个权限作为资源,我们强烈建议您更改策略并仅指定您想要共享的日志组的 ARN。例如,如果这些权限的 Resource 部分如下所示:

"Resource": "*"

更改策略以仅指定要共享的日志组的 ARN,如下例所示:

"Resource": [ "SharedLogGroup1ARN", "SharedLogGroup2ARN" ]

允许与您共享的人员查看自定义小组件

当您共享控制面板时,默认情况下控制面板上的自定义小组件对与您共享控制面板的人员不可见。这既会影响现存的自定义小组件,也会影响共享后添加到控制面板的任何自定义小组件。

如果您希望这些人员能够查看自定义小组件,您必须向 IAM 角色添加权限以进行控制面板共享。

允许与您共享控制面板的人员查看自定义小组件

  1. 访问 https://console.aws.amazon.com/cloudwatch/,打开 CloudWatch 控制台。

  2. 在导航窗格中,选择 Dashboards(控制面板)

  3. 选择共享控制面板的名称。

  4. 依次选择 Actions(操作)Share dashboard(共享控制面板)

  5. Resources(资源)下,选择 IAM Role(IAM 角色)

  6. 在 IAM 控制台中,选择所显示的策略。

  7. 选择 Edit policy(编辑策略)并添加以下语句。在新语句中,我们建议您仅指定要共享的 Lambda 函数的 ARN。请参见以下示例。

    { "Sid": "Invoke", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "LambdaFunction1ARN", "LambdaFunction2ARN" ] }
  8. 选择 Save Changes

如果您的控制面板共享 IAM 策略已包含带 * 的权限作为资源,我们强烈建议您更改策略并仅指定要共享的 Lambda 函数的 ARN。例如,如果这些权限的 Resource 部分如下所示:

"Resource": "*"

更改策略以仅指定要共享的自定义小组件的 ARN,如以下示例所示:

"Resource": [ "LambdaFunction1ARN", "LambdaFunction2ARN" ]