我在AWS博客上读到一篇关于按地区限制权限的文章-https://aws.amazon.com/blogs/security/easier-way-to-control-access-to-aws-regions-using-iam-policies/.
我有以下设置-账户A和账户B。
帐户A在多个区域中具有DynamoDB全局表的集合。帐户B基本上在帐户a中扮演一个角色,以访问这些DynamoDB表。
为了进行基于区域的分离,我在accountA中使用了格式为crossAccountTrustedRole-的IAM角色。流是这样的,accountB在us-east-1中操作时,它承担名称为crossAccountTrustedRole-us-east-1的角色并访问数据。
现在,在assumeRole策略文档中,我将受信任的实体作为整个帐户本身。我不想具体地把它归结为一个角色。我想要安全性,这样区域us-west-2中的accountB就不能在accountA中扮演名称crossAccountTrustedRole-us-east-1的角色。读了那篇文章,我觉得现在做这件事在技术上是可行的。我想我可以编写一个IAM策略,该策略限制assumeRole API调用使请求的区域与传入请求的区域相同。
{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": "*",
"Condition": {"StringEquals": {"aws:RequestedRegion": "eu-central-1"}
}
这可能吗?或者之前有人尝试过吗?
我想我可以写一个IAM策略来限制assumeRole API调用使请求的区域为同一区域作为传入请求。
否,不能根据地区将IAM策略应用于用户/组-IAM用户没有地区。您可以根据地区将IAM策略应用于资源。Lambda、S3、EC2等资源
区域条件的目的是防止或控制资源的创建/管理位置。你可以阻止用户在美国创建资源,阻止用户删除欧洲的资源,等等。