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

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

跨账户跨区域的 CloudWatch 控制台

You can add cross-account functionality to your CloudWatch console. 利用此功能,您可以跨账户查看控制面板、警报、指标和自动控制面板,而无需登录和注销不同的账户。

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

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

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

跨区域功能

跨区域功能现已自动内置。您无需执行任何额外步骤即可在同一图表或同一控制面板上的单个账户中显示来自不同区域的指标。

在 中启用跨账户功能CloudWatch

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

Set Up A Sharing Account

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

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

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

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

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

  4. For Sharing, choose Specific accounts and enter the IDs of the accounts that you want to share data with.

    您在此处指定的任何账户都可以查看您的账户的 CloudWatch 数据。Specify the IDs only of accounts that you know and trust.

  5. For Permissions, specify how to share your data with one of the following options:

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

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

    • Include X-Ray read-only access for ServiceLens. If you select this option, users in the monitoring account can also view the ServiceLens service map and X-Ray trace information in this account. 有关更多信息,请参阅 使用 ServiceLens 监控应用程序的运行状况.

    • Full read-only access to everything in your account. 此选项使您用于共享的账户能够创建跨账户控制面板,这些控制面板具有包含您账户中的 CloudWatch 数据的小部件。它还使这些账户能够更深入地查看您的账户,并在其他 AWS 服务的控制台中查看您账户的数据。

  6. Choose Launch CloudFormation template.

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

  7. 选中 I acknowledge...(我确认...) 复选框,然后选择 Create stack (创建堆栈).

与整个组织共享

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

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

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

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

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

  4. In the list of roles, choose CloudWatch-CrossAccountSharingRole.

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

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": "sts:AssumeRole" } ] }
  6. Change the policy to the following, replacing org-id with the ID of your organization.

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

Set Up a Monitoring Account

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

完成以下过程后,CloudWatch 将创建一个服务相关角色,CloudWatch 在监控账户中使用该角色来访问从其他账户共享的数据。This service-linked role is called AWSServiceRoleForCloudWatchCrossAccount. For more information, see 对 使用服务相关角色CloudWatch.

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

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

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

  3. Under View cross-account cross-region, choose one of the following options:

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

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

      To do this, you must have first used your organization 管理账户 to allow CloudWatch to see a list of accounts in your organization. 有关更多信息,请参阅 (可选)与 集成AWS Organizations.

    • Custom account selector. This option prompts you to enter a list of account IDs. When you next use the console, CloudWatch displays a dropdown list of these accounts for you to select from when you are viewing cross-account data.

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

      用户在此处进行的账户选择器设置仅为该用户保留,而不为监视账户中的所有其他用户保留。

  4. 选择启用.

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

(可选)与 集成AWS Organizations

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

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

  1. Log in to your organization's 管理账户.

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

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

  4. For Grant permission to view the list of accounts in the organization, choose Specific accounts to be prompted to enter a list of account IDs. The list of accounts in your organization are shared with only the accounts that you specify here.

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

  6. Choose Launch CloudFormation template.

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

对 CloudWatch 跨账户设置问题进行故障排除

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

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

请检查以下事项:

  • Your monitoring account should have a role named AWSServiceRoleForCloudWatchCrossAccount. If it does not, you need to create this role. 有关更多信息,请参阅 Set Up a Monitoring Account.

  • Each sharing account should have a role named CloudWatch-CrossAccountSharingRole. 如果没有此角色,则需要创建它。有关更多信息,请参阅 Set Up A Sharing Account.

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

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

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

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

  3. 在角色列表中,确保需要的角色已存在。In a sharing account, look for CloudWatch-CrossAccountSharingRole. In a monitoring account, look for AWSServiceRoleForCloudWatchCrossAccount.

  4. If you are in a sharing account and CloudWatch-CrossAccountSharingRole already exists, choose CloudWatch-CrossAccountSharingRole.

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

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

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

首先,检查您是否已创建正确的 IAM 角色,如前面的故障排除部分中所述。如果已正确设置这些角色,请确保您已启用此账户来查看跨账户的数据,如中所述。Enable Your Account to View Cross-Account Data.

Disabling and cleaning up after using cross-account

To disable cross-account functionality for CloudWatch, follow these steps.

Step 1: Remove the cross-account stacks or roles

The best method is to remove the AWS CloudFormation stacks that were used to enable cross-account functionality.

  • In each of the sharing accounts, remove the CloudWatch-CrossAccountSharingRole stack.

  • If you used AWS Organizations to enable cross-account functionality with all accounts in an organization, remove the CloudWatch-CrossAccountListAccountsRole stack in the organization's 管理账户.

If you didn't use the AWS CloudFormation stacks to enable cross-account functionality, do the following:

  • In each of the sharing accounts, delete the CloudWatch-CrossAccountSharingRole IAM role.

  • If you used AWS Organizations to enable cross-account functionality with all accounts in an organization, delete the CloudWatch-CrossAccountSharing-ListAccountsRole IAM role in the organization's 管理账户.

Step 2: Remove the service-linked role

In the monitoring account, delete the AWSServiceRoleForCloudWatchCrossAccount service-linked IAM role.