【问题标题】:Protecting AWS resources based on Tags基于标签保护 AWS 资源
【发布时间】:2021-03-05 19:56:48
【问题描述】:

我正在尝试通过标签(无值)保护我的 AWS 资源

以下是我正在使用的 IAM 策略的示例 sn-p。

这似乎不起作用!

        {
            "Action": [
                "s3:DeleteObject"
            ],
            "Resource": "*",
            "Effect": "Deny",
            "Sid": "ProtectResource",
            "Condition": {
                "StringEquals": {
                    "aws:TagKeys": "ProtectionTag"
                }
            }
        }

如果我将“StringEquals”更改为“ForAllValues:StringEquals”,那么它可以工作,但即使删除标签,保护仍然存在。

你能帮我构建一个条件,帮助我仅基于标签保护资源吗? (可选)如果构造条件需要提供值,我可以提供值。

谢谢。

【问题讨论】:

  • 这样的事情? "条件": { "StringEquals": {"s3:ExistingObjectTag/tag key": "你的标签值" } stackoverflow.com/a/60273667/13126651
  • 嗨,谢谢。我可以确认那没有用。在您共享的线程上查看我的 cmets。

标签: amazon-web-services amazon-iam


【解决方案1】:

对于aws:TagKeysaws:RequestTagaws: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

【讨论】:

  • 这有帮助。我最初试图在 ec2 资源上执行此操作并将其转换为 s3 示例。 ec2:ResourceTag 符合您正确指出的目的。谢谢。
【解决方案2】:

很遗憾,你不能这样做。 DeleteObject 不支持任何基于标签的条件。支持的条件键在屏幕截图中:

一些变通方法是在存储桶中启用版本控制,或者如果整个存储桶都很关键,您可以使用MFA delete 保护。

【讨论】:

    猜你喜欢
    • 2020-05-03
    • 2021-12-21
    • 1970-01-01
    • 2019-02-22
    • 2021-02-15
    • 1970-01-01
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多