无法限制我账户中的AWS区域

时间:2019-05-25 15:52:09

标签: amazon-web-services

我想禁用一个AWS账户中除一个区域之外的所有区域。我严格按照documentation中的说明进行操作。

Disable Region Instructions

按照这些说明将我引导至以下区域列表。

Region List is not Editable

不幸的是,(尽管有香港)此列表中的所有区域似乎都无法以任何方式进行编辑。换句话说,我不能禁用任何这些区域。我的目标是拥有一个只能使用一个区域(us-west-2)的帐户。

我该如何完成?该文档似乎不正确或不完整。

注意:此AWS账户是组织的一部分,而不是组织的根账户。这可能是我的设置和文档之间存在差异的原因。

p.s .:我刚刚注意到文档中说“并非所有区域都可以禁用”。我以前认为这意味着“您不能禁用所有区域”,但我想这意味着有些区域无法禁用。

所以我想问题变成了,如何使用策略对所有服务和操作禁用一个区域以外的所有区域?该政策JSON是什么样的?我尝试过,但无法提出有效的政策。

3 个答案:

答案 0 :(得分:1)

此时只能启用/禁用新区域(于2019年3月或更晚推出)。

总是可以通过设置策略条件来限制区域,例如:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "ec2:*",
            "Resource": "*",
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "ec2:Region": "eu-central-1"
                }
            }
        }
    ]
}

如果仅限制一项服务,则效果很好,但由于我们指定的条件(ec2:Region仅对EC2动作有效,因此如果要限制许多服务,这是一个痛苦的事情。

从去年开始,就有一种使用aws:RequestedRegion来控制许多服务的访问的新方法。这是AWS文档中的示例,将某些EC2,RDS和Lambda操作限制在一个特定区域:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances",
                "rds:CreateDBInstance",
                "rds:CreateDBCluster",
                "lambda:CreateFunction",
                "lambda:InvokeFunction"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": "eu-central-1"
                }
            }
        }
    ]
}

有关完整的策略示例,请参见AWS Security Blog

答案 1 :(得分:1)

这是正式的完整答案。根据您的需求调整区域列表。

{
    "Version": "2012-10-17",
    "Statement": [{
        "Sid": "DenyAllOutsideRegion",
        "Effect": "Deny",
        "NotAction": [
            "aws-portal:*",
            "iam:*",
            "organizations:*",
            "support:*",
            "route53:*",
               "budgets:*",
               "waf:*",
               "cloudfront:*",
               "globalaccelerator:*",
               "importexport:*",
            "sts:*"
        ],
        "Resource": "*",
        "Condition": {"StringNotEquals": {"aws:RequestedRegion": [
            "us-east-1",
            "us-west-2"
        ]}}
    }]
}

答案 2 :(得分:0)

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyAllRegionsOutsideN.California",
            "Effect": "Deny",
            "NotAction": "iam:*",
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "aws:RequestedRegion": "us-west-1"
                }
            }
        }
    ]
}