S3 存储桶和对象访问

Posted

技术标签:

【中文标题】S3 存储桶和对象访问【英文标题】:S3 bucket and object access 【发布时间】:2020-01-14 16:46:52 【问题描述】:

根据我的理解,在不授予访问权限的情况下,任何 IAM 用户都无法访问 S3 存储桶/对象。但在我的用例中,我可以访问它。

我是否误解了 S3 中的安全策略。 这是我的用例,我在 AWS 中有根帐户,比如根用户。这个用户创建了两个 IAM 用户,比如 AdminTest 用户。并且根用户向两个 IAM 用户授予了 S3FullAccess 权限。

现在我以管理员身份登录并创建了一个存储桶(比如 Test)。并启用“阻止所有公共访问”

现在,即使启用了“阻止所有公共访问”,我仍然可以使用另一个 IAM 用户访问测试存储桶。 理想情况下它不应该是正确的。测试用户在访问测试存储桶时应该获得拒绝访问权限。 我是否遗漏了什么,任何帮助将不胜感激

谢谢 AWS 学习者

【问题讨论】:

【参考方案1】:

对存储桶的“阻止所有公共访问”是指您的组织外部,而不是 IAM 用户。

换句话说,如果您的存储桶可供公众访问,那么有权访问对象 S3 URL 的任何人都可以直接访问该对象。

您可以使用存储桶策略来限制对存储桶的访问,但在 IAM 中从测试用户中删除 S3FullAdminAccess 会更有意义。

【讨论】:

【参考方案2】:

根用户向两个 IAM 用户授予了 S3FullAccess 权限

这就是您的两个用户都能够看到存储桶的原因,因为他们与用户一起附加了以下策略:


    "Version": "2012-10-17",
    "Statement": [
        
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": "*"
        
    ]

您从用户那里删除此政策,您会看到以下错误:

【讨论】:

嗨 Pacifist_AWS,如果我将 S3FullAccess 删除到测试用户,那么我可以看到“拒绝访问”错误。但是有没有其他方法可以限制测试用户在不删除“S3FullAccess”的情况下不访问其他用户存储桶 @BabuGali 您如何删除 S3FullAccess 并使用存储桶策略明确提供对存储桶的访问权限。

以上是关于S3 存储桶和对象访问的主要内容,如果未能解决你的问题,请参考以下文章

使用 Amazon S3 阻止公有访问

Amazon S3 存储桶策略只允许访问特定的 http

如何在 aws s3 存储桶和云端执行从非 www 到 www 的 301 重定向

terraform 参考现有的 s3 存储桶和发电机表

使用 1 个 S3 存储桶和 1 个 CloudFront 托管多个 Angular 应用程序

AWS Firehose中间S3存储桶和传输流依赖关系出现问题