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

跨账户跨区域的 CloudWatch 控制台

您可以向 CloudWatch 控制台添加跨账户跨区域 功能。利用此功能,您可以跨账户跨区域查看控制面板、警报、指标和自动控制面板,而无需登录和注销不同的帐户。

然后,您可以创建控制面板以将来自多个 AWS 账户和多个 AWS 区域的 CloudWatch 数据汇总到单个控制面板中。

许多组织都将其 AWS 资源部署到多个账户中来提供账单和安全边界。在这种情况下,建议您将一个或多个账户指定为监控账户,并在这些账户中构建跨账户跨区域的控制面板。

跨账户跨区域功能与 AWS Organizations 集成,可帮助您高效地构建跨区域跨账户的控制面板。

在 CloudWatch 中启用跨账户跨区域功能

要在 CloudWatch 控制台中设置跨账户跨区域功能,请使用 AWS 管理控制台设置您的共享账户和监控账户。

设置共享账户

您必须在每个账户中启用共享,以使数据对监控账户可用。

使您的账户能够与其他账户共享 CloudWatch 数据

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 在导航窗格中,选择 Settings (设置),然后选择 Configure (配置)

  3. 选择 Share data (共享数据)

  4. 对于 Sharing (共享),选择 Specific accounts (特定账户),然后输入要与之共享数据的账户的 ID。

    您在此处指定的任何账户都可以查看您的账户的 CloudWatch 数据。仅指定您知道并信任的账户的 ID。

  5. 对于 Permissions (权限),使用下列选项之一来指定共享数据的方式:

    • Provide read-only access to your CloudWatch metrics, dashboards, logs and alarms (提供对 CloudWatch 指标、控制面板、日志和警报的只读访问权)。此选项使监控账户能够创建跨账户跨区域的控制面板,这些控制面板具有包含您账户中的 CloudWatch 数据的小组件。

    • Include CloudWatch automatic dashboards (包含 CloudWatch 自动控制面板)。如果选择此选项,则监控账户中的用户还可以查看此账户的自动控制面板中的信息。有关更多信息,请参阅 Amazon CloudWatch 入门

    • Full read-only access to everything in your account (对账户中所有内容的完全只读访问权)。此选项使您用于共享的账户能够创建跨账户跨区域的控制面板,这些控制面板具有包含您账户中的 CloudWatch 数据的小组件。它还使这些账户能够更深入地查看您的账户,并在其他 AWS 服务的控制台中查看您账户的数据。

  6. 选择 Launch CloudFormation template (启动 CloudFormation 模板)

    在确认屏幕中,键入 Confirm,并选择 Launch template (启动模板)

  7. 选中相应的复选框,然后选择 Create stack (创建堆栈)

与整个组织共享

通过完成上述过程,创建一个 IAM 角色来使您的账户能够与某个账户共享数据。您可以创建或编辑一个 IAM 角色,该角色将与组织中所有的账户共享您的数据。仅在您知道并信任组织中所有的账户的情况下执行此操作。

与组织中所有的账户共享您的 CloudWatch 账户数据

  1. 如果尚未执行此操作,请完成上述过程来与某个 AWS 账户共享您的数据。

  2. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

  3. 在导航窗格中,选择 Roles

  4. 在角色列表中,选择 CloudWatch-CrossAccountSharingRole

  5. 选择信任关系,然后选择编辑信任关系

    您将看到与以下内容类似的策略:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": "sts:AssumeRole" } ] }
  6. 将策略更改为以下内容,并将 org-id 替换为您组织的 ID。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "org-id" } } } ] }
  7. 选择 Update Trust Policy

设置监控账户

如果要查看跨账户跨区域的 CloudWatch 数据,请启用每个监控账户。

完成以下过程后,CloudWatch 将创建一个服务相关角色,CloudWatch 在监控账户中使用该角色来访问从其他账户共享的数据。此服务相关角色称为 AWSServiceRoleForCloudWatchCrossAccount。有关更多信息,请参阅对 CloudWatch 使用服务相关角色

使您的账户能够查看跨账户跨区域的 CloudWatch 数据

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 在导航窗格中,选择 Settings (设置),然后选择 Configure (配置)

  3. View cross-account cross-region (跨账户跨区域查看) 中,选择下列选项之一:

    • Account Id Input (账户 ID 输入)。在查看跨账户的数据时,每当您要切换账户时,此选项都会提示您手动输入账户 ID。

    • AWS Organization account selector (AWS 组织账户选择器)。此选项会让您在完成与 组织 的跨账户跨区域集成时指定的账户显示出来。在您下次使用控制台时,CloudWatch 会为您显示这些账户的下拉列表,供您在查看跨账户数据时进行选择。

      为此,您必须已先使用组织主账户允许 CloudWatch 查看组织中的账户列表。有关更多信息,请参阅(可选)与 AWS Organizations 集成

    • Custom account selector (自定义账户选择器)。此选项提示您输入账户 ID 的列表。在您下次使用控制台时,CloudWatch 会为您显示这些账户的下拉列表,供您在查看跨账户数据时进行选择。

      此外,您可为其中每个账户输入一个标签,以便在选择要查看的账户时帮助您识别它们。

  4. 选择启用

完成此设置后,您可以创建跨账户跨区域的控制面板。有关更多信息,请参阅 跨账户跨区域的控制面板

(可选)与 AWS Organizations 集成

如果要将跨账户跨区域功能与 AWS Organizations 集成,您必须使组织中所有账户的列表对监控账户可用。

启用跨账户跨区域 CloudWatch 功能以访问组织中所有账户的列表

  1. 登录组织的主账户。

  2. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  3. 在导航窗格中,选择 Settings (设置),然后选择 Configure (配置)

  4. 对于 Grant permission to view the list of accounts in the organization (授予查看组织中账户列表的权限),选择要提示输入账户 ID 列表的 Specific accounts (特定账户)。您组织中的账户列表仅与您在此处指定的账户共享。

  5. 选择 Share organization account list (共享组织账户列表)

  6. 选择 Launch CloudFormation template (启动 CloudFormation 模板)

    在确认屏幕中,键入 Confirm,并选择 Launch template (启动模板)

对 CloudWatch 跨账户跨区域的设置进行故障排除

此部分包含有关 CloudWatch 中跨账户跨区域的控制台部署的故障排除提示。

我在显示跨账户的数据时收到访问被拒绝错误

请检查以下事项:

  • 您的监控账户应具有一个名为 AWSServiceRoleForCloudWatchCrossAccount 的角色。如果没有此角色,则需要创建它。有关更多信息,请参阅设置监控账户

  • 每个共享账户应具有一个名为 CloudWatch-CrossAccountSharingRole 的角色。如果没有此角色,则需要创建它。有关更多信息,请参阅设置共享账户

  • 此共享角色必须信任监控账户。

确认是否已为 CloudWatch 跨账户控制台正确设置您的角色

  1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

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

  3. 在角色列表中,确保需要的角色已存在。在共享账户中,查找 CloudWatch-CrossAccountSharingRole。在监控账户中,查找 AWSServiceRoleForCloudWatchCrossAccount

  4. 如果您正在使用共享账户,并且 CloudWatch-CrossAccountSharingRole 已存在,请选择 CloudWatch-CrossAccountSharingRole

  5. 选择信任关系,然后选择编辑信任关系

  6. 确认策略已列出监控账户的账户 ID 或监控账户所属组织的组织 ID。

控制台中未显示账户下拉菜单

首先,检查您是否已创建正确的 IAM 角色,如前面的故障排除部分中所述。如果已正确设置这些角色,请确保您已启用此账户来查看跨账户的数据,如使您的账户能够查看跨账户跨区域的数据中所述。