【发布时间】:2020-11-22 21:12:50
【问题描述】:
以下似乎是拒绝语句的无效主体:
"Principal" : {
"AWS" : [
"arn:aws:iam::123412341234:*"
]
}
假设 123412341234 是我们的帐户 ID。
如何设置?下面似乎可行,但意味着必须明确列出来自外部帐户的所有相关 arn:
"NotPrincipal" : {
"AWS" : [
"arn:aws:iam::111112341234:role/blar1",
"arn:aws:iam::111112341234:role/blar2",
"arn:aws:iam::111112341234:root",
"arn:aws:iam::555552341234:role/blar3",
"arn:aws:iam::555552341234:root",
]
}
事实上,根据https://aws.amazon.com/blogs/security/how-to-restrict-amazon-s3-bucket-access-to-a-specific-iam-role/,这甚至行不通,因为我必须包含无法提前知道的assumed-role arns。
https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notprincipal.html
【问题讨论】:
-
您的实际用例是什么?您是否授予任何人 的公共访问权限,但又想排除特定帐户(例如测试或生产帐户)?首先如何授予他们访问权限,从而需要拒绝?
-
我们希望默认拒绝所有,但我们不想拒绝需要访问我们的 s3 存储桶的外部帐户。如果没有明确的查找许可,我们无法知道他们的 ARN(或 aws:userIds),因此 AWS 文档似乎暗示这是不可能的。就像我只需要询问外部帐户,让我知道他们需要访问我们的 s3 存储桶的角色的 AROA 样式 aws:userIds。
-
所以您想允许任何人的帐户访问存储桶(使其成为公共存储桶),但您不希望自己的帐户能够访问它?我很困惑。
-
我们不想允许外部帐户访问存储桶,而是希望从显式拒绝中排除外部帐户。这不是一回事。
-
为什么有
Deny?您是否授予人们访问“所有存储桶”的权限,但您希望此存储桶成为例外?它是一个高度敏感的桶吗?您是否可以一开始就不授予允许访问权限,从而消除对拒绝的需要?请提供更多信息!
标签: amazon-web-services amazon-s3 amazon-iam aws-policies