(可选)将 OpsCenter 手动设置为跨账户集中管理 OpsItems
本节介绍如何为跨账户 OpsItem 管理手动配置 OpsCenter。虽然仍支持此进程,但它已被使用 Systems Manager Quick Setup 的新进程所取代。有关更多信息,请参阅 (可选)使用 Quick Setup 配置 OpsCenter 以跨账户管理 OpsItems。
您可以设置一个中央账户为成员账户手动创建 OpsItems,并管理和修复这些 OpsItems。中央账户可以是 AWS Organizations 管理账户,也可以是 AWS Organizations 管理账户兼 Systems Manager 委派管理员账户。我们建议您使用 Systems Manager 委派管理员账户作为中央账户。您只能在配置 AWS Organizations 后使用此功能。
借助 AWS Organizations,您可以将多个 AWS 账户 整合到您创建并集中管理的组织中。中央账户用户可以同时为所有选定的成员账户创建 OpsItems 并管理这些 OpsItems。
使用本节中的过程在“组织”中启用 Systems Manager 服务主体,并配置 AWS Identity and Access Management(IAM)权限,以便跨账户使用 OpsItems。
主题
注意
当在 OpsCenter 中跨账户工作时,仅支持 /aws/issue
类型的 OpsItems。
开始前的准备工作
在将 OpsCenter 设置为跨账户使用 OpsItems 之前,请确保已设置以下内容:
-
Systems Manager 委托管理员账户。有关更多信息,请参阅 为 Explorer 配置委派管理员。
-
已在组织中设置和配置了一个组织。有关更多信息,请参阅 AWS Organizations 用户指南中的创建并管理组织。
-
您将 Systems Manager Automation 配置为跨多个 AWS 区域 和 AWS 账户运行自动化运行手册。有关更多信息,请参阅 在多个 AWS 区域 和账户中运行自动化。
步骤 1:创建资源数据同步
设置和配置 AWS Organizations 后,您可以通过创建资源数据同步在 OpsCenter 中为整个组织聚合 OpsItems。有关更多信息,请参阅 创建资源数据同步。创建同步时,请务必在添加账户部分中选择包括我的 AWS Organizations 配置中的所有账户选项。
步骤 2:在 AWS Organizations 中启用 Systems Manager 服务主体
要让用户能够跨账户使用 OpsItems,必须在 AWS Organizations 中启用 Systems Manager 服务主体。如果您以前使用其他功能为多账户方案配置了 Systems Manager,则“组织”中可能已经配置 Systems Manager 服务主体。从(AWS Command Line InterfaceAWS CLI)运行以下命令以进行验证。如果您尚未为其他多账户方案配置 Systems Manager,请跳到下一个步骤,即在 AWS Organizations 中启用 Systems Manager 服务主体。
验证 AWS Organizations 中是否启用了 Systems Manager 服务主体
-
在本地计算机上,下载
最新版本的 AWS CLI。 -
打开 AWS CLI,然后运行以下命令,以指定您的凭证和 AWS 区域。
aws configure
系统将提示您指定以下内容。在以下示例中,将每个
用户输入占位符
替换为您自己的信息。AWS Access Key ID [None]:
key_name
AWS Secret Access Key [None]:key_name
Default region name [None]:region
Default output format [None]: ENTER -
运行以下命令以验证是否为 AWS Organizations 启用了 Systems Manager 服务主体。
aws organizations list-aws-service-access-for-organization
该命令会返回类似以下示例中显示的信息。
{ "EnabledServicePrincipals": [ { "ServicePrincipal": "member.org.stacksets.cloudformation.amazonaws.com", "DateEnabled": "2020-12-11T16:32:27.732000-08:00" }, { "ServicePrincipal": "opsdatasync.ssm.amazonaws.com", "DateEnabled": "2022-01-19T12:30:48.352000-08:00" }, { "ServicePrincipal": "ssm.amazonaws.com", "DateEnabled": "2020-12-11T16:32:26.599000-08:00" } ] }
在 AWS Organizations 中启用 Systems Manager 服务主体
如果您以前未为“组织”配置 Systems Manager 服务主体,请按照以下步骤执行此操作。有关此命令的更多信息,请参阅AWS CLI 命令参考 中的 enable-aws-service-access
-
安装并配置 AWS Command Line Interface(AWS CLI)(如果尚未执行该操作)。有关信息,请参阅安装 CLI 和配置 CLI。
-
在本地计算机上,下载
最新版本的 AWS CLI。 -
打开 AWS CLI,然后运行以下命令,以指定您的凭证和 AWS 区域。
aws configure
系统将提示您指定以下内容。在以下示例中,将每个
用户输入占位符
替换为您自己的信息。AWS Access Key ID [None]:
key_name
AWS Secret Access Key [None]:key_name
Default region name [None]:region
Default output format [None]: ENTER -
运行以下命令为 AWS Organizations 启用 Systems Manager 服务主体。
aws organizations enable-aws-service-access --service-principal "ssm.amazonaws.com"
步骤 3:创建 AWSServiceRoleForAmazonSSM_AccountDiscovery
服务相关角色
服务相关角色(如 AWSServiceRoleForAmazonSSM_AccountDiscovery
角色)是一种与(AWS 服务如 Systems Manager)直接关联的独特类型的 IAM 角色。服务相关角色由服务预定义,具有服务代表您调用其他 AWS 服务 所需的所有权限。有关 AWSServiceRoleForAmazonSSM_AccountDiscovery
服务相关角色的更多信息,请参阅Systems Manager 账户发现的服务相关角色权限。
使用以下过程,通过利用 AWS CLI 创建 AWSServiceRoleForAmazonSSM_AccountDiscovery
服务相关角色。有关在此步骤中使用的命令的更多信息,请参阅AWS CLI 命令参考中的 create-service-linked-role
创建 AWSServiceRoleForAmazonSSM_AccountDiscovery
服务相关角色
-
登录 AWS Organizations 管理账户。
-
登录“组织”管理账户时,运行以下命令。
aws iam create-service-linked-role \ --aws-service-name accountdiscovery.ssm.amazonaws.com \ --description "Systems Manager account discovery for AWS Organizations service-linked role"
步骤 4:配置用于跨账户使用 OpsItems 的权限
使用 AWS CloudFormation 堆栈集创建 OpsItemGroup
资源策略和 IAM 执行角色,以授予用户跨账户使用 OpsItems 的权限。首先,请下载并解压 OpsCenterCrossAccountMembers.zip
文件。此文件包含 OpsCenterCrossAccountMembers.yaml
AWS CloudFormation 模板文件。使用此模板创建堆栈集时,CloudFormation 会自动在账户中创建 OpsItemCrossAccountResourcePolicy
资源策略和 OpsItemCrossAccountExecutionRole
执行角色。有关创建堆栈集的更多信息,请参阅 AWS CloudFormation 用户指南中的 Create a stack set(创建堆栈集)。
重要
请注意有关此任务的以下重要信息:
-
您必须在登录到 AWS Organizations 管理账户时部署该堆栈集。
-
您必须在登录到您要设置为目标的每个账户时重复此过程,以便跨账户(包括委托管理员账户)使用 OpsItems。
-
如果您想在不同的 AWS 区域 中启用跨账户 OpsItems 管理,请在模板的 Specify regions(指定区域)部分中选择 Add all regions(添加所有区域)。选择加入区域不支持跨账户 OpsItem 管理。
步骤 5:配置用于跨账户使用相关资源的权限
OpsItem 可以包括有关受影响资源的详细信息,如 Amazon Elastic Compute Cloud(Amazon EC2)实例或 Amazon Simple Storage Service(Amazon S3)存储桶。您在“步骤 4”中创建的 OpsItemCrossAccountExecutionRole
执行角色将为 OpsCenter 提供只读权限,以便成员账户查看相关资源。您还必须创建 IAM 角色 以向管理账户提供查看相关资源和与之交互的权限,您将在本任务中完成此操作。
首先,请下载并解压 OpsCenterCrossAccountManagementRole.zip
文件。此文件包含 OpsCenterCrossAccountManagementRole.yaml
AWS CloudFormation 模板文件。当您使用此模板创建堆栈时,CloudFormation 会自动在账户中创建 OpsCenterCrossAccountManagementRole
IAM 角色。有关创建堆栈集的更多信息,请参阅《AWS CloudFormation 用户指南》中的在 AWS CloudFormation 控制台上创建堆栈。
重要
请注意有关此任务的以下重要信息:
-
如果您计划指定一个账户作为 OpsCenter 的委派管理员,请务必在创建堆栈时指定 AWS 账户。
-
您必须在登录到 AWS Organizations 管理账户时执行此过程,并在登录到委托管理员账户时再次执行此过程。