View a markdown version of this page

在 AWS Control Tower 中使用基于身份的策略(IAM 策略) - AWS Control Tower

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

在 AWS Control Tower 中使用基于身份的策略(IAM 策略)

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

重要

我们建议您首先阅读以下介绍性主题,其中讲解了管理 AWS Control Tower 资源访问的基本概念和选项。有关更多信息,请参阅 管理对 AWS Control Tower 资源的访问权限概述

AWS ControlTowerAdmin 角色

此角色向 AWS Control Tower 提供对维护登录区至关重要的基础设施的访问权限。AWS ControlTowerAdmin 角色需要一个附加的托管策略以及一个针对 IAM 角色的角色信任策略。角色信任策略是基于资源的策略,用于指定哪些主体可以承担该角色。

以下是此角色信任策略的示例代码片段:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "controltower.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

要从 AWS CLI 创建此角色并将其放入名为的文件中trust.json,以下是一个 CLI 命令示例:

aws iam create-role --role-name AWSControlTowerAdmin --path /service-role/ --assume-role-policy-document file://trust.json

此角色需要两个 IAM 策略。

  1. 内联策略,例如:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:DescribeAvailabilityZones", "Resource": "*" } ] }
  2. 随后是托管策略,即 AWS ControlTowerServiceRolePolicy

AWS ControlTowerServiceRolePolicy

AWS ControlTowerServiceRolePolicy这是一项 AWS托管策略,用于定义创建和管理 AWS 控制塔资源的权限,例如 AWS CloudFormation 堆栈集和堆栈实例、 AWS CloudTrail 日志文件、AWS 控制塔的配置聚合器以及受 AWS 控制塔管理的 AWS Organizations 账户和组织单位 (OU)。

AWS Control Tower 的托管策略 表中汇总了对这项托管策略的更新。

有关更多信息,请参阅AWS ControlTowerServiceRolePolicyAWS 托管策略参考指南》

角色信任策略:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "controltower.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

内联策略是 AWS ControlTowerAdminPolicy

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": "ec2:DescribeAvailabilityZones", "Resource": "*", "Effect": "Allow" } ] }

AWS ControlTowerIdentityCenterManagementPolicy

该策略提供在注册了 AWS Control Tower 的成员账户中配置 IAM Identity Center(IdC)资源的权限。当您在 AWS Control Tower 中设置登录区(或更新)期间选择 IAM Identity Center 作为身份提供程序时,此策略将附加到 AWS ControlTowerAdmin 角色。

要查看有关策略(包括 JSON 策略文档的最新版本)的更多信息,请参阅《AWS 托管式策略参考指南》中的 AWS ControlTowerIdentityCenterManagementPolicy

AWS ControlTowerStackSetRole

CloudFormation 代入此角色在 AWS 控制塔创建的账户中部署堆栈集。内联策略:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Resource": [ "arn:aws:iam::*:role/AWSControlTowerExecution" ], "Effect": "Allow" } ] }

信任策略

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

AWS ControlTowerCloudTrailRolePolicy

AWS 控制塔是一种最佳实践,并将此角色提供给 CloudTrail。 CloudTrail CloudTrail 代入此角色来创建和发布 CloudTrail 日志。

托管策略:AWS ControlTowerCloudTrailRolePolicy

此角色使用 AWS-managed 策略AWS ControlTowerCloudTrailRolePolicy,该策略授予 CloudTrail 代表 AWS 控制塔向 Amazon Logs 发布审计 CloudWatch 日志所需的权限。此托管策略取代了之前用于此角色的内联策略,无需客户干预 AWS 即可更新策略。

有关更多信息,请参阅AWS ControlTowerCloudTrailRolePolicyAWS 托管策略参考指南》

AWS Control Tower 的托管策略 表中汇总了对这项托管策略的更新。

注意

在引入托管策略之前,此角色使用了具有同等权限的内联策略。内联策略已被托管策略取代,以实现无缝更新。

之前的在线政策(供参考):

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": "logs:CreateLogStream", "Resource": "arn:aws:logs:*:*:log-group:aws-controltower/CloudTrailLogs:*", "Effect": "Allow" }, { "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:*:*:log-group:aws-controltower/CloudTrailLogs:*", "Effect": "Allow" } ] }

信任策略

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

AWS ControlTowerBlueprintAccess 角色要求

AWS Control Tower 要求在同一组织内的指定蓝图中心账户中创建 AWS ControlTowerBlueprintAccess 角色。

角色名称

角色名称必须为 AWS ControlTowerBlueprintAccess

角色信任策略

该角色必须设置为信任以下主体:

  • 管理账户中使用 AWS Control Tower 的主体。

  • 管理账户中的 AWS ControlTowerAdmin 角色。

下面演示了一个最低权限信任策略。当您制定自己的策略时,请将 YourManagementAccountId 替换为您的 AWS Control Tower 管理账户的实际账户 ID,并将 YourControlTowerUserRole 替换为管理账户的 IAM 角色标识符。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/service-role/AWSControlTowerAdmin", "arn:aws:iam::111122223333:role/YourControlTowerUserRole" ] }, "Action": "sts:AssumeRole", "Condition": {} } ] }

角色权限

您需要将托管策略附加AWSServiceCatalogAdminFullAccess到该角色。

AWSServiceRoleForAWSControlTower

此角色为 AWS Control Tower 提供对日志存档账户、审计账户和成员账户的访问权限,以便执行对维护登录区至关重要的操作,例如通知您有关资源偏移的情况。

AWS ServiceRoleFor AWS ControlTower 角色需要一个附加的托管策略以及一个针对 IAM 角色的角色信任策略。

此角色的托管策略:AWS ControlTowerAccountServiceRolePolicy

角色信任策略:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "controltower.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

AWS ControlTowerAccountServiceRolePolicy

这种 AWS托管策略允许 AWS Control Tower 代表您调用提供自动账户配置和集中管理的 AWS 服务。

该政策包含 AWS 控制塔对安全中心 CSPM 控件管理的资源实施 AWS Security Hub CSPM 调查结果转发的最低权限,这些控制是 S ecurity Hub CSPM Service-managed 标准:AWS 控制塔的一部分,并防止限制客户账户管理能力的更改。它是 AWS Security Hub CSPM 后台偏移检测过程的一部分,并非由客户直接发起。

该政策允许在每个成员账户中创建亚马逊 EventBridge 规则,专门用于 Security Hub CSPM 控制,这些规则必须指定确切的规则。 EventPattern此外,规则只能对由我们的服务主体所管理的规则起作用。

服务主体:controltower.amazonaws.com

有关更多信息,请参阅AWS ControlTowerAccountServiceRolePolicyAWS 托管策略参考指南》

AWS Control Tower 的托管策略 表中汇总了对这项托管策略的更新。