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

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

我们在 eu-west-1 区域运行许多 AWS 服务。不幸的是,我们的许多开发人员和其他需要创建临时资源的员工似乎忘记了 AWS 的这一方面,在启动 EC2 实例、创建 S3 存储桶等之前没有选择此区域。因此,他们通常最终选择 us-east-1 区域,因为这似乎是 AWS 始终使用的默认区域。

有没有办法通过 IAM(或其他方式)限制用户帐户仅在特定区域内启动/创建事物?

答案1

不幸的是,您无法在全球范围内执行此操作。但是,对于支持它的每个 AWS 产品,您通常限制对某个区域的访问。

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

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

deny当然,你还需要在适当的情况下发布规则。

以下是上述内容的文件。

答案2

使用类似这样的方法。此示例限制对两个 AWS 区域的访问。根据需要进行修改。

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Deny",
    "Action": "*",
    "Resource": "*",
    "Condition": {
      "StringNotEquals": {
        "aws:RequestedRegion": [
          "eu-central-1",
          "eu-west-1"
        ]
      }
    }
  }]
}

答案3

自 2018 年 4 月 25 日起,AWS 拥有一个全局资源 aws:RequestedRegion,您可以使用它来限制用户可以发送请求的区域。这与服务是否为区域性无关,因此您可以将其应用于所有服务。

AWS 安全博客

不幸的是,您不能在组织的服务控制策略中使用它来将其应用于全局帐户,如果您想将帐户锁定到某些区域,您必须将该策略附加到每个主体并审核是否如此。

答案4

如果您仅请求 EC2 操作,那么是的,您可以像其他回复中提到的那样对其进行限制。如果是其他服务,我不确定您是否可以这样做...例如,AWS Lambda 似乎没有您lambda:region可以添加到条件中的选项。

相关内容