我想禁用一个AWS账户中除一个区域之外的所有区域。我严格按照documentation中的说明进行操作。
按照这些说明将我引导至以下区域列表。
不幸的是,(尽管有香港)此列表中的所有区域似乎都无法以任何方式进行编辑。换句话说,我不能禁用任何这些区域。我的目标是拥有一个只能使用一个区域(us-west-2)的帐户。
我该如何完成?该文档似乎不正确或不完整。
注意:此AWS账户是组织的一部分,而不是组织的根账户。这可能是我的设置和文档之间存在差异的原因。
p.s .:我刚刚注意到文档中说“并非所有区域都可以禁用”。我以前认为这意味着“您不能禁用所有区域”,但我想这意味着有些区域无法禁用。
所以我想问题变成了,如何使用策略对所有服务和操作禁用一个区域以外的所有区域?该政策JSON是什么样的?我尝试过,但无法提出有效的政策。
答案 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"
}
}
}
]
}