使用创建组织政策 AWS Organizations - AWS Organizations

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

使用创建组织政策 AWS Organizations

为组织启用策略后,您可以创建策略。

本主题介绍如何使用创建策略 AWS Organizations。策略定义了您要应用于一组的控制措施 AWS 账户。

创建服务控制策略(SCP)

最小权限

要创建 SCPs,您需要获得运行以下操作的权限:

  • organizations:CreatePolicy

AWS Management Console
创建服务控制策略
  1. 登录 AWS Organizations 控制台。您必须以 IAM 用户的身份登录,担任 IAM 角色;或在组织的管理账户中以根用户的身份登录(不推荐)。

  2. Service control policies (服务控制策略) 页面上,选择 Create policy (创建策略)

  3. CCreate new service control policy (创建新的服务控制策略) 页面上,输入策略的 Policy name (策略名称) 和可选 Policy description (策略说明)

  4. (可选)添加一个或多个标签,方法是选择 Add tag (添加标签),然后输入一个键和可选的值。将值留空,设置为空字符串;它并非 null。您最多可以向策略附加 50 个标签。有关更多信息,请参阅 为资源添加标签 AWS Organizations

    注意

    在接下来的大多数步骤中,我们讨论如何使用 JSON 编辑器右侧的控件来逐个元素构建策略。或者,您可以随时在窗口左侧的 JSON 编辑器中输入文本。您可以直接键入,也可以使用复制和粘贴。

  5. 为了构建策略,您的后续步骤因您是否要添加拒绝允许访问的语句而异。有关更多信息,请参阅 SCP 评估。如果您使用Deny语句,则可以获得额外的控制权,因为您可以限制对特定资源的访问权限,定义 SCPs 何时生效的条件以及使用该NotAction元素。有关语法的详细信息,请参阅SCP 语法

    要添加拒绝 访问的语句,请执行以下操作:

    1. 在编辑器右侧的 “编辑语句” 窗格中,在 “添加操作” 下,选择一项 AWS 服务。

      当您选择右侧的选项时,JSON 编辑器会更新,以在左侧显示相应的 JSON 策略。

    2. 选择服务后,将打开一个列表,其中包含该服务的可用操作。您可以选择 All actions (所有操作),或选择要拒绝的一个或多个单独操作。

      左侧的 JSON 将更新,以包含您选择的操作。

      注意

      如果您选择一个单独的操作,然后返回并选择 All actions (所有操作),那么 servicename:* 的预期条目会添加到 JSON 中,但您之前选择的单个操作将保留在 JSON 中,而不会被删除。

    3. 如果要添加来自其他服务的操作,您可以选择 Statement (语句) 框顶部的 All services (所有服务),然后根据需要重复前面两个步骤。

    4. 指定要包含在语句中的资源。

      • 添加资源旁边,选择添加

      • Add resource (添加资源) 对话框中,从列表中选择要控制其资源的服务。您只能从上一步骤选择的服务中进行选择。

      • Resource type (资源类型) 下,选择要控制的资源的类型。

      • 最后,在 Resource ARN 中填写 Amazon Resource Name(ARN),以标识您要控制访问权限的特定资源。必须替换由大括号 {} 包围的所有占位符。您可以在资源类型的 ARN 语法允许的地方指定通配符(*)。有关可在何处使用通配符的信息,请参阅特定资源类型的文档。

      • 保存您对策略添加的内容,方法是选择 Add resource (添加资源)。JSON 中的 Resource 元素反映了您的添加或更改。需要 Resource (资源) 元素。

      提示

      如果要指定选定服务的所有资源,请选择列表中的 All resources (所有资源) 选项,或者直接在 JSON 中编辑 Resource 语句以读取 "Resource":"*"

    5. (可选)要指定限制策略语句生效时间的条件,请在添加条件旁边选择添加

      • 条件密钥-从列表中,您可以选择适用于所有 AWS 服务的任何条件密钥(例如aws:SourceIp),或者仅为在本语句中选择的一项服务选择特定于服务的密钥。

      • 限定符-(可选)当请求具有多个多值上下文键值的值时,您可以指定一个限定符来根据这些值测试请求。有关更多信息,请参阅 IAM 用户指南中的单值与多值上下文密钥。要检查请求是否可以有多个值,请参阅《服务授权参考》 AWS 服务中的操作、资源和条件键

        • 默认值 – 根据策略中的条件键值测试请求中的单个值。如果请求中的值均与策略中的值匹配,则条件返回 true。如果策略指定了多个值,则它们将被视为“or”测试,如果请求值与任何策略值匹配,则条件返回 true。

        • 对于请求中的任何值 – 当请求可以具有多个值时,此选项测试是否有至少一个请求值与策略中的至少一个条件键值匹配。如果请求中的任何一个键值与策略中的任何一个条件值匹配,则条件返回 true。对于没有匹配的键或空数据集,条件返回 false。

        • 对于请求中的所有值 – 当请求可以具有多个值时,此选项测试是否每个请求值都与策略中的条件键值匹配。如果请求中的每个键值均与策略中的至少一个值匹配,则条件返回 true。如果请求中没有键或者键值解析为空数据集(如空字符串),则也会返回 true。

      • 运算符运算符指定要进行比较的类型。显示的选项取决于条件键的数据类型。例如,aws:CurrentTime 全局条件键允许您从任何日期比较运算符(或 Null)中选择,您可以使用它来测试请求中是否存在该值。

        对于除Null检验之外的任何条件运算符,您可以选择该IfExists选项。

      • –(可选)指定要测试请求的一个或多个值。

      选择 添加条件

      有关条件键的更多信息,请参阅《IAM 用户指南》中的 IAM JSON 策略元素:条件

  6. 要添加允许 访问的语句,请执行以下操作:

    1. 在左侧的 JSON 编辑器中,将行 "Effect": "Deny" 改为 "Effect": "Allow"

      当您选择右侧的选项时,JSON 编辑器会更新,以在左侧显示相应的 JSON 策略。

    2. 选择服务后,将打开一个列表,其中包含该服务的可用操作。您可以选择 All actions (所有操作),或选择要允许的一个或多个单独操作。

      左侧的 JSON 将更新,以包含您选择的操作。

      注意

      如果您选择一个单独的操作,然后返回并选择 All actions (所有操作),那么 servicename:* 的预期条目会添加到 JSON 中,但您之前选择的单个操作将保留在 JSON 中,而不会被删除。

    3. 如果要添加来自其他服务的操作,您可以选择 Statement (语句) 框顶部的 All services (所有服务),然后根据需要重复前面两个步骤。

  7. (可选)要向策略添加另一个语句,请选择 Add statement (添加语句) 并使用可视化编辑器构建下一条语句。

  8. 添加完语句后,选择 Create policy (创建策略) 以保存已完成的 SCP。

您的新 SCP 会显示在组织的策略列表中。现在,您可以将 SCP 附加到根或账户。 OUs

AWS CLI & AWS SDKs
创建服务控制策略

您可以使用以下命令之一创建 SCP:

  • AWS CLI:create-policy

    以下示例假定您有一个名为 Deny-IAM.json 的文件,其中包含 JSON 策略文本。它使用该文件创建新的服务控制策略。

    $ aws organizations create-policy \ --content file://Deny-IAM.json \ --description "Deny all IAM actions" \ --name DenyIAMSCP \ --type SERVICE_CONTROL_POLICY { "Policy": { "PolicySummary": { "Id": "p-i9j8k7l6m5", "Arn": "arn:aws:organizations::123456789012:policy/o-aa111bb222/service_control_policy/p-i9j8k7l6m5", "Name": "DenyIAMSCP", "Description": "Deny all IAM actions", "Type": "SERVICE_CONTROL_POLICY", "AwsManaged": false }, "Content": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Statement1\",\"Effect\":\"Deny\",\"Action\":[\"iam:*\"],\"Resource\":[\"*\"]}]}" } }
  • AWS SDKs: CreatePolicy

注意

SCPs 不要对管理账户和其他几种情况生效。有关更多信息,请参阅 不受限制的任务和实体 SCPs

创建资源控制策略 (RCP)

最小权限

要创建 RCPs,您需要获得运行以下操作的权限:

  • organizations:CreatePolicy

AWS Management Console
创建资源控制策略
  1. 登录 AWS Organizations 控制台。您必须以 IAM 用户的身份登录,担任 IAM 角色;或在组织的管理账户中以根用户的身份登录(不推荐)。

  2. 资源控制策略页面上,选择创建策略

  3. 创建新的资源控制策略页面上,输入策略名称和可选的策略描述

  4. (可选)添加一个或多个标签,方法是选择 Add tag (添加标签),然后输入一个键和可选的值。将值留空,设置为空字符串;它并非 null。您最多可以向策略附加 50 个标签。有关更多信息,请参阅 为资源添加标签 AWS Organizations

    注意

    在接下来的大多数步骤中,我们讨论如何使用 JSON 编辑器右侧的控件来逐个元素构建策略。或者,您可以随时在窗口左侧的 JSON 编辑器中输入文本。您可以直接键入,也可以使用复制和粘贴。

  5. 要添加语句,请执行以下操作:

    1. 在编辑器右侧的 “编辑语句” 窗格中,在 “添加操作” 下,选择一项 AWS 服务。

      当您选择右侧的选项时,JSON 编辑器会更新,以在左侧显示相应的 JSON 策略。

    2. 选择服务后,将打开一个列表,其中包含该服务的可用操作。您可以选择 All actions (所有操作),或选择要拒绝的一个或多个单独操作。

      左侧的 JSON 将更新,以包含您选择的操作。

      注意

      如果您选择一个单独的操作,然后返回并选择 All actions (所有操作),那么 servicename:* 的预期条目会添加到 JSON 中,但您之前选择的单个操作将保留在 JSON 中,而不会被删除。

    3. 如果要添加来自其他服务的操作,您可以选择 Statement (语句) 框顶部的 All services (所有服务),然后根据需要重复前面两个步骤。

    4. 指定要包含在语句中的资源。

      • 添加资源旁边,选择添加

      • Add resource (添加资源) 对话框中,从列表中选择要控制其资源的服务。您只能从上一步骤选择的服务中进行选择。

      • Resource type (资源类型) 下,选择要控制的资源的类型。

      • 填写资源 ARN 中的 Amazon 资源名称 (ARN),以确定您要控制访问权限的特定资源。必须替换由大括号 {} 包围的所有占位符。您可以在资源类型的 ARN 语法允许的地方指定通配符(*)。有关可以在何处使用通配符的信息,请参阅特定资源类型的文档

      • 保存您对策略添加的内容,方法是选择 Add resource (添加资源)。JSON 中的 Resource 元素反映了您的添加或更改。需要 Resource (资源) 元素。

      提示

      如果要指定选定服务的所有资源,请选择列表中的 All resources (所有资源) 选项,或者直接在 JSON 中编辑 Resource 语句以读取 "Resource":"*"

    5. (可选)要指定限制策略语句生效时间的条件,请在添加条件旁边选择添加

      • 条件密钥-从列表中,您可以选择适用于所有 AWS 服务的任何条件密钥(例如aws:SourceIp),或者仅为在本语句中选择的一项服务选择特定于服务的密钥。

      • 限定符-(可选)当请求具有多个多值上下文键值的值时,您可以指定一个限定符来根据这些值测试请求。有关更多信息,请参阅 IAM 用户指南中的单值与多值上下文密钥。要检查请求是否可以有多个值,请参阅《服务授权参考》 AWS 服务中的操作、资源和条件键

        • 默认值 – 根据策略中的条件键值测试请求中的单个值。如果请求中的值均与策略中的值匹配,则条件返回 true。如果策略指定了多个值,则它们将被视为“or”测试,如果请求值与任何策略值匹配,则条件返回 true。

        • 对于请求中的任何值 – 当请求可以具有多个值时,此选项测试是否有至少一个请求值与策略中的至少一个条件键值匹配。如果请求中的任何一个键值与策略中的任何一个条件值匹配,则条件返回 true。对于没有匹配的键或空数据集,条件返回 false。

        • 对于请求中的所有值 – 当请求可以具有多个值时,此选项测试是否每个请求值都与策略中的条件键值匹配。如果请求中的每个键值均与策略中的至少一个值匹配,则条件返回 true。如果请求中没有键或者键值解析为空数据集(如空字符串),则也会返回 true。

      • 运算符运算符指定要进行比较的类型。显示的选项取决于条件键的数据类型。例如,aws:CurrentTime 全局条件键允许您从任何日期比较运算符(或 Null)中选择,您可以使用它来测试请求中是否存在该值。

        对于除Null检验之外的任何条件运算符,您可以选择该IfExists选项。

      • –(可选)指定要测试请求的一个或多个值。

      选择 添加条件

      有关条件键的更多信息,请参阅《IAM 用户指南》中的 IAM JSON 策略元素:条件

    6. (可选)要使用 NotAction 元素来拒绝对所有操作(指定操作除外)的访问权限,请将左窗格中的 Action 替换为 NotAction(位于 "Effect": "Deny", 元素后)。有关更多信息,请参阅 IAM 用户指南 NotAction中的 IAM JSON 策略元素:

  6. (可选)要向策略添加另一个语句,请选择 Add statement (添加语句) 并使用可视化编辑器构建下一条语句。

  7. 添加完对账单后,选择创建策略以保存已完成的 RCP。

您的新 RCP 将出现在该组织的政策列表中。现在,您可以将 RCP 附加到一个或多个 OUs根账户

AWS CLI & AWS SDKs
创建资源控制策略

您可以使用以下命令之一创建 RCP:

  • AWS CLI:create-policy

    以下示例假定您有一个名为 Deny-IAM.json 的文件,其中包含 JSON 策略文本。它使用该文件来创建新的资源控制策略。

    $ aws organizations create-policy \ --content file://Deny-IAM.json \ --description "Deny all IAM actions" \ --name DenyIAMRCP \ --type RESOURCE_CONTROL_POLICY { "Policy": { "PolicySummary": { "Id": "p-i9j8k7l6m5", "Arn": "arn:aws:organizations::123456789012:policy/o-aa111bb222/resource_control_policy/p-i9j8k7l6m5", "Name": "DenyIAMRCP", "Description": "Deny all IAM actions", "Type": "RESOURCE_CONTROL_POLICY", "AwsManaged": false }, "Content": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Statement1\",\"Effect\":\"Deny\",\"Action\":[\"iam:*\"],\"Resource\":[\"*\"]}]}" } }
  • AWS SDKs: CreatePolicy

注意

RCPs 不要对管理账户和其他几种情况生效。有关更多信息,请参阅 不受限制的资源和实体 RCPs

创建声明性政策

最小权限

要创建声明性策略,您需要获得运行以下操作的权限:

  • organizations:CreatePolicy

AWS Management Console
创建声明性政策
  1. 登录 AWS Organizations 控制台。您必须以 IAM 用户的身份登录,担任 IAM 角色;或在组织的管理账户中以根用户的身份登录(不推荐)。

  2. 声明性策略页面上,选择创建策略

  3. 在 “为其创建新的声明性策略 EC2” 页面上,输入策略名称和可选的策略描述

  4. (可选)您可以向策略添加一个或多个标签,方法是选择 Add tag (添加标签),然后输入一个键和可选的值。将值留空,设置为空字符串;它并非 null。您最多可以向策略附加 50 个标签。有关更多信息,请参阅 为资源添加标签 AWS Organizations

  5. 您可以使用可视化编辑器构建策略,如此过程中所述。您也可以在 JSON 选项卡中输入或粘贴策略文本。有关声明式策略语法的信息,请参见声明式策略语法和示例

    如果您选择使用可视化编辑器,请选择要包含在声明式策略中的服务属性。有关更多信息,请参阅 支持 AWS 服务 和属性

  6. 选择添加服务属性,然后根据您的规格配置该属性。有关每种效果的更多详细信息,请参阅声明式策略语法和示例

  7. 编辑完策略后,选择位于页面右下角的 Create policy (创建策略)

AWS CLI & AWS SDKs
创建声明性政策

您可以使用以下方法之一来创建声明性策略:

  • AWS CLI:create-policy

    1. 创建如下所示的声明性策略,并将其存储在文本文件中。

      { "ec2_attributes": { "image_block_public_access": { "state": { "@@assign": "block_new_sharing" } } } }

      此声明性政策规定,必须对受该政策影响的所有账户进行配置,确保新的 Amazon 系统映像 (AMIs) 不可公开共享。有关声明式策略语法的信息,请参见声明式策略语法和示例

    2. 导入 JSON 策略文件以在组织中创建新的策略。在本示例中,上一个 JSON 文件名为 policy.json

      $ aws organizations create-policy \ --type DECLARATIVE_POLICY_EC2 \ --name "MyTestPolicy" \ --description "My test policy" \ --content file://policy.json { "Policy": { "Content": "{"ec2_attributes":{"image_block_public_access":{"state":{"@@assign":"block_new_sharing"}}}}". "PolicySummary": { "Id": "p-i9j8k7l6m5" "Arn": "arn:aws:organizations::o-aa111bb222:policy/declarative_policy_ec2/p-i9j8k7l6m5", "Description": "My test policy", "Name": "MyTestPolicy", "Type": "DECLARATIVE_POLICY_EC2" } } }
  • AWS SDKs: CreatePolicy

后续操作

创建声明性政策后,使用账户状态报告评估准备情况。然后,您可以强制执行基准配置。为此,您可以将策略附加到组织根目录、组织单位 (OUs)、组织 AWS 账户 内部或所有这些的组合。

创建备份策略

最小权限

要创建备份策略,您需要运行以下操作的权限:

  • organizations:CreatePolicy

AWS Management Console

您可以通过以下两种 AWS Management Console 方式之一来创建备份策略:

  • 可视化编辑器,允许您选择选项并为您生成 JSON 策略文本。

  • 文本编辑器,允许您自己直接创建 JSON 策略文本。

可视化编辑器使过程变得简单,但会限制您的灵活性。这是创建您的第一批策略并使其习惯使用的好方法。了解策略的工作原理并开始受到可视化编辑器所提供功能的限制之后,您可以通过自己编辑 JSON 策略文本将高级功能添加到策略中。可视化编辑器仅使用 @@assign 值设置运算符,不提供对子控制运算符的任何访问权限。只有在手动编辑 JSON 策略文本时,才能添加子控制运算符。

创建备份策略
  1. 登录 AWS Organizations 控制台。您必须以 IAM 用户的身份登录,担任 IAM 角色;或在组织的管理账户中以根用户的身份登录(不推荐)。

  2. Backup policies (备份策略) 页面上,选择 Create policy (创建策略)

  3. Create policy (创建策略) 页面上,输入策略的 Policy name (策略名称) 和可选 Policy description (策略说明)

  4. (可选)您可以向策略添加一个或多个标签,方法是选择 Add tag (添加标签),然后输入一个键和可选的值。将值留空,设置为空字符串;它并非 null。您最多可以向策略附加 50 个标签。有关标记的更多信息,请参阅为资源添加标签 AWS Organizations

  5. 您可以使用可视化编辑器构建策略,如此过程中所述。您也可以在 JSON 选项卡中输入或粘贴策略文本。有关备份策略语法的信息,请参阅备份策略语法和示例

    如果选择使用可视化编辑器,请选择适合您的场景的备份选项。备份计划由三部分组成。有关这些备份计划元素的更多信息,请参阅《AWS Backup 开发人员指南》中的创建备份计划分配资源

    1. Backup 计划一般详细信息

      • 备份文计划名称只能由字母数字、连字符和下划线字符组成。

      • 您必须从列表中至少选择一个备份计划区域。该计划只能备份选定资源中的资源 AWS 区域。

    2. 一个或多个指定 AWS Backup 的操作方式和时间的备份规则。每个备份规则定义以下项目:

      • 包含备份频率和可以进行备份的时间窗口的计划。

      • 要使用的备份文件库的名称。备份文件库名称只能由字母数字、连字符和下划线字符组成。备份文件库必须存在,才能成功运行计划。使用 AWS Backup 控制台或 AWS CLI 命令创建文件库。

      • (可选)一个或多个复制到区域规则,以同时将备份复制到其他 AWS 区域中的文件库。

      • 一个或多个标签键值对,要附加到每次运行此备份计划时创建的备份恢复点。

      • 生命周期选项,它们指定备份过渡到冷存储的时间以及备份到期时间。

      选择 Add rule (添加规则) 将您需要的每个规则添加到计划中。

      有关备份规则的更多信息,请参阅《AWS Backup 开发人员指南》中的备份规则

    3. 一种资源分配,它指定 AWS Backup 应使用此计划备份的资源。通过指定用于查找和匹配资源的标签对 AWS Backup 来进行分配

      • 资源分配名称只能由字母数字、连字符和下划线字符组成。

      • 为 AWS Backup 指定 IAM 角色,用于按其名称执行备份。

        在控制台中,您不能指定整个 Amazon Resource Name(ARN)。必须同时包含角色名称及其指定角色类型的前缀。前缀通常是 role 或者 service-role,且它们用正斜杠(“/”)与角色名称分隔。例如,您可以输入 role/MyRoleName 或者 service-role/MyManagedRoleName。当存储在底层 JSON 中时,这将转换为完整 ARN。

        重要

        指定的 IAM 角色必须已存在于应用策略的账户中。如果不存在,则备份计划可能会成功启动备份作业,但这些备份作业将失败。

      • 指定一个或多个资源标签键标签值对来确定要备份的资源。如果有多个标签值,请用逗号分隔它们。

      选择 Add assignment (添加分配),将每个已配置的资源分配添加到备份计划。

      有关更多信息,请参阅《AWS Backup 开发人员指南》中的将资源分配给备份计划

  6. 创建完策略后,选择 Create policy (创建策略)。该策略将显示在可用备份策略的列表中。

AWS CLI & AWS SDKs
创建备份策略

您可以使用以下方法之一创建备份策略:

  • AWS CLI:create-policy

    将备份计划创建为类似于以下内容的 JSON 文本,并将其存储在文本文件中。有关语法的完整规则,请参阅备份策略语法和示例

    { "plans": { "PII_Backup_Plan": { "regions": { "@@assign": [ "ap-northeast-2", "us-east-1", "eu-north-1" ] }, "rules": { "Hourly": { "schedule_expression": { "@@assign": "cron(0 5/1 ? * * *)" }, "start_backup_window_minutes": { "@@assign": "480" }, "complete_backup_window_minutes": { "@@assign": "10080" }, "lifecycle": { "move_to_cold_storage_after_days": { "@@assign": "180" }, "delete_after_days": { "@@assign": "270" } }, "target_backup_vault_name": { "@@assign": "FortKnox" }, "copy_actions": { "arn:aws:backup:us-east-1:$account:backup-vault:secondary-vault": { "lifecycle": { "move_to_cold_storage_after_days": { "@@assign": "10" }, "delete_after_days": { "@@assign": "100" } } } } } }, "selections": { "tags": { "datatype": { "iam_role_arn": { "@@assign": "arn:aws:iam::$account:role/MyIamRole" }, "tag_key": { "@@assign": "dataType" }, "tag_value": { "@@assign": [ "PII" ] } } } } } } }

    此备份计划规定, AWS Backup 应备份受影响 AWS 账户 区域中指定 AWS 区域 dataType且标签值为的所有资源PII

    接下来,导入 JSON 策略文件备份计划以在组织中创建新的备份策略。记下输出中策略 ARN 末尾的策略 ID。

    $ aws organizations create-policy \ --name "MyBackupPolicy" \ --type BACKUP_POLICY \ --description "My backup policy" \ --content file://policy.json{ "Policy": { "PolicySummary": { "Arn": "arn:aws:organizations::o-aa111bb222:policy/backup_policy/p-i9j8k7l6m5", "Description": "My backup policy", "Name": "MyBackupPolicy", "Type": "BACKUP_POLICY" } "Content": "...a condensed version of the JSON policy document you provided in the file...", } }
  • AWS SDKs: CreatePolicy

创建标签策略

最小权限

要创建标签策略,您需要运行以下操作的权限:

  • organizations:CreatePolicy

您可以通过以下两种 AWS Management Console 方式之一来创建标签策略:

  • 可视化编辑器,允许您选择选项并为您生成 JSON 策略文本。

  • 文本编辑器,允许您自己直接创建 JSON 策略文本。

可视化编辑器使过程变得简单,但会限制您的灵活性。这是创建您的第一批策略并使其习惯使用的好方法。了解策略的工作原理并开始受到可视化编辑器所提供功能的限制之后,您可以通过自己编辑 JSON 策略文本将高级功能添加到策略中。可视化编辑器仅使用 @@assign 值设置运算符,不提供对子控制运算符的任何访问权限。只有在手动编辑 JSON 策略文本时,才能添加子控制运算符。

AWS Management Console

您可以通过以下两种 AWS Management Console 方式之一来创建标签策略:

  • 可视化编辑器,允许您选择选项并为您生成 JSON 策略文本。

  • 文本编辑器,允许您自己直接创建 JSON 策略文本。

可视化编辑器使过程变得简单,但会限制您的灵活性。这是创建您的第一批策略并使其习惯使用的好方法。了解策略的工作原理并开始受到可视化编辑器所提供功能的限制之后,您可以通过自己编辑 JSON 策略文本将高级功能添加到策略中。可视化编辑器仅使用 @@assign 值设置运算符,不提供对子控制运算符的任何访问权限。只有在手动编辑 JSON 策略文本时,才能添加子控制运算符。

创建标签策略
  1. 登录 AWS Organizations 控制台。您必须以 IAM 用户的身份登录,担任 IAM 角色;或在组织的管理账户中以根用户的身份登录(不推荐)。

  2. Tag policies (标签策略) 页面上,选择 Create policy (创建策略)

  3. Create policy (创建策略) 页面上,输入策略的 Policy name (策略名称) 和可选 Policy description (策略说明)

  4. (可选)您可以向策略对象本身添加一个或多个标签。这些标签不是策略的一部分。为此,请选择 Add tag (添加标签),然后输入键和可选值。将值留空,设置为空字符串;它并非 null。您最多可以向策略附加 50 个标签。有关更多信息,请参阅 为资源添加标签 AWS Organizations

  5. 您可以使用可视化编辑器构建标签策略,如此过程中所述。您也可以在 JSON 选项卡中键入或粘贴标签策略。有关标签策略语法的信息,请参阅标签策略语法

    如果您选择使用可视化编辑器,请指定以下内容:

  6. 对于 New tag key (新标签键 1),指定要添加的标签键的名称。

  7. 对于合规性选项,您可以选择以下选项:

    1. 使用您在上面为标签键指定的大写 – 请务必清除此选项(默认设置),以指定继承的父级标签策略(如果存在)应定义标签键的大小写处理。

      如果要使用此策略规定标签键的特定大写,请启用此选项。如果选择此选项,则您为 Tag Key (标签键) 指定的大小写将覆盖继承的父策略中指定的大小写处理。

      如果父策略不存在且您没有启用此选项,则仅全小写字符的标签键将被视为符合要求。有关从父策略继承的更多信息,请参阅了解管理策略继承

      提示

      在创建定义标签键及其大小写处理的标签策略时,请考虑使用示例 1:定义组织级的标签键大小写中显示的示例标签策略作为指南。将其附加到组织根。稍后,您可以创建其他标签策略并将其附加到 OUs 或账户,以创建其他标记规则。

    2. 指定此标签键的允许值 – 如果要将此标签键的允许值添加到从父级策略继承的任何值,请启用此选项。

      默认情况下,将清除此选项,这意味着仅将从父策略定义和继承的这些值视为符合要求。如果父策略不存在并且您没有指定标签值,则任何值(包括没有值)都视为符合要求。

      要更新可接受的标签值列表,请选择 Specify allowed values for this tag key (为此标签键指定允许的值),然后选择 Specify values (指定值)。出现提示时,输入新值(每个框一个值)然后选择 Save changes (保存更改)

  8. 对于要强制执行的资源类型,您可以选择为此标签阻止不合规操作

    我们建议您务必清楚此选项(默认设置),除非您有丰富的使用标签策略的经验。请确保您已查看了解强制执行中的建议并测试技术。否则,您可能会阻止组织账户中的用户标记他们所需的资源。

    如果要强制实施此标签键的合规性,请选中该复选框,然后选择 Specify resource types (指定资源类型)。出现提示后,选择要包含在策略中的资源类型。然后选择 Save changes (保存更改)

    重要

    选择此选项后,只有在操作生成符合策略的标签时,操作指定类型资源的标签的任何操作才会成功。

  9. (可选)要向此标签策略添加另一个标签键,请选择 Add tag key (添加标签键)。然后执行步骤 6–9 来定义标签键。

  10. 完成标签策略构建后,选择 Save changes (保存更改)

AWS CLI & AWS SDKs
创建标签策略

您可以使用以下方法之一来创建标签策略:

  • AWS CLI:create-policy

    您可使用任何文本编辑器创建标签策略。使用 JSON 语法并将标签策略以任意名称和扩展名在您选择的位置另存为文件。标签策略最多可具有 2,500 个字符,包括空格。有关标签策略语法的信息,请参阅标签策略语法

    创建标签策略
    1. 在文本文件中创建类似于以下内容的标签策略:

      testpolicy.json 的内容:

      { "tags": { "CostCenter": { "tag_key": { "@@assign": "CostCenter" } } } }

      此标签策略定义 CostCenter 标签键。该标签可以接受任何值或不接受值。这样的策略意味着带有或不带值的 CostCenter 标签的资源都是合规的。

    2. 创建包含文件中策略内容的策略。为了便于阅读,输出中的额外空格已被截断。

      $ aws organizations create-policy \ --name "MyTestTagPolicy" \ --description "My Test policy" \ --content file://testpolicy.json \ --type TAG_POLICY { "Policy": { "PolicySummary": { "Id": "p-a1b2c3d4e5", "Arn": "arn:aws:organizations::123456789012:policy/o-aa111bb222/tag_policy/p-a1b2c3d4e5", "Name": "MyTestTagPolicy", "Description": "My Test policy", "Type": "TAG_POLICY", "AwsManaged": false }, "Content": "{\n\"tags\":{\n\"CostCenter\":{\n\"tag_key\":{\n\"@@assign\":\"CostCenter\"\n}\n}\n}\n}\n\n" } }
  • AWS SDKs: CreatePolicy

创建聊天机器人策略

最小权限

要创建聊天机器人策略,您需要有运行以下操作的权限:

  • organizations:CreatePolicy

AWS Management Console

您可以通过以下两种 AWS Management Console 方式之一创建聊天机器人政策:

  • 可视化编辑器,允许您选择选项并为您生成 JSON 策略文本。

  • 文本编辑器,允许您自己直接创建 JSON 策略文本。

可视化编辑器使过程变得简单,但会限制您的灵活性。这是创建您的第一批策略并使其习惯使用的好方法。了解策略的工作原理并开始受到可视化编辑器所提供功能的限制之后,您可以通过自己编辑 JSON 策略文本将高级功能添加到策略中。可视化编辑器仅使用 @@assign 值设置运算符,不提供对子控制运算符的任何访问权限。只有在手动编辑 JSON 策略文本时,才能添加子控制运算符。

创建聊天机器人策略
  1. 登录 AWS Organizations 控制台。您必须以 IAM 用户的身份登录,担任 IAM 角色;或在组织的管理账户中以根用户的身份登录(不推荐)。

  2. 聊天机器人策略页面上,选择创建策略

  3. 创建策略页面上,输入策略名称和可选的策略描述

  4. (可选)您可以向策略添加一个或多个标签,方法是选择 Add tag (添加标签),然后输入一个键和可选的值。将值留空,设置为空字符串;它并非 null。您最多可以向策略附加 50 个标签。有关更多信息,请参阅 为资源添加标签 AWS Organizations

  5. 您可以使用可视化编辑器构建策略,如此过程中所述。您也可以在 JSON 选项卡中输入或粘贴策略文本。有关聊天机器人策略语法的信息,请参阅聊天机器人策略语法和示例

    如果您选择使用可视化编辑器,请通过为聊天客户端指定访问控制来配置聊天机器人策略。

    1. 对于设置 Amazon Chime 聊天客户端访问权限,请选择以下选项之一

      • 拒绝 Chime 访问。

      • 允许 Chime 访问。

    2. 对于设置 Microsoft Teams 聊天客户端访问权限,请选择以下选项之一

      • 拒绝所有 Teams 访问

      • 允许所有 Teams 访问

      • 限定指定 Teams 访问

    3. 对于设置 Slack 聊天客户端访问权限,请选择以下选项之一

      • 拒绝访问所有 Slack 工作区

      • 允许访问所有 Slack 工作区

      • 限定指定 Slack 工作区访问

      注意

      此外,您可以选择 “仅限私有 Slack 频道 AWS Chatbot 使用”。

    4. 对于设置 IAM 权限类型,请选择以下选项

      • 启用频道级别 IAM 角色 – 所有频道成员共享在频道中运行任务的 IAM 角色权限。如果频道成员需要相同的权限,则适合使用频道角色。

      • 启用用户级别 IAM 角色 – 频道成员必须选择一个 IAM 用户角色才能执行操作(需要控制台访问权限才能选择角色)。如果频道成员需要不同的权限并且可以选择自己的用户角色,则适合使用用户角色。

  6. 创建完策略后,选择 Create policy (创建策略)。该策略将在聊天机器人备份策略列表中显示。

AWS CLI & AWS SDKs
创建聊天机器人策略

您可以使用以下方法之一来创建聊天机器人策略:

  • AWS CLI:create-policy

    您可使用任何文本编辑器创建聊天机器人策略。使用 JSON 语法,并将聊天机器人策略以任意名称和扩展名在您选择的位置另存为文件。聊天机器人策略最多可包含 ? 个字符,包括空格。有关标签策略语法的信息,请参阅聊天机器人策略语法和示例

    创建聊天机器人策略
    1. 在文本文件中创建类似于以下内容的聊天机器人策略:

      testpolicy.json 的内容:

      { "chatbot": { "platforms": { "slack": { "client": { "@@assign": "enabled" }, "workspaces": { "@@assign": [ "Slack-Workspace-Id" ] }, "default": { "supported_channel_types": { "@@assign": [ "private" ] } } }, "microsoft_teams": { "client": { "@@assign": "disabled" } } } } }

      此聊天机器人策略仅允许在特定工作区中使用私有 Slack 频道,禁用 Microsoft Teams,并支持所有角色设置

    2. 创建包含文件中策略内容的策略。为了便于阅读,输出中的额外空格已被截断。

      $ aws organizations create-policy \ --name "MyTestChatbotPolicy" \ --description "My Test policy" \ --content file://testpolicy.json \ --type CHATBOT_POLICY { "Policy": { "PolicySummary": { "Id": "p-a1b2c3d4e5", "Arn": "arn:aws:organizations::123456789012:policy/o-aa111bb222/chatbot_policy/p-a1b2c3d4e5", "Name": "MyTestChatbotPolicy", "Description": "My Test policy", "Type": "CHATBOT_POLICY", "AwsManaged": false }, "Content": "{"chatbot":{"platforms":{"slack":{"client":{"@@assign":"enabled"},"workspaces":{"@@assign":["Slack-Workspace-Id"]},"supported_channel_types":{"@@assign":["private"]}},"microsoft_teams":{"client":{"@@assign":"disabled"}}}}}" } }
  • AWS SDKs: CreatePolicy

创建 AI 服务选择退出策略

最小权限

要创建 AI 服务选择退出策略,您需要运行以下操作的权限:

  • organizations:CreatePolicy

AWS Management Console
创建 AI 服务选择退出策略
  1. 登录 AWS Organizations 控制台。您必须以 IAM 用户的身份登录,担任 IAM 角色;或在组织的管理账户中以根用户的身份登录(不推荐)。

  2. AI services opt-out policies (AI 服务选择退出策略) 页面上,选择 Create policy (创建策略)

  3. Create new AI services opt-out policy(创建新的 AI 服务选择退出策略)页面上,输入 Policy name(策略名称)和可选 Policy description(策略说明)。

  4. (可选)您可以向策略添加一个或多个标签,方法是选择 Add tag (添加标签),然后输入一个键和可选的值。将值留空,设置为空字符串;它并非 null。您最多可以向策略附加 50 个标签。有关更多信息,请参阅 为资源添加标签 AWS Organizations

  5. 输入策略文本或将其粘贴到 JSON 选项卡。有关 AI 服务选择退出策略语法的信息,请参阅AI 服务选择退出策略语法和示例。有关可用作起始点的策略的示例,请参阅AI 服务选择退出策略示例

  6. 编辑完策略后,选择位于页面右下角的 Create policy (创建策略)

AWS CLI & AWS SDKs
创建 AI 服务选择退出策略

您可以使用以下方法之一来创建标签策略:

  • AWS CLI:create-policy

    1. 创建如下所示的 AI 服务选择退出策略,并将其存储在文本文件中。请注意,“optOut”和“optIn”区分大小写。

      { "services": { "default": { "opt_out_policy": { "@@assign": "optOut" } }, "rekognition": { "opt_out_policy": { "@@assign": "optIn" } } } }

      此 AI 服务选择退出策略指定所有受策略影响的账户都选择退出除 Amazon Rekognition 之外的所有 AI 服务。

    2. 导入 JSON 策略文件以在组织中创建新的策略。在本示例中,上一个 JSON 文件名为 policy.json

      $ aws organizations create-policy \ --type AISERVICES_OPT_OUT_POLICY \ --name "MyTestPolicy" \ --description "My test policy" \ --content file://policy.json { "Policy": { "Content": "{\"services\":{\"default\":{\"opt_out_policy\":{\"@@assign\":\"optOut\"}},\"rekognition\":{\"opt_out_policy\":{\"@@assign\":\"optIn\"}}}}", "PolicySummary": { "Id": "p-i9j8k7l6m5" "Arn": "arn:aws:organizations::o-aa111bb222:policy/aiservices_opt_out_policy/p-i9j8k7l6m5", "Description": "My test policy", "Name": "MyTestPolicy", "Type": "AISERVICES_OPT_OUT_POLICY" } } }
  • AWS SDKs: CreatePolicy