附加和分离标签策略 - AWS Organizations

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

附加和分离标签策略

您可以在整个组织以及组织单元 (OU) 和单独账户上使用标签策略。

  • 将标签策略附加到组织根 时,标签策略将应用于该根的所有成员 OU 和账户。

  • 当您将标签策略附加到某个 OU 时,该标签策略将应用到属于该 OU 的账户。这些账户还受附加到组织根的所有标签策略的约束。

  • 当您将标签策略附加到某个账户 时,该标签策略将应用到账户。此外,该账户受附加到组织根的任何标签策略的约束,并且 受附加到该账户所属 OU 的任何标签策略的约束。

账户继承的任何标签策略以及直接附加到账户的任何标签策略的聚合称为有效标签策略。有关更多信息,请参阅 了解管理策略继承

重要

未标记的资源不会在结果中显示为不合规。

最小权限

要附加标签策略,您必须具有运行以下操作的权限:

  • organizations:AttachPolicy

您可以导航到要附加策略的根、OU 或账户,为其附加标签策略。

通过导航到根、OU 或账户来附加标签策略
  1. 登录 AWS Organizations 控制台。您必须以 IAM 用户的身份登录,担任 IAM 角色;或在组织的管理账户中以根用户的身份登录(不推荐)。

  2. AWS 账户页面上,导航到要将策略附加到的根、OU 或账户的相应名称并选择其名称。您可能需要展开 OU(选择 )以查找所需的 OU 或账户。

  3. Policies (策略) 选项卡上的 Tag policies (标签策略) 中,选择 Attach (附加)

  4. 找到所需的策略,然后选择 Attach policy (附加策略)

    Policies (策略) 选项卡上的附加的标签策略列表会更新,以包含新添加的内容。策略更改会立即生效。

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

  2. Tag policies (标签策略) 页面上,选择要附加的策略的名称。

  3. Targets (目标) 选项卡上,选择 Attach (附加)

  4. 选择要附加策略的根、OU 或账户旁边的单选按钮。您可能需要展开 OU(选择 )以查找所需的 OU 或账户。

  5. 选择附加策略

    Targets (目标) 选项卡上的附加的标签策略列表会更新,以包含新添加的内容。策略更改会立即生效。

将标签策略附加到组织根目录、OU 或账户

以下代码示例演示如何使用 AttachPolicy

.NET
AWS SDK for .NET
注意

还有更多相关信息 GitHub。在 AWS 代码示例存储库中查找完整示例,了解如何进行设置和运行。

using System; using System.Threading.Tasks; using Amazon.Organizations; using Amazon.Organizations.Model; /// <summary> /// Shows how to attach an AWS Organizations policy to an organization, /// an organizational unit, or an account. /// </summary> public class AttachPolicy { /// <summary> /// Initializes the Organizations client object and then calls the /// AttachPolicyAsync method to attach the policy to the root /// organization. /// </summary> public static async Task Main() { IAmazonOrganizations client = new AmazonOrganizationsClient(); var policyId = "p-00000000"; var targetId = "r-0000"; var request = new AttachPolicyRequest { PolicyId = policyId, TargetId = targetId, }; var response = await client.AttachPolicyAsync(request); if (response.HttpStatusCode == System.Net.HttpStatusCode.OK) { Console.WriteLine($"Successfully attached Policy ID {policyId} to Target ID: {targetId}."); } else { Console.WriteLine("Was not successful in attaching the policy."); } } }
  • 有关 API 的详细信息,请参阅 AWS SDK for .NET API 参考AttachPolicy中的。

CLI
AWS CLI

将策略附加到根、OU 或账户

示例 1

以下示例演示如何将服务控制策略(SCP)附加到 OU:

aws organizations attach-policy --policy-id p-examplepolicyid111 --target-id ou-examplerootid111-exampleouid111

示例 2

以下示例演示如何将服务控制策略直接附加到账户:

aws organizations attach-policy --policy-id p-examplepolicyid111 --target-id 333333333333
  • 有关 API 的详细信息,请参阅AWS CLI 命令参考AttachPolicy中的。

Python
SDK for Python (Boto3)
注意

还有更多相关信息 GitHub。在 AWS 代码示例存储库中查找完整示例,了解如何进行设置和运行。

def attach_policy(policy_id, target_id, orgs_client): """ Attaches a policy to a target. The target is an organization root, account, or organizational unit. :param policy_id: The ID of the policy to attach. :param target_id: The ID of the resources to attach the policy to. :param orgs_client: The Boto3 Organizations client. """ try: orgs_client.attach_policy(PolicyId=policy_id, TargetId=target_id) logger.info("Attached policy %s to target %s.", policy_id, target_id) except ClientError: logger.exception( "Couldn't attach policy %s to target %s.", policy_id, target_id ) raise
  • 有关 API 的详细信息,请参阅适用AttachPolicyPython 的AWS SDK (Boto3) API 参考

政策变更立即生效

后续操作

附加标签策略后,您可以了解该您的资源与标签策略的合规程度如何。为此,请使用 Resource Groups 控制台。有关信息,请参阅《标记 AWS 资源用户指南》中的评估账户的合规性

分离标签策略

当您登录到组织的管理账户时,您可以从标签策略所附加到的组织根、OU 或账户分离标签策略。从某个实体分离标签策略后,该策略将不再应用于现在已与之分离的实体所影响的任何账户。要分离策略,请完成以下步骤。

最小权限

要从组织根、OU 或账户分离标签策略,您必须具有运行以下操作的权限:

  • organizations:DetachPolicy

您可以导航到要分离策略的根、OU 或账户,为其分离标签策略。

通过导航到已附加策略的根、OU 或账户来分离标签策略
  1. 登录 AWS Organizations 控制台。您必须以 IAM 用户的身份登录,担任 IAM 角色;或在组织的管理账户中以根用户的身份登录(不推荐)。

  2. AWS 账户页面导航到要分离策略的根、OU 或账户。您可能需要展开 OU(选择 )以查找所需的 OU 或账户。选择根、OU 或账户的名称。

  3. Policies (策略) 选项卡上,选择要分离的标签策略旁边的单选按钮,然后选择 Detach (分离)

  4. 在确认对话框中,选择 Detach policy (分离策略)

    附加的标签策略的列表将更新。策略更改会立即生效。

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

  2. Tag policies (标签策略) 页面上,选择要从根、OU 或账户分离的策略的名称。

  3. Targets (目标) 选项卡上,选择要分离策略的根、OU 或账户旁边的单选按钮。您可能需要展开 OU(选择 )以查找所需的 OU 或账户。

  4. 选择分离

  5. 在确认对话框中,选择 Detach (分离)

    附加的标签策略的列表将更新。策略更改会立即生效。

将标签策略与组织根目录、OU 或账户分离

以下代码示例演示如何使用 DetachPolicy

.NET
AWS SDK for .NET
注意

还有更多相关信息 GitHub。在 AWS 代码示例存储库中查找完整示例,了解如何进行设置和运行。

using System; using System.Threading.Tasks; using Amazon.Organizations; using Amazon.Organizations.Model; /// <summary> /// Shows how to detach a policy from an AWS Organizations organization, /// organizational unit, or account. /// </summary> public class DetachPolicy { /// <summary> /// Initializes the Organizations client object and uses it to call /// DetachPolicyAsync to detach the policy. /// </summary> public static async Task Main() { // Create the client object using the default account. IAmazonOrganizations client = new AmazonOrganizationsClient(); var policyId = "p-00000000"; var targetId = "r-0000"; var request = new DetachPolicyRequest { PolicyId = policyId, TargetId = targetId, }; var response = await client.DetachPolicyAsync(request); if (response.HttpStatusCode == System.Net.HttpStatusCode.OK) { Console.WriteLine($"Successfully detached policy with Policy Id: {policyId}."); } else { Console.WriteLine("Could not detach the policy."); } } }
  • 有关 API 的详细信息,请参阅 AWS SDK for .NET API 参考DetachPolicy中的。

CLI
AWS CLI

从根、OU 或账户分离策略

以下示例演示了如何从 OU 分离策略:

aws organizations detach-policy --target-id ou-examplerootid111-exampleouid111 --policy-id p-examplepolicyid111
  • 有关 API 的详细信息,请参阅AWS CLI 命令参考DetachPolicy中的。

Python
SDK for Python (Boto3)
注意

还有更多相关信息 GitHub。在 AWS 代码示例存储库中查找完整示例,了解如何进行设置和运行。

def detach_policy(policy_id, target_id, orgs_client): """ Detaches a policy from a target. :param policy_id: The ID of the policy to detach. :param target_id: The ID of the resource where the policy is currently attached. :param orgs_client: The Boto3 Organizations client. """ try: orgs_client.detach_policy(PolicyId=policy_id, TargetId=target_id) logger.info("Detached policy %s from target %s.", policy_id, target_id) except ClientError: logger.exception( "Couldn't detach policy %s from target %s.", policy_id, target_id ) raise
  • 有关 API 的详细信息,请参阅适用DetachPolicyPython 的AWS SDK (Boto3) API 参考

策略更改会立即生效。