我正在尝试通过标签(无值)保护我的 AWS 资源
下面是我正在使用的 IAM 策略的示例片段。
这似乎不起作用!
{
"Action": [
"s3:DeleteObject"
],
"Resource": "*",
"Effect": "Deny",
"Sid": "ProtectResource",
"Condition": {
"StringEquals": {
"aws:TagKeys": "ProtectionTag"
}
}
}
如果我将“StringEquals”更改为“ForAllValues:StringEquals”,那么它可以工作,但即使删除标签,保护仍然存在。
您能否帮助我构建一个条件,帮助我仅基于标签来保护资源。或者,如果构建条件需要的话,我可以提供值。
谢谢。
最佳答案
对于 aws:TagKeys
、aws:RequestTag
和 aws:ResourceTag
之间的差异,经常存在误解/错误观念。应用以及它们应用的什么目的。
aws:TagKeys
(仅限标签名称)和 aws:RequestTag
(标签名称/值对)用于控制对请求中携带标签的 API 操作的访问本身,例如修改资源上的标签,以便指定哪些标签(在请求本身中)可以与此类 API 操作一起使用。
另一方面,aws:ResourceTag
用于根据资源本身上已存在的标签来授权 API 操作。因此,如果您想要指定具有权限的策略,并且该权限应仅适用于具有特定标签的资源,则使用 aws:ResourceTag
作为条件。
话虽如此,特定操作 s3:DeleteObject
目前不支持基于资源的标记条件。因此,即使您可以标记 S3 对象,您目前也无法根据这些资源标记授权 API 操作。
类似答案:Deny DeleteObject with a specific tag value in S3 bucket
关于amazon-web-services - 基于标签保护AWS资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66491389/