

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

# 在 AWS Control Tower 中使用基于身份的策略（IAM 策略）
<a name="access-control-managing-permissions"></a>

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

**重要**  
我们建议您首先阅读以下介绍性主题，其中讲解了管理 AWS Control Tower 资源访问的基本概念和选项。有关更多信息，请参阅 [管理对 AWS Control Tower 资源的访问权限概述](access-control-overview.md)。

## AWS ControlTowerAdmin 角色
<a name="AWSControlTowerAdmin"></a>

此角色向 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": "*"
           }
       ]
   }
   ```

------

1. 随后是托管策略，即 `AWS ControlTowerServiceRolePolicy`。

## AWS ControlTowerServiceRolePolicy
<a name="AWSControlTowerServiceRolePolicy"></a>

**AWS ControlTowerServiceRolePolicy**是一项 AWS托管策略，它定义了创建和管理 AWS Control Tower 资源的权限，例如堆栈 AWS CloudFormation 集和堆栈实例、 AWS CloudTrail 日志文件、AWS Control Tower 的配置聚合器以及受 AWS Control Tower 管理的 AWS Organizations 账户和组织单位 (OUs)。

[AWS Control Tower 的托管策略](managed-policies-table.md) 表中汇总了对这项托管策略的更新。

有关更多信息，请参阅[AWS ControlTowerServiceRolePolicy](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AWSControlTowerServiceRolePolicy.html)《*AWS 托管策略参考指南》*。

角色信任策略：

------
#### [ 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
<a name="AWSControlTowerIdentityCenterManagementPolicy"></a>

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

要查看有关策略（包括 JSON 策略文档的最新版本）的更多信息，请参阅《AWS 托管式策略参考指南》**中的 [AWS ControlTowerIdentityCenterManagementPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSControlTowerIdentityCenterManagementPolicy.html)。

## AWS ControlTowerStackSetRole
<a name="AWSControlTowerStackSetRole"></a>

CloudFormation 担任此角色是为了在 AWS Control Tower 创建的账户中部署堆栈集。内联策略：

------
#### [ 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
<a name="AWSControlTowerCloudTrailRolePolicy"></a>

AWS Control Tower CloudTrail 作为最佳实践启用，并将此角色提供给 CloudTrail。 CloudTrail 担任此角色来创建和发布 CloudTrail 日志。

**托管策略：**`AWS ControlTowerCloudTrailRolePolicy`

此角色使用 AWS托管策略`AWS ControlTowerCloudTrailRolePolicy`，该策略授予 CloudTrail 代表 AWS Control Tower 向 Amazon CloudWatch Logs 发布审计日志所需的权限。此托管策略取代了以前用于此角色的内联策略， AWS 从而无需客户干预即可更新策略。

有关更多信息，请参阅[AWS ControlTowerCloudTrailRolePolicy](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AWSControlTowerCloudTrailRolePolicy.html)《*AWS 托管策略参考指南》*。

[AWS Control Tower 的托管策略](managed-policies-table.md) 表中汇总了对这项托管策略的更新。

**注意**  
在引入托管策略之前，该角色使用了具有同等权限的内联策略。为了实现无缝更新，内联策略已被托管策略所取代。

**之前的内联策略（供参考）：**

------
#### [ 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 角色要求
<a name="AWSControlTowerBlueprintAccess"></a>

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**到该角色。

## AWSServiceRoleForAWSControl塔
<a name="AWSServiceRoleForAWSControlTower"></a>

此角色为 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
<a name="account-service-role-policy"></a>

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

该策略包含 AWS Control Tower 对由 Security Hub CSPM 控制管理的资源实施 AWS Security Hub CSPM 调查结果转发的最低权限，这些控件是 Sec **urity Hub CSPM 服务托管标准：AWS Control Tower** 的一部分，并且它可以防止限制客户账户管理能力的更改。它是 AWS Security Hub CSPM 后台偏移检测过程的一部分，并非由客户直接发起。

该策略允许在每个成员账户中创建亚马逊 EventBridge 规则，特别是针对 Security Hub CSPM 控件的规则，并且这些规则必须指定确切的规则。 EventPattern此外，规则只能对由我们的服务主体所管理的规则起作用。

**服务主体：**`controltower.amazonaws.com`

有关更多信息，请参阅[AWS ControlTowerAccountServiceRolePolicy](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AWSControlTowerAccountServiceRolePolicy.html)《*AWS 托管策略参考指南》*。

[AWS Control Tower 的托管策略](managed-policies-table.md) 表中汇总了对这项托管策略的更新。