访问对象的 s3 存储桶策略 url

s3 bucket policy to access object url

什么是提供 IAM 用户访问对象 url 的 s3 存储桶策略权限,它基本上是我上传到 S3 存储桶的对象的 HTTPs url。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ListBucket",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:::bucket"
        },
        {
            "Sid": "GetObject",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::bucket/*"
        }
    ]
}

根据上述策略,我可以将对象下载到我的本地,但我无法使用包含 Https link 的对象 url 访问它。如果我让 s3 存储桶保持满 public ,只有这样我才能通过 https 访问对象 url.

我不想提供完整的 public 访问权限以及如何使用存储桶策略提供对此的访问权限?

您可以通过为对象生成 s3 pre-signed urls 来获得 https url。这将允许使用生成的 url 进行 临时 访问。

除此之外,一个常见的选择是与外界共享您的 s3 对象而不使用 CloudFront 创建您的存储桶 public,如以下所述:

默认情况下,Amazon S3 中的对象是私有的。无法通过匿名 URL.

访问它们

如果您希望特定的 IAM 用户能够访问存储桶,那么您可以为 IAM 用户自己添加权限。然后,在访问存储桶时,他们将需要识别自己并证明自己的身份。最好通过 对 Amazon S3 进行 API 调用来完成,其中包括身份验证。

如果您必须通过 URL 访问私有对象,那么您可以创建一个 Amazon S3 pre-signed URL,这是一个提供对私有对象的临时访问的时间限制 URL .这证明了您的所有权,并将让 S3 为您提供内容。预签名 URL 可以用几行代码生成。