繁体   English   中英

需要帮助拒绝没有特定标签的 S3 存储桶创建

[英]Need help to deny S3 bucket creation without specific Tags

我想创建一个 IAM 策略,只允许“测试”用户在创建时创建带有“名称”和“存储桶”标签的 S3 存储桶。 但是做不到。

我已经尝试过这个,但即使在指定的条件下,用户也无法创建存储桶。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Deny",
            "Action": "s3:CreateBucket",
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "aws:RequestTag/Name": "Bucket"
                }
            }
        }
    ]
}

提前致谢。

Amazon S3操作、资源和条件键 - 服务授权参考文档页面列出了可应用于CreateBucket命令的条件。

标签包括在此列表中。 因此,无法根据使用命令指定的标签来限制CreateBucket命令。

正如 John Rotenstein 指出的那样,这不可能(至少现在)明确否认这一点,但人们可以为此做一些选择,因为这种类型的标记策略在许多组织中都很常见。

合规报告

您可以使用AWS Config服务来检测不合规的 S3 存储桶资源。 您可以使用 Config rule 为 S3 存储桶定义标记策略

这不会阻止用户创建存储桶,但它会提供一种审核您的帐户并主动通知的方法。

自动修复

如果您希望自动删除或标记存储桶,您可以创建一个由 CloudTrail API在创建存储桶时触发的 lambda 函数。

可以实施 Lambda 来检查标签,如果存储桶不合规,则尝试删除存储桶或通过您定义的其他一些流程将其标记为删除。

@pop 我相信您不能使用 IAM 策略或 SCP 来执行此操作,因为按照设计,S3 创建标签 API 被配置为作为对 CreateBucket API 的后续调用触发。 因此,即使您添加了此标签,您的 IAM 策略也会阻止创建 S3 存储桶本身。 与其他 AWS 服务相比,这是为 S3 服务设计的。

在我看来,唯一的选择是部署后操作,即选择一个事件驱动模型,您可以在其中使用 S3 事件根据存储桶的创建方式采取行动(删除存储桶/添加访问阻止存储桶策略等)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM