创建 IAM 策略(控制台) - AWS Identity and Access Management

创建 IAM 策略(控制台)

策略是一个实体;在附加到身份或资源时,策略定义了它们的权限。您可以使用 AWS Management Console 在 IAM 中创建客户托管策略。客户管理型策略是您在自己的 AWS 账户 中管理的独立策略。然后,您可以将策略附加到您的 AWS 账户 中的身份(用户、组和角色)。

AWS 账户中 IAM 资源的数量和大小是有限的。有关更多信息,请参阅 IAM 和 AWS STS 配额

创建 IAM 策略

您可以使用下列方法之一在 AWS Management Console中创建客户托管策略:

  • JSON - 粘贴和自定义已发布的基于身份的示例策略

  • Visual editor(可视化编辑器)- 在可视化编辑器中从头开始构建新的策略。如果使用可视化编辑器,您不需要了解 JSON 语法。

  • Import(导入)- 从您的账户中导入并自定义托管策略。您可以导入之前创建的 AWS 托管策略或客户托管策略。

AWS 账户中 IAM 资源的数量和大小是有限的。有关更多信息,请参阅 IAM 和 AWS STS 配额

使用 JSON 编辑器创建策略

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

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

JSON 策略文档包含一个或多个语句。每个语句应包含具有相同效果 (AllowDeny) 并支持相同资源和条件的所有操作。如果一个操作要求指定所有资源 ("*"),而另一个操作支持特定资源的 Amazon Resource Name (ARN),则它们必须位于两个单独的 JSON 语句中。有关 ARN 格式的详细信息,请参阅《AWS 一般参考指南》中的 Amazon 资源名称(ARN)。有关 IAM policy 的一般信息,请参阅 AWS Identity and Access Management 中的策略和权限。有关 IAM policy 语言的信息,请参阅 IAM JSON 策略参考

使用 JSON 策略编辑器创建策略
  1. 登录AWS Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在左侧的导航窗格中,选择策略

  3. 选择创建策略

  4. 策略编辑器部分,选择 JSON 选项。

  5. 键入或粘贴一个 JSON 策略文档。有关 IAM policy 语言的详细信息,请参阅 IAM JSON 策略参考

  6. 解决策略验证过程中生成的任何安全警告、错误或常规警告,然后选择下一步

    注意

    您可以随时在可视化JSON 编辑器选项卡之间切换。不过,如果您进行更改或在可视化编辑器中选择下一步,IAM 可能会调整您的策略结构以针对可视化编辑器进行优化。有关更多信息,请参阅 调整策略结构

  7. (可选)在 AWS Management Console 中创建或编辑策略时,您可以生成可在 AWS CloudFormation 模板中使用的 JSON 或 YAML 策略模板。

    为此,请在策略编辑器中选择操作,然后选择生成 CloudFormation 模板。如需了解有关 AWS CloudFormation 的更多信息,请参阅《AWS CloudFormation 用户指南》中的 AWS Identity and Access Management资源类型参考

  8. 向策略添加完权限后,选择下一步

  9. 查看和创建页面上,为创建的策略键入策略名称描述(可选)。查看此策略中定义的权限以查看您的策略授予的权限。

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

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

在创建策略后,可以将其附加到您的组、用户或角色。有关更多信息,请参阅 添加和删除 IAM 身份权限

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

IAM 控制台中的可视化编辑器指导您完成创建策略的过程,而无需编写 JSON 语法。要查看使用可视化编辑器创建策略的示例,请参阅控制对身份的访问

使用可视化编辑器创建策略
  1. 登录 AWS Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在左侧的导航窗格中,选择策略

  3. 选择创建策略

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

  5. 对于允许的操作,选择要添加到策略的操作。您可以使用以下方法选择操作:

    • 选中所有操作的复选框。

    • 选择添加操作以键入特定操作的名称。您可以使用通配符 (*) 指定多个操作。

    • 选择访问级别组之一以选择访问级别的所有操作(例如,读取写入列出)。

    • 展开每个访问级别组以选择单独的操作。

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

  6. 对于资源,如果您在前面步骤中选择的服务和操作不支持选择特定资源,则允许使用所有资源,并且您无法编辑此部分。

    如果您选择了一个或多个操作支持资源级权限,可视化编辑器会列出这些资源。然后,展开资源以指定您的策略的资源。

    您可以通过以下方式指定资源:

    • 选择添加 ARN,通过 Amazon 资源名称(ARN)指定资源。您可以使用可视化 ARN 编辑器或手动列出 ARN。有关 ARN 语法的更多信息,请参阅《AWS 一般参考指南》中的 Amazon 资源名称(ARN)。有关在策略的 Resource 元素中使用 ARN 的信息,请参阅IAM JSON 策略元素:Resource

    • 选择资源旁边的此账户中的任意项以授予对该类型的任何资源的权限。

    • 选择所有以选择该服务的所有资源。

  7. (可选)选择请求条件 – 可选,以在创建的策略中添加条件。条件限制 JSON 策略语句的效果。例如,您可以指定仅在以下情况下允许用户对资源执行操作:该用户的请求发生在特定的时间范围内。您还可以使用常用的条件来限制是否必须使用多重验证 (MFA) 设备来验证用户身份。或者,您可以要求请求来自特定范围的 IP 地址。有关您可以在策略条件中使用的所有上下文键的列表,请参阅服务授权参考中的 AWS 服务的操作、资源和条件键

    您可以使用以下方法选择条件:

    • 使用复选框选择常用的条件。

    • 选择添加其他条件以指定其他条件。选择条件的条件键限定词运算符,然后键入一个。要添加多个值,请选择添加。您可以将这些值视为通过逻辑“OR”运算符连接在一起。完成后,选择添加条件

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

    有关 Condition 元素的更多信息,请参阅 IAM JSON 策略元素:Condition中的 IAM JSON 策略参考

  8. 要添加更多权限块,请选择添加更多权限。对于每个块,重复步骤 2 到步骤 5。

    注意

    您可以随时在可视化JSON 编辑器选项卡之间切换。不过,如果您进行更改或在可视化编辑器中选择下一步,IAM 可能会调整您的策略结构以针对可视化编辑器进行优化。有关更多信息,请参阅 调整策略结构

  9. (可选)在 AWS Management Console 中创建或编辑策略时,您可以生成可在 AWS CloudFormation 模板中使用的 JSON 或 YAML 策略模板。

    为此,请在策略编辑器中选择操作,然后选择生成 CloudFormation 模板。如需了解有关 AWS CloudFormation 的更多信息,请参阅《AWS CloudFormation 用户指南》中的 AWS Identity and Access Management资源类型参考

  10. 向策略添加完权限后,选择下一步

  11. 查看和创建页面上,为创建的策略键入策略名称描述(可选)。查看此策略中定义的权限,确保您授予了所需的权限。

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

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

在创建策略后,可以将其附加到您的组、用户或角色。有关更多信息,请参阅 添加和删除 IAM 身份权限

导入现有托管策略

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

您无法导入内联策略。要了解托管策略和内联策略之间的差别,请参阅托管策略与内联策略

在可视化编辑器中导入现有的托管策略
  1. 登录 AWS Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在左侧的导航窗格中,选择策略

  3. 选择创建策略

  4. 策略编辑器中,选择可视化,然后在页面右侧选择操作,然后选择导入策略

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

  6. 选择导入策略

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

  7. 使用可视化编辑器或选择 JSON 以自定义您的策略。然后选择下一步

    注意

    您可以随时在可视化JSON 编辑器选项卡之间切换。不过,如果您进行更改或在可视化编辑器中选择下一步,IAM 可能会调整您的策略结构以针对可视化编辑器进行优化。有关更多信息,请参阅 调整策略结构

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

JSON 编辑器中导入现有的管理型策略
  1. 登录 AWS Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在左侧的导航窗格中,选择策略

  3. 选择创建策略

  4. 策略编辑器部分,选择 JSON 选项,然后在页面右侧选择操作,然后选择导入策略

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

  6. 选择导入策略

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

  7. 在 JSON 中自定义您的策略。解决策略验证过程中生成的任何安全警告、错误或常规警告,然后选择下一步。或者,在 Visual editor(可视化编辑器)中自定义您的策略。然后选择下一步

    注意

    您可以随时在可视化JSON 编辑器选项卡之间切换。不过,如果您进行更改或在可视化编辑器中选择下一步,IAM 可能会调整您的策略结构以针对可视化编辑器进行优化。有关更多信息,请参阅 调整策略结构

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

在创建策略后,可以将其附加到您的组、用户或角色。有关更多信息,请参阅 添加和删除 IAM 身份权限