一般的な例 - AWS Organizations

一般的な例

リクエストされた AWS リージョン に基づいて AWS へのアクセスを拒否する

トピック

    この SCP は、指定されたリージョン外でのオペレーションへのアクセスを拒否します。eu-central-1eu-west-1 を、使用する AWS リージョン に置き換えます。これにより、承認されたグローバルサービスでオペレーションが除外されます。この例では、指定した 2 つの管理者ロールのいずれかによるリクエストを除外する方法についても説明します。

    重要

    組織で AWS Control Tower を使用する場合は、このポリシーの例を使用することはお勧めしません。AWS Control Tower は、このポリシー例と互換性のない形で AWS リージョン 間で動作します。

    このポリシーは、Deny 効果を使用して、承認された 2 つのリージョン (eu-central-1 および eu-west-1) のいずれかをターゲットとしないオペレーションに対するリクエストへのアクセスを拒否します。NotAction 要素を使用すると、すべてのオペレーション (または個別のオペレーション) がこの制限から除外されるサービスのリストを指定できます。グローバルサービスには us-east-1 リージョンによって物理的にホストされるエンドポイントがあるため、この方法で除外する必要があります。このように構成された SCP では、リクエストされたサービスが us-east-1 要素に含まれている場合、NotAction リージョン内のグローバルサービスに対するリクエストが許可されます。us-east-1 リージョン内のサービスに対するその他のリクエストは、このポリシー例によって拒否されます。

    注記

    この例には、グローバルな最新の AWS のサービスまたはオペレーションのすべてが含まれているわけではありません。サービスとオペレーションのリストを、組織内のアカウントによって使用されるグローバルサービスで置換えてください。

    ヒント

    IAM コンソールでサービスの最終アクセスデータを表示すると、組織が使用しているグローバルサービスを確認できます。IAM ユーザー、グループ、またはロールの詳細ページの [Access Advisor] (アクセスアドバイザー) タブには、そのエンティティによって使用された AWS のサービスが最新のアクセス順に表示されます。

    考慮事項
    • AWS KMS および AWS Certificate Manager は、リージョンエンドポイントをサポートします。ただし、Amazon CloudFront などのグローバルサービスでそれらを使用する場合は、次の SCP の例のグローバルサービス除外リストに含める必要があります。Amazon CloudFront のようなグローバルサービスでは、通常、同じリージョンの AWS KMS へのアクセスと ACM を必要とします。グローバルサービスの場合は、米国東部 (バージニア北部) (us-east-1) リージョンです。

    • デフォルトでは、AWS STS はグローバルサービスであり、グローバルサービス除外リストに含める必要があります。ただし、AWS STS を有効にして、単一のグローバルエンドポイントの代わりにリージョンのエンドポイントを使用することができます。これを行うと、次の SCP の例にあるグローバルサービスの免除リストから STS を削除できます。詳細については、「AWS リージョン での AWS STS の管理」を参照してください。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllOutsideEU", "Effect": "Deny", "NotAction": [ "a4b:*", "acm:*", "aws-marketplace-management:*", "aws-marketplace:*", "aws-portal:*", "budgets:*", "ce:*", "chime:*", "cloudfront:*", "config:*", "cur:*", "directconnect:*", "ec2:DescribeRegions", "ec2:DescribeTransitGateways", "ec2:DescribeVpnGateways", "fms:*", "globalaccelerator:*", "health:*", "iam:*", "importexport:*", "kms:*", "mobileanalytics:*", "networkmanager:*", "organizations:*", "pricing:*", "route53:*", "route53domains:*", "s3:GetAccountPublic*", "s3:ListAllMyBuckets", "s3:PutAccountPublic*", "shield:*", "sts:*", "support:*", "trustedadvisor:*", "waf-regional:*", "waf:*", "wafv2:*", "wellarchitected:*" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": [ "eu-central-1", "eu-west-1" ] }, "ArnNotLike": { "aws:PrincipalARN": [ "arn:aws:iam::*:role/Role1AllowedToBypassThisSCP", "arn:aws:iam::*:role/Role2AllowedToBypassThisSCP" ] } } } ] }

    IAM ユーザーとロールによる特定の変更を禁止する

    この SCP は、IAM ユーザーとロールが、組織内のすべてのアカウントで作成した特定の IAM ロールに変更を加えることを制限します。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessToASpecificRole", "Effect": "Deny", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePermissionsBoundary", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription" ], "Resource": [ "arn:aws:iam::*:role/name-of-role-to-deny" ] } ] }

    指定された管理者ロール以外の IAM ユーザーとロールが特定の変更を行うことを禁止する

    この SCP は、前述の例において、管理者の例外を追加します。これにより、影響を受けるアカウントの IAM ユーザーやロールが、指定されたロールを使用する、組織内の管理者以外のすべてのアカウントで作成された共通の管理用 IAM ロールに変更を加えられないようにします。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessWithException", "Effect": "Deny", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePermissionsBoundary", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription" ], "Resource": [ "arn:aws:iam::*:role/name-of-role-to-deny" ], "Condition": { "StringNotLike": { "aws:PrincipalARN":"arn:aws:iam::*:role/name-of-admin-role-to-allow" } } } ] }

    API アクションの実行に MFA を要求する

    以下のような SCP を使用して、IAM ユーザーまたはロールがアクションを実行する前に多要素認証 (MFA) を要求するようにします。この例では、アクションは Amazon EC2 インスタンスを停止することです。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyStopAndTerminateWhenMFAIsNotPresent", "Effect": "Deny", "Action": [ "ec2:StopInstances", "ec2:TerminateInstances" ], "Resource": "*", "Condition": {"BoolIfExists": {"aws:MultiFactorAuthPresent": false}} } ] }

    ルートユーザーによるサービスへのアクセスをブロックする

    以下のポリシーでは、メンバーアカウントのルートユーザーに対して、指定したアクションへのすべてのアクセスを制限します。アカウントで特定の方法のルート認証情報を使用できないようにするには、このポリシーに独自のアクションを追加します。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictEC2ForRoot", "Effect": "Deny", "Action": [ "ec2:*" ], "Resource": [ "*" ], "Condition": { "StringLike": { "aws:PrincipalArn": [ "arn:aws:iam::*:root" ] } } } ] }

    メンバーアカウントが組織を離れるのを禁止する

    次のポリシーでは、LeaveOrganization API オペレーションを使用して、メンバーアカウントの管理者が組織からアカウントを削除できないようにします。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "organizations:LeaveOrganization" ], "Resource": "*" } ] }