サービスコントロールポリシーのアタッチとデタッチ - AWS Organizations

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

サービスコントロールポリシーのアタッチとデタッチ

組織の管理アカウントにサインインすると、前に作成したサービスコントロールポリシー (SCP) をアタッチできます。SCP は、組織ルート、組織単位 (OU)、または直接アカウントにアタッチすることができます。SCP を作成するには、次の手順を実行します。

最小アクセス許可

SCP をルート、OU、またはアカウントにアタッチするには、次のアクションを実行する権限が必要です。

  • 特定のポリシーの "*" または Amazon リソースネーム (ARN) を含む同じポリシーステートメントの Resource 要素を持つ organizations:AttachPolicy、およびポリシーをアタッチするルート、OU、またはアカウントの ARN。

SCP をアタッチするには、ポリシーをアタッチするルート、OU、またはアカウントに移動する必要があります。

ルート、OU、またはアカウントに移動して SCP をアタッチするには
  1. AWS Organizations コンソールにサインインします。組織の管理アカウントで、IAM ユーザーとしてサインインするか、IAM ロールを引き受けるか、ルートユーザーとしてサインインする推奨されません必要があります。

  2. AWS アカウント ページで、SCP をアタッチするルート、OU、またはアカウントの横にあるチェックボックスに移動してオンにします。場合によっては、目的の OU またはアカウントを表示するため、OU を展開 ( を選択) する必要があります。

  3. [Policies] (ポリシー) タブの [Service control policies] (サービスコントロールポリシー) で、[Attach] (アタッチ) を選択します。

  4. 目的のポリシーを見つけて [Attach policy] (ポリシーのアタッチ) を選択します。

    [Policies] (ポリシー) タブで、アタッチされている SCP のリストが更新され、新たに追加したものが表示されます。ポリシーの変更はすぐに有効になり、アタッチされたアカウントや、アタッチされたルートまたは OU の下のすべてのアカウントの IAM ユーザーとロールのアクセス許可に影響します。

ポリシーに移動して SCP をアタッチするには
  1. AWS Organizations コンソールにサインインします。組織の管理アカウントで、IAM ユーザーとしてサインインするか、IAM ロールを引き受けるか、ルートユーザーとしてサインインする推奨されません必要があります。

  2. サービスコントロールポリシーページで、アタッチするポリシーの名前を選択します。

  3. [Targets] (ターゲット) タブで [Attach] (アタッチ) を選択します。

  4. ポリシーをアタッチするルート、OU、またはアカウントの横にあるラジオボタンをクリックします。場合によっては、目的の OU またはアカウントを表示するため、OU を展開 ( を選択) する必要があります。

  5. Attach policy] (ポリシーのアタッチ) を選択します。

    [Targets] (ターゲット) タブで、アタッチされている SCP のリストが更新され、新たに追加したものが表示されます。ポリシーの変更はすぐに有効になり、アタッチされたアカウントや、アタッチされたルートまたは OU の下のすべてのアカウントの IAM ユーザーとロールのアクセス許可に影響します。

ルート、OU、またはアカウントに移動して SCP をアタッチするには

以下のコード例は、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 の詳細については、「 API リファレンスAttachPolicy」の「」を参照してください。 AWS SDK for .NET

CLI
AWS CLI

root、OU、またはアカウントにポリシーをアタッチするには

例 1

次の例は、サービスコントロールポリシーを 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 の詳細については、「 コマンドリファレンスAttachPolicy」の「」を参照してください。 AWS CLI

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 の詳細については、 AttachPolicy AWS SDK for Python (Boto3) API リファレンスの「」を参照してください。

ポリシーの変更はすぐに有効になり、アタッチされたアカウントや、アタッチされたルートまたは OU の下のすべてのアカウントの IAM ユーザーとロールのアクセス許可に影響します。

組織ルート、OU、またはアカウントからの SCP のデタッチ

組織の管理アカウントにサインインすると、アタッチされている組織ルート、OU、またはアカウントから SCP をデタッチすることができます。SCP をエンティティからデタッチすると、その SCP は、現在デタッチされたエンティティの影響を受けた IAM ユーザーと IAM ロールには適用されません。SCP をデタッチするには、次の手順を実行します。

注記

ルート、OU、またはアカウントから最後の SCP をデタッチすることはできません。すべてのルート、OU、アカウントには常に少なくとも 1 つの SCP がアタッチされている必要があります。

最小アクセス許可

ルート、OU、またはアカウントから SCP をデタッチするには、以下のアクションを実行するためのアクセス許可が必要です。

  • organizations:DetachPolicy

SCP をデタッチするには、ポリシーまたはそのポリシーをデタッチするルート、OU、アカウントに移動する必要があります。

SCP がアタッチされているルート、OU、またはアカウントに移動して SCP をデタッチするには
  1. AWS Organizations コンソールにサインインします。組織の管理アカウントで、IAM ユーザーとしてサインインするか、IAM ロールを引き受けるか、ルートユーザーとしてサインインする推奨されません必要があります。

  2. AWS アカウント ページで、ポリシーをデタッチするルート、OU、またはアカウントに移動します。場合によっては、目的の OU またはアカウントを表示するため、OU を展開 ( を選択) する必要があります。ルート、OU、またはアカウントの名前を選択します。

  3. [Policies] (ポリシー) タブで、デタッチする SCP の横にあるラジオボタンを選択して、[Detach] (デタッチ) を選択します。

  4. 確認ダイアログボックスで、[Detach policy] (ポリシーのデタッチ) を選択します。

    アタッチされている SCP のリストが更新されます。SCP のデタッチによるポリシーの変更はすぐに有効になります。例えば、SCP をデタッチすると、以前にアタッチされた 1 つ以上のアカウントの IAM ユーザーおよびロールのアクセス許可によって、以前にアタッチされた組織ルートまたは OU にすぐに影響します。

ポリシーに移動して SCP をデタッチするには
  1. AWS Organizations コンソールにサインインします。組織の管理アカウントで、IAM ユーザーとしてサインインするか、IAM ロールを引き受けるか、ルートユーザーとしてサインインする推奨されません必要があります。

  2. サービスコントロールポリシーページで、ルート、OU、またはアカウントからデタッチするポリシーの名前を選択します。

  3. [Targets] (ターゲット) タブで、ポリシーをデタッチするルート、OU、またはアカウントの横にあるラジオボタンをクリックします。場合によっては、目的の OU またはアカウントを表示するため、OU を展開 ( を選択) する必要があります。

  4. [Detach] (デタッチ) を選択します。

  5. 確認ダイアログボックスで、[Detach] (デタッチ) を選択します。

    アタッチされている SCP のリストが更新されます。SCP のデタッチによるポリシーの変更はすぐに有効になります。例えば、SCP をデタッチすると、以前にアタッチされた 1 つ以上のアカウントの IAM ユーザーおよびロールのアクセス許可によって、以前にアタッチされた組織ルートまたは OU にすぐに影響します。

ルート、OU、またはアカウントから SCP をデタッチするには

以下のコード例は、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 の詳細については、「 API リファレンスDetachPolicy」の「」を参照してください。 AWS SDK for .NET

CLI
AWS CLI

root、OU、またはアカウントからポリシーをデタッチするには

次のコード例は、OU からポリシーをデタッチする方法を示しています。

aws organizations detach-policy --target-id ou-examplerootid111-exampleouid111 --policy-id p-examplepolicyid111
  • API の詳細については、「 コマンドリファレンスDetachPolicy」の「」を参照してください。 AWS CLI

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 の詳細については、 DetachPolicy AWS SDK for Python (Boto3) API リファレンスの「」を参照してください。

ポリシーの変更はすぐに有効になり、アタッチされたアカウントや、アタッチされたルートまたは OU の下のすべてのアカウントの IAM ユーザーとロールのアクセス許可に影響します。