是否可以将AWS用户/账户限制在特定区域?

我们在欧盟西部地区运行了许多AWS服务。 不幸的是,我们很多开发人员和其他需要创build临时资源的员工忘记了AWS的这个方面,在启动EC2实例,创buildS3存储桶之前不要select这个区域。结果,他们经常最终美国东部1区域,因为这似乎是AWS总是使用的默认设置。

有没有办法通过IAM(或其他方式)限制用户帐户只在特定区域内启动/创build东西?

不幸的是,你不能在全球做这个。 但是,对于支持它的每个AWS产品,通常可以限制对某个特定区域的访问。

例如,对于EC2,您可以执行以下操作:

{ "Statement":[{ "Effect":"allow", "Action":"RunInstances", "Resource":"*", "Condition":{ "StringEquals":{ "ec2:Region":"us-west-1" } } } ] } 

当然,你也需要在适当的时候发布deny规则。

这是上面的文档。

这个线程接受的答案给了Syntax Error on Policy 。 下面为我​​工作:

 { "Statement": [ { "Sid": "Stmt1375943389569", "Action": "ec2:*", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "ec2:Region": "eu-central-1" } } } ] 

}

如果您只要求EC2行动,那么是的,您可以像其他回复中提到的那样限制它。 如果是其他服务,我不确定你可以做到这一点…例如,AWS Lambda似乎没有可以添加到条件的lambda:region

从AWS IAM FAQ :

问:用户可以在地区定义吗? 最初不是。 用户是全球实体,就像今天的AWS账户一样。 定义用户权限时不需要指定地区。 用户可以在任何地理区域使用AWS服务。