amazon-s3 - 如何将 amazon S3 存储桶策略设置为除管理员之外的所有人私有(private)?

标签 amazon-s3

我有一个存储桶,其中我不小心将数千个带有 ACL 的文件上传到了 :public_read 我希望除生成的访问 URL 之外的所有文件均不可用。

我尝试创建一个存储桶策略,拒绝所有人的所有操作,并允许我的所有操作。

它不起作用,即使生成了访问 URL,所有文件也被禁止:

http://s3.amazonaws.com/myBucket/myFile.pdf?AWSAccessKeyId=AKIAIZB2XTOJ6KYB5SCA&Expires=1331137308&Signature=zRfPOj4XFBrXhyqDZ5DpwJqsWs0%3D

{
    "Version": "2008-10-17",
    "Id": "Policy1331136935471",
    "Statement": [
        {
            "Sid": "Stmt1331136294179",
            "Effect": "Deny",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::myBucket/*"
        },
        {
            "Sid": "Stmt1331136364169",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::6527...3775:root"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::myBucket/*"
        }
    ]
}

更新:
我在文档中找到了对默认拒绝的引用,但 AWS 策略生成器只有 2 个值“允许”和“拒绝”有人知道默认拒绝的语法吗?

感谢您的帮助

最佳答案

这是由相应的 Evaluation Logic 引起的The Access Policy Language的与 Bucket Policies 一起使用:

The goal at evaluation time is to decide whether a given request should be allowed or denied. The evaluation logic follows several basic rules:

  • By default, all requests to use your resource coming from anyone but you are denied

  • An allow overrides any default denies

  • An explicit deny overrides any allows

  • The order in which the policies are evaluated is not important

[emphasis mine]

该页面还提供了一个具有指导性的流程图和讨论,[其中]更详细地描述了如何做出决策

因此,您的拒绝“*”会覆盖您的允许“arn:aws:iam::6527...3775:root”。如上面链接的流程图所示,您可以通过删除显式拒绝以支持默认拒绝来解决此问题(请注意 Using ACLs and Bucket Policies Together 时的潜在微妙之处,但这似乎不适用于您的用例)。

关于amazon-s3 - 如何将 amazon S3 存储桶策略设置为除管理员之外的所有人私有(private)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9605455/

相关文章:

scala - 在 EMR 中使用 Spark Scala 获取 S3 对象大小(文件夹、文件)

amazon-s3 - 亚马逊S3 : custom error pages

amazon-s3 - 如何在不删除新版本的情况下将最旧版本对象更改为 aws s3 中的最新版本对象

soap - 如何在 Windows Phone 7 上使用 SOAP API 将对象放在亚马逊 S3 上?

amazon-web-services - 无法对齐导入的 S3 存储桶地形配置

python - 用于从 s3 存储桶下载最新文件的 Boto 脚本

python - 带有 Amazon S3 的 django-storages - 防止覆盖

amazon-web-services - 共享我的 lightail 实例公共(public)静态 IP 是否安全

c# - PLUpload C# 直接到 S3 工作示例

node.js - 如何使用 IAM 和 Node.js (aws-sdk) 访问 AWS S3 上的存储桶?