すべてのポリシーを更新せずに、特定のリージョンへのアクセスをブロックするポリシーを適用するにはどうすればよいですか?

すべてのポリシーを更新せずに、特定のリージョンへのアクセスをブロックするポリシーを適用するにはどうすればよいですか?

ほぼすべての AWS リージョンへのすべてのユーザー アクセスをブロックしたいと考えています。デフォルトで有効になっているリージョンを「無効」にすることはできません。また、アカウント レベルの権限があり、リージョンごとに制限できないことも認識しています。

このようなポリシーをすべてのユーザー/ロール/グループに追加する必要はありません

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": [
                        "eu-west-1",
                        "eu-west-2",
                        "eu-west-3"
                    ]
                }
            }
        }
    ]
}

グループをネストすることはできません。したがって、このポリシーを持つ他のすべてのグループを配置するトップレベルのグループを持つことはできません。

グループに役割を追加することはできません。SAM テンプレートサーバーレス アプリの場合、このポリシーをすべてに追加する必要がありますか? アプリごとに一意のロールとポリシーが動的に作成されます (そのままにしておきたい)

アカウント内のすべてのユーザーとロールにポリシーを適用する方法はありますか? 管理が面倒に思えるので、何か見落としているに違いありません。

Active Directoryでは、OU/ドメイン/サイトなどのレベルでポリシーを簡単に適用できます。これは、セキュリティとアイデンティティプラットフォームの基本機能のように感じられます。

このポリシーを AWS 組織レベルで適用する方法はありますか?

答え1

サービス コントロール ポリシーは、まさにあなたが求めていることを実行します。リージョンをブロックできますが、一部のサービスはグローバルであるため、ホワイトリストに登録する必要があることに注意してください。たとえば、IAM、WAF、Route53、CloudFront、S3 の一部は、許可されたリージョン外で実行するためにホワイトリストに登録する必要があります。

AWS サービスコントロールポリシーの例ページこれはSCPの最も一般的な使用例であるため、最初の例として挙げています。このポリシーは、リストされている2つの領域以外の領域を拒否しますが、変更は簡単です。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyAllOutsideEU",
            "Effect": "Deny",
            "NotAction": [
                "a4b:*",
                "acm:*",
                "aws-marketplace-management:*",
                "aws-marketplace:*",
                "aws-portal:*",
                "awsbillingconsole:*",
                "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"
                    ]
                }
            }
        }
    ]
}

関連情報