0

为 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 链接的对象 url 访问它。如果我将 s3 存储桶完全公开,那么只有这样我才能拥有对对象 url 的 https 访问权限。

我不想提供完全的公共访问权限以及如何通过存储桶策略提供对此的访问权限?

4

2 回答 2

2

您可以通过为对象生成s3 预签名 url来获取 https url 。这将允许使用生成的 url进行临时访问。

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

于 2021-09-20T06:42:50.467 回答
0

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

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

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

于 2021-09-20T12:50:02.520 回答