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

Bru*_*e P 26 amazon-web-services amazon-iam

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

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

EEA*_*EAA 25

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

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

{
  "Statement":[{
    "Effect":"allow",
    "Action":"RunInstances",
    "Resource":"*",
    "Condition":{
      "StringEquals":{
        "ec2:Region":"us-west-1"
        }
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

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

这是上述内容的文档。

  • 而不是 `"Condition": { "condition": {} }` 它应该声明 `"Condition": { "StringEquals": {} }` (5认同)

san*_*rom 13

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

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Deny",
    "Action": "*",
    "Resource": "*",
    "Condition": {
      "StringNotEquals": {
        "aws:RequestedRegion": [
          "eu-central-1",
          "eu-west-1"
        ]
      }
    }
  }]
}
Run Code Online (Sandbox Code Playgroud)

  • 有了新的 `aws:RequestedRegion`,这是现在最相关的答案 (3认同)
  • 谢谢,通过此策略,您可以使用默认的 AWS 可用策略,并且仅内联附加此策略,并且可以有效地限制任何服务。 (2认同)

小智 9

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

AWS 安全博客

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