如何在不更新所有策略的情况下强制执行策略以阻止对特定区域的访问?

如何在不更新所有策略的情况下强制执行策略以阻止对特定区域的访问?

我想阻止所有用户访问几乎所有 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 最常见的用例。此策略拒绝列出的两个区域之外的区域,很容易更改

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

相关内容