¿Cómo hago cumplir una política para bloquear el acceso a regiones específicas sin actualizar todas mis políticas?

¿Cómo hago cumplir una política para bloquear el acceso a regiones específicas sin actualizar todas mis políticas?

Quiero bloquear el acceso de todos los usuarios a casi todas las regiones de AWS. No se puede "deshabilitar" una región que está habilitada de forma predeterminada. También conozco los permisos que son a nivel de cuenta y no se pueden restringir regionalmente.

No quiero tener que agregar una política como esta a cada usuario/rol/grupo

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

No puedes anidar grupos. Entonces no puedo tener un grupo de nivel superior en el que puse todos los demás grupos que tengan esta política.

No puedes agregar roles a grupos. entonces para miplantillas SAMPara mis aplicaciones sin servidor, ¿tengo que agregar esta política a todas ellas? Crean dinámicamente una función y una política únicas para cada aplicación (y quiero que siga siendo así)

¿Existe alguna forma de hacer cumplir una política para todos los usuarios y roles de una cuenta? Debo estar perdiendo algo porque esto parece una tarea difícil de manejar.

En Active Directory podríamos aplicar fácilmente políticas a nivel de unidad organizativa/dominio/sitio/etc. Parece una característica básica de una plataforma de seguridad e identidad.

¿Existe alguna forma de aplicar esta política a nivel de mi organización de AWS?

Respuesta1

Las políticas de control de servicios hacen exactamente lo que usted solicitó. Puede bloquear regiones, pero tenga cuidado: algunos servicios son globales, por lo que deben incluirse en la lista blanca. Por ejemplo, IAM, WAF, Route53, CloudFront, algunas partes de S3 deben incluirse en la lista blanca para ejecutarse fuera de las regiones permitidas.

ElPágina de ejemplo de política de control de servicios de AWStiene este como el primer ejemplo, ya que es el caso de uso más común para los SCP. Esta política niega regiones fuera de las dos enumeradas; es fácil de cambiar.

{
    "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"
                    ]
                }
            }
        }
    ]
}

información relacionada