

# 创建 IAM 策略（控制台）


[策略](access_policies.md)是一个实体；在附加到身份或资源时，策略定义了它们的权限。您可以使用 Amazon Web Services 管理控制台 在 IAM 中创建*客户托管策略*。客户管理型策略是您在自己的 Amazon Web Services 账户 中管理的独立策略。然后，您可以将策略附加到您的 Amazon Web Services 账户 中的身份（用户、组和角色）。

Amazon 账户中 IAM 资源的数量和大小是有限的。有关更多信息，请参阅 [IAM 和 Amazon STS 配额](reference_iam-quotas.md)。

**Topics**
+ [

## 创建 IAM 策略
](#access_policies_create-start)
+ [

## 使用 JSON 编辑器创建策略
](#access_policies_create-json-editor)
+ [

## 使用可视化编辑器创建策略
](#access_policies_create-visual-editor)
+ [

## 导入现有托管策略
](#access_policies_create-copy)

## 创建 IAM 策略


您可以使用下列方法之一在 Amazon Web Services 管理控制台中创建客户托管策略：
+ **[JSON](#access_policies_create-json-editor)** - 粘贴和自定义已发布的[基于身份的示例策略](access_policies_examples.md)。
+ **[Visual editor](#access_policies_create-visual-editor)**（可视化编辑器）- 在可视化编辑器中从头开始构建新的策略。如果使用可视化编辑器，您不需要了解 JSON 语法。
+ **[Import](#access_policies_create-copy)**（导入）- 从您的账户中导入并自定义托管策略。您可以导入之前创建的 Amazon 托管策略或客户托管策略。

Amazon 账户中 IAM 资源的数量和大小是有限的。有关更多信息，请参阅 [IAM 和 Amazon STS 配额](reference_iam-quotas.md)。

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


您可以选择 **JSON** 选项以在 JSON 中键入或粘贴策略。这种方法适用于复制[示例策略](access_policies_examples.md)以在您的账户中使用。或者，您可以在 JSON 编辑器中键入自己的 JSON 策略文档。也可以使用 **JSON** 选项在可视化编辑器和 JSON 之间切换以比较这些视图。

 当您在 JSON 编辑器中创建或编辑策略时，IAM 会执行策略验证以帮助您创建有效的策略。IAM 可识别 JSON 语法错误，而 IAM Access Analyzer 提供额外的策略检查和可执行的建议，以帮助您进一步优化策略。

JSON [策略](access_policies.md)文档包含一个或多个语句。每个语句应包含具有相同效果 (`Allow` 或 `Deny`) 并支持相同资源和条件的所有操作。如果一个操作要求指定所有资源 (`"*"`)，而另一个操作支持特定资源的 Amazon Resource Name (ARN)，则它们必须位于两个单独的 JSON 语句中。有关 ARN 格式的详细信息，请参阅《Amazon Web Services 一般参考指南》中的 [Amazon 资源名称（ARN）](https://docs.amazonaws.cn/general/latest/gr/aws-arns-and-namespaces.html)**。有关 IAM policy 的一般信息，请参阅 [Amazon Identity and Access Management 中的策略和权限](access_policies.md)。有关 IAM policy 语言的信息，请参阅 [IAM JSON 策略参考](reference_policies.md)。

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

1. 登录Amazon Web Services 管理控制台，然后通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/)。

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

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

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

1. 键入或粘贴一个 JSON 策略文档。有关 IAM policy 语言的详细信息，请参阅 [IAM JSON 策略参考](reference_policies.md)。

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

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

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

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

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

1. （可选）通过以密钥值对的形式附加标签来向策略添加元数据。有关在 IAM 中使用标签的更多信息，请参阅 [Amazon Identity and Access Management 资源的标签](id_tags.md)。

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

在创建策略后，可以将其附加到您的组、用户或角色。有关更多信息，请参阅 [添加和删除 IAM 身份权限](access_policies_manage-attach-detach.md)。

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


IAM 控制台中的可视化编辑器指导您完成创建策略的过程，而无需编写 JSON 语法。要查看使用可视化编辑器创建策略的示例，请参阅[控制对身份的访问](access_controlling.md#access_controlling-identities)。

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

1. 登录 Amazon Web Services 管理控制台，然后通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/)。

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

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

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

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

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

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

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

   您可以通过以下方式指定资源：
   + 选择**添加 ARN**，通过 Amazon 资源名称（ARN）指定资源。您可以使用可视化 ARN 编辑器或手动列出 ARN。有关 ARN 语法的更多信息，请参阅《Amazon Web Services 一般参考指南》中的 [Amazon 资源名称（ARN）](https://docs.amazonaws.cn/general/latest/gr/aws-arns-and-namespaces.html)**。有关在策略的 `Resource` 元素中使用 ARN 的信息，请参阅[IAM JSON 策略元素：Resource](reference_policies_elements_resource.md)。
   + 选择资源旁边的**此账户中的任意项**以授予对该类型的任何资源的权限。
   + 选择**所有**以选择该服务的所有资源。

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

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

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

   有关 **Condition** 元素的更多信息，请参阅 [IAM JSON 策略元素：Condition](reference_policies_elements_condition.md)中的 [IAM JSON 策略参考](reference_policies.md)。

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

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

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

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

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

1. （可选）通过以密钥值对的形式附加标签来向策略添加元数据。有关在 IAM 中使用标签的更多信息，请参阅 [Amazon Identity and Access Management 资源的标签](id_tags.md)。

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

在创建策略后，可以将其附加到您的组、用户或角色。有关更多信息，请参阅 [添加和删除 IAM 身份权限](access_policies_manage-attach-detach.md)。

## 导入现有托管策略


要创建新的策略，一种简单的方法是在您的账户中导入至少具有一部分所需权限的现有托管策略。您随后可以自定义该策略，使其符合您的新要求。

您无法导入内联策略。要了解托管策略和内联策略之间的差别，请参阅[托管策略与内联策略](access_policies_managed-vs-inline.md)。

**在可视化编辑器中导入现有的托管策略**

1. 登录 Amazon Web Services 管理控制台，然后通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/)。

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

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

1. 在**策略编辑器**中，选择**可视化**，然后在页面右侧选择**操作**，然后选择**导入策略**。

1. 在**导入策略**窗口中，选择与要在新策略中包含的策略最匹配的管理型策略。您可以使用顶部的搜索框限制策略列表中的结果。

1. 选择**导入策略**。

   将在策略底部的新权限块中添加导入的策略。

1. 使用**可视化编辑器**或选择 **JSON** 以自定义您的策略。然后选择**下一步**。
**注意**  
您可以随时在**可视化**和 **JSON** 编辑器选项卡之间切换。不过，如果您进行更改或在**可视化**编辑器中选择**下一步**，IAM 可能会调整您的策略结构以针对可视化编辑器进行优化。有关更多信息，请参阅 [调整策略结构](troubleshoot_policies.md#troubleshoot_viseditor-restructure)。

1. 在**查看和创建**页面上，为创建的策略键入**策略名称**和**描述**（可选）。您以后无法编辑这些设置。查看**此策略中定义的权限**，然后选择**创建策略**以保存您的工作。

**在 **JSON** 编辑器中导入现有的管理型策略**

1. 登录 Amazon Web Services 管理控制台，然后通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/)。

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

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

1. 在**策略编辑器**部分，选择 **JSON** 选项，然后在页面右侧选择**操作**，然后选择**导入策略**。

1. 在**导入策略**窗口中，选择与要在新策略中包含的策略最匹配的管理型策略。您可以使用顶部的搜索框限制策略列表中的结果。

1. 选择**导入策略**。

   导入的策略中的语句将添加到 JSON 策略底部。

1. 在 JSON 中自定义您的策略。解决[策略验证](access_policies_policy-validator.md)过程中生成的任何安全警告、错误或常规警告，然后选择**下一步**。或者，在 **Visual editor**（可视化编辑器）中自定义您的策略。然后选择**下一步**。
**注意**  
您可以随时在**可视化**和 **JSON** 编辑器选项卡之间切换。不过，如果您进行更改或在**可视化**编辑器中选择**下一步**，IAM 可能会调整您的策略结构以针对可视化编辑器进行优化。有关更多信息，请参阅 [调整策略结构](troubleshoot_policies.md#troubleshoot_viseditor-restructure)。

1. 在**查看和创建**页面上，为创建的策略键入**策略名称**和**描述**（可选）。您以后无法编辑这些字段。查看策略**此策略中定义的权限**，然后选择**创建策略**以保存您的工作。

在创建策略后，可以将其附加到您的组、用户或角色。有关更多信息，请参阅 [添加和删除 IAM 身份权限](access_policies_manage-attach-detach.md)。