amazon-web-services - 限制每个地区的角色假设
问题描述
我在 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"}
}
这可能吗?或者以前有人试过吗?
解决方案
我在想我可以编写一个 IAM 策略来限制假设角色 API 调用,以使请求的区域与传入请求的区域相同。
不,您不能基于区域将 IAM 策略应用于用户/组 - IAM 用户没有区域。您可以将基于区域的 IAM 策略应用于资源。Lambda、S3、EC2 等资源。
区域条件的目的是防止或控制创建/管理资源的位置。您可以阻止用户在美国创建资源,阻止用户在欧洲删除资源等。