

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

# 创建角色并分配权限
<a name="assign-permissions"></a>

角色和权限允许您访问 AWS Control Tower 和其他 AWS 服务中的资源，包括以编程方式访问资源。

要提供访问权限，请为您的用户、组或角色添加权限：
+ 中的用户和群组 AWS IAM Identity Center：

  创建权限集合。按照《AWS IAM Identity Center 用户指南》**中[创建权限集](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)的说明进行操作。
+ 通过身份提供者在 IAM 中托管的用户：

  创建适用于身份联合验证的角色。按照《IAM 用户指南》**中[针对第三方身份提供者创建角色（联合身份验证）](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)的说明进行操作。
+ IAM 用户：
  + 创建您的用户可以担任的角色。按照《IAM 用户指南》**中[为 IAM 用户创建角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)的说明进行操作。
  + （不推荐使用）将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南》**中[向用户添加权限（控制台）](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)中的说明进行操作。

有关使用 IAM 委托权限的更多信息，请参阅《IAM 用户指南》**中的[访问权限管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)。

**注意**  
设置 AWS Control Tower 着陆区时，您需要具有**AdministratorAccess**托管策略的用户或角色。 (arn: aws: iam:: aws: policy/) AdministratorAccess

**为 AWS 服务 （IAM 控制台）创建角色**

1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在 IAM 控制台的导航窗格中，选择**角色**，然后选择**创建角色**。

1. 对于 **Trusted entity type**（可信实体类型），选择 **AWS 服务**。

1. 对于**服务或使用案例**，请选择服务，然后选择使用案例。用例由服务定义以包含服务要求的信任策略。

1. 选择**下一步**。

1. 对于**权限策略**，选项取决于您选择的使用案例：
   + 如果服务定义了角色的权限，则您无法选择权限策略。
   + 从一组有限的权限策略中进行选择。
   + 从所有权限策略中进行选择。
   + 不选择任何权限策略，创建角色后创建策略，然后将这些策略附加到该角色。

1. （可选）设置[权限边界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。这是一项高级功能，可用于服务角色，但不可用于服务相关角色。

   1. 打开**设置权限边界**部分，然后选择**使用权限边界控制最大角色权限**。

      IAM 包含您账户中的 AWS 托管策略和客户托管策略列表。

   1. 选择要用于权限边界的策略。

1. 选择**下一步**。

1. 对于**角色名称**，选项取决于服务：
   + 如果服务定义角色名称，则您无法编辑角色名称。
   + 如果服务定义角色名称的前缀，您可以输入可选的后缀。
   + 如果服务未定义角色名称，您可以为该角色命名。
**重要**  
命名角色时，请注意以下事项：  
角色名称在您内部必须是唯一的 AWS 账户，并且不能因大小写而变得唯一。  
例如，不要同时创建名为 **PRODROLE** 和 **prodrole** 的角色。当角色名称在策略中使用或者作为 ARN 的一部分时，角色名称区分大小写，但是当角色名称在控制台中向客户显示时（例如，在登录期间），角色名称不区分大小写。
创建角色后，您无法编辑该角色的名称，因为其他实体可能会引用该角色。

1. （可选）对于**描述**，输入角色的描述。

1. （可选）要编辑角色的使用案例和权限，请在**步骤 1：选择可信实体**或**步骤 2：添加权限**部分中选择**编辑**。

1. （可选）为了帮助识别、组织或搜索角色，请以键值对形式添加标签。有关在 IAM 中使用标签的更多信息，请参阅 *IAM 用户指南*中的[AWS Identity and Access Management 资源标签](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)。

1. 检查该角色，然后选择**创建角色**。

**使用 JSON 策略编辑器创建策略**

1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在左侧的导航窗格中，选择**策略**。

   如果这是您首次选择**策略**，则会显示**欢迎访问托管式策略**页面。选择**开始使用**。

1. 在页面的顶部，选择**创建策略**。

1. 在**策略编辑器**部分，选择 **JSON** 选项。

1. 输入或粘贴一个 JSON 策略文档。有关 IAM 策略语言的详细信息，请参阅 [IAM JSON 策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)参考。

1. 解决[策略验证](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html)过程中生成的任何安全警告、错误或常规警告，然后选择**下一步**。
**注意**  
您可以随时在**可视化**和 **JSON** 编辑器选项卡之间切换。不过，如果您进行更改或在**可视化**编辑器中选择**下一步**，IAM 可能会调整策略结构以针对可视化编辑器进行优化。有关更多信息，请参阅*《IAM 用户指南》*中的[调整策略结构](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_policies.html#troubleshoot_viseditor-restructure)。

1. （可选）在中创建或编辑策略时 AWS 管理控制台，可以生成可在模板中使用的 JSON 或 YAML 策略 CloudFormation 模板。

   为此，请在**策略编辑器**中选择**操作**，然后选择**生成 CloudFormation模板**。要了解更多信息 CloudFormation，请参阅*AWS CloudFormation 用户指南*中的[AWS Identity and Access Management 资源类型参考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_IAM.html)。

1. 向策略添加完权限后，选择**下一步**。

1. 在**查看并创建**页面上，为您要创建的策略键入**策略名称**和**描述**（可选）。查看**此策略中定义的权限**以查看策略授予的权限。

1. （可选）通过以密钥值对的形式附加标签来向策略添加元数据。有关在 IAM 中使用标签的更多信息，请参阅 *IAM 用户指南*中的[AWS Identity and Access Management 资源标签](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)。

1. 选择**创建策略**可保存您的新策略。

**使用可视化编辑器创建策略**

1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在左侧的导航窗格中，选择**策略**。

   如果这是您首次选择**策略**，则会显示**欢迎访问托管式策略**页面。选择**开始使用**。

1. 选择**创建策略**。

1. 在**策略编辑器**部分中，找到**选择一项服务**部分，然后选择 AWS 服务服务。您可以使用顶部的搜索框限制服务列表中的结果。您只能在一个可视化编辑器权限块中选择一个服务。要为多个服务授予访问权限，请选择**添加更多权限**以添加多个权限块。

1. 对于**允许的操作**，选择要添加到策略的操作。您可以使用以下方法选择操作：
   + 选中所有操作的复选框。
   + 选择**添加操作**以键入特定操作的名称。您可以使用通配符（`*`）指定多个操作。
   + 选择**访问级别**组之一以选择访问级别的所有操作（例如，**读取**、**写入**或**列出**）。
   + 展开每个**访问级别**组以选择单独的操作。

   预设情况下，您创建的策略允许执行选择的操作。要拒绝选择的操作，请选择**切换到拒绝权限**。由于 [IAM 默认拒绝](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)，作为安全最佳实践，我们建议您仅允许用户所需的操作和资源的权限。只有在要覆盖由其他语句或策略单独允许的权限时，才应创建 JSON 语句以拒绝权限。我们建议您将拒绝权限数限制为最低，因为它们可能会增加解决权限问题的难度。

1. 对于**资源**，如果您在前面步骤中选择的服务和操作不支持选择[特定资源](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_controlling.html#access_controlling-resources)，则允许使用所有资源，并且您无法编辑此部分。

   如果您选择了一个或多个操作支持[资源级权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_controlling.html#access_controlling-resources)，可视化编辑器会列出这些资源。然后，展开**资源**以指定您的策略的资源。

   您可以通过以下方式指定资源：
   + 选择 “** ARNs添加**”，按资源的 Amazon 资源名称 (ARN) 指定资源。您可以手动使用可视化 ARN 编辑器或列表 ARNs 。有关 ARN 语法的更多信息，请参阅 IA *M 用户*指南中的 A [mazon 资源名称 (ARNs)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)。有关在策略`Resource`元素 ARNs 中使用的信息，请参阅 [IAM *用户指南*中的 IAM JSON 策略元素：资源](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html)。
   + 选择资源旁边的**此账户中的任意项**以授予对该类型的任何资源的权限。
   + 选择**所有**以选择该服务的所有资源。

1. （可选）选择**请求条件 – *可选***，以在创建的策略中添加条件。条件限制 JSON 策略语句的效果。例如，您可以指定仅在以下情况下允许用户对资源执行操作：该用户的请求发生在特定的时间范围内。您还可以使用常用条件来限制用户是否必须使用多重身份验证（MFA）设备进行身份验证。或者，您可以要求请求来自特定范围的 IP 地址。有关可在策略条件中使用的所有上下文密钥的列表，请参阅《服务*授权参考*》中的[AWS 服务操作、资源和条件密钥](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html)。

   您可以使用以下方法选择条件：
   + 使用复选框选择常用的条件。
   + 选择**添加其他条件**以指定其他条件。选择条件的**条件键**、**限定符**和**运算符**，然后键入一个**值**。要添加多个值，请选择**添加**。您可以将这些值视为通过逻辑 `OR` 运算符连接在一起。完成后，选择**添加条件**。

   要添加多个条件，请再次选择**添加其他条件**。根据需要重复上述步骤。每个条件仅适用于该可视化编辑器权限块。所有条件都必须为 true，才会将权限块视为匹配项。也就是说，将条件视为通过逻辑 `AND` 运算符连接在一起。

   有关 **Condition** 元素的更多信息，请参阅《IAM 用户指南》**中的 [IAM JSON 策略元素：Condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。

1. 要添加更多权限块，请选择**添加更多权限**。对于每个块，重复步骤 2 到步骤 5。
**注意**  
您可以随时在**可视化**和 **JSON** 编辑器选项卡之间切换。不过，如果您进行更改或在**可视化**编辑器中选择**下一步**，IAM 可能会调整策略结构以针对可视化编辑器进行优化。有关更多信息，请参阅*《IAM 用户指南》*中的[调整策略结构](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_policies.html#troubleshoot_viseditor-restructure)。

1. （可选）在中创建或编辑策略时 AWS 管理控制台，可以生成可在模板中使用的 JSON 或 YAML 策略 CloudFormation 模板。

   为此，请在**策略编辑器**中选择**操作**，然后选择**生成 CloudFormation模板**。要了解更多信息 CloudFormation，请参阅*AWS CloudFormation 用户指南*中的[AWS Identity and Access Management 资源类型参考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_IAM.html)。

1. 向策略添加完权限后，选择**下一步**。

1. 在**查看并创建**页面上，为您要创建的策略键入**策略名称**和**描述**（可选）。查看**此策略中定义的权限**，确保您授予了所需的权限。

1. （可选）通过以密钥值对的形式附加标签来向策略添加元数据。有关在 IAM 中使用标签的更多信息，请参阅 *IAM 用户指南*中的[AWS Identity and Access Management 资源标签](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)。

1. 选择**创建策略**可保存您的新策略。

**授予编程访问权限**

如果用户想在 AWS 外部进行交互，则需要编程访问权限 AWS 管理控制台。授予编程访问权限的方式取决于正在访问的用户类型 AWS。

要向用户授予编程式访问权限，请选择以下选项之一。


****  

| 哪个用户需要编程式访问权限？ | 目的 | 方式 | 
| --- | --- | --- | 
| IAM | （推荐）使用控制台凭证作为临时凭证，签署对 AWS CLI AWS SDKs、或的编程请求 AWS APIs。 |  按照您希望使用的界面的说明进行操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/controltower/latest/userguide/assign-permissions.html)  | 
|  人力身份 （在 IAM Identity Center 中管理的用户）  | 使用临时证书签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 |  按照您希望使用的界面的说明进行操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/controltower/latest/userguide/assign-permissions.html)  | 
| IAM | 使用临时证书签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 | 按照 IAM 用户指南中的将[临时证书与 AWS 资源配合使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)中的说明进行操作。 | 
| IAM | （不推荐使用）使用长期凭证签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 |  按照您希望使用的界面的说明进行操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/controltower/latest/userguide/assign-permissions.html)  | 

## 防范攻击者
<a name="protect"></a>

有关在向其他 AWS 服务主体授予权限时如何帮助防范攻击者的更多信息，请参阅[角色信任关系的可选条件](https://docs.aws.amazon.com//controltower/latest/userguide/conditions-for-role-trust.html)。通过在策略中添加某些条件，您可以帮助防止某种特定类型的攻击，即*混淆代理*攻击，当某个实体迫使更有权限的实体执行某个操作（例如跨服务模拟）时，就会发生此类攻击。有关策略条件的一般信息，请参阅 [在策略中指定条件](access-control-overview.md#specifying-conditions)。

有关将基于身份的策略与 AWS Control Tower 结合使用的更多信息，请参阅 [在 AWS Control Tower 中使用基于身份的策略（IAM 策略）](access-control-managing-permissions.md)。有关用户、组、角色和权限的更多信息，请参阅《IAM 用户指南》[https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)中的*身份（用户、组和角色）*。