首页 > 解决方案 > 限制每个地区的角色假设

问题描述

我在 AWS 博客上阅读了一篇关于按区域限制权限的文章 - https://aws.amazon.com/blogs/security/easier-way-to-control-access-to-aws-regions-using- IAM政策/ .

我有以下设置 - 帐户 A 和帐户 B。

账户 A 在多个区域拥有一组 DynamoDB 全局表。账户 B 基本上在账户 A 中担任一个角色,以获取对这些 DynamoDB 表的访问权限。

为了进行基于区域的分离,我在 accountA 中有 IAM 角色,格式为 crossAccountTrustedRole-。流程是这样的,accountB 在 us-east-1 中操作时,它会承担名称为 crossAccountTrustedRole-us-east-1 的角色并访问数据。

现在在假设角色策略文档中,我将可信实体作为整个帐户本身。我不想专门陷入将其范围缩小为角色的痛苦。我想要安全,这样区域 us-west-2 中的 accountB 不能在 accountA 中担任名称 crossAccountTrustedRole-us-east-1 的角色。阅读那篇文章使我认为现在在技术上是可行的。我在想我可以编写一个 IAM 策略来限制假设角色 API 调用,以使请求的区域与传入请求的区域相同。

{
        "Effect": "Allow",
        "Action": [
            "sts:AssumeRole"
        ],
        "Resource": "*",
  "Condition": {"StringEquals": {"aws:RequestedRegion": "eu-central-1"}
}

这可能吗?或者以前有人试过吗?

标签: amazon-web-servicesamazon-iamaws-iam

解决方案


我在想我可以编写一个 IAM 策略来限制假设角色 API 调用,以使请求的区域与传入请求的区域相同。

不,您不能基于区域将 IAM 策略应用于用户/组 - IAM 用户没有区域。您可以将基于区域的 IAM 策略应用于资源。Lambda、S3、EC2 等资源。

区域条件的目的是防止或控制创建/管理资源的位置。您可以阻止用户在美国创建资源,阻止用户在欧洲删除资源等。


推荐阅读