amazon-web-services - 基于标签保护AWS资源

标签 amazon-web-services amazon-iam

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

下面是我正在使用的 IAM 策略的示例片段。

这似乎不起作用!

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

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

您能否帮助我构建一个条件,帮助我仅基于标签来保护资源。或者,如果构建条件需要的话,我可以提供值。

谢谢。

最佳答案

对于 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

关于amazon-web-services - 基于标签保护AWS资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66491389/

相关文章:

amazon-web-services - terraform 计划 'string required' dynamodb_table_item

amazon-web-services - Lambda 的最终角色定义中的可信实体是什么?

amazon-web-services - 我可以安排Docker在特定时间在Amazon ECS上运行吗?

python - Boto3 ec2 describe_instances 始终返回空

amazon-web-services - 仅授予对 Amazon 别名 key 的访问权限的 IAM 策略

java - 如何在具有 IAM 角色的 ec2 实例上使用 java 在没有访问凭证的情况下访问 dynamodb

amazon-web-services - 限制对 ECR 中命名空间的访问

swift - AWS S3 传输管理器 ${cognito-identity.amazonaws.com :sub} Policy Variable Access Denied

amazon-web-services - 亚马逊托管无法安装.Ca-bundle

amazon-web-services - 如何在 AWS CodeBuild 中运行我的 jenkins 管道代码?