AWS CloudFront 使用自己的域名作为存储桶名称返回错误 NoSuchBucket

gop*_*ppi 5 amazon-s3 amazon-web-services amazon-cloudfront

我正在尝试设置 Cloudfront,让客户能够使用签名 cookie 读取 s3 中的私有文件。然而,我收到错误 NoSuchBucket ,并且奇怪的是,cloudfront 域作为 BucketName。在故障排除期间,我尝试消除任何可能的复杂情况,现在有一个名为“abc”的简单公共 s3 存储桶,并且可以访问我通过http://abc.s3.eu-central-1.amazonaws.com/test 上传的文件。 TXT。对于分发,我也使其尽可能简单 - 我选择了 s3 存储桶,但将所有其他设置保留为默认值。域名为 dxyz.cloudfront.net。我做的唯一一件事是创建一个 Origin 访问身份并添加一个存储桶策略:

{
    "Version": "2012-10-17",
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EFG"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::abc/*"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

EFG 是 OAI 的 ID。

错误是

<?xml version="1.0" encoding="UTF-8"?>
<Error>
    <Code>NoSuchBucket</Code>
    <Message>The specified bucket does not exist</Message>
    <BucketName>dxyz.cloudfront.net</BucketName>
    <RequestId>F123</RequestId>
    <HostId>random_characters</HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)

存储桶设置为 eu-central-1 - 以防万一。

有什么想法,有什么提示吗?

谢谢

Jos*_*ana 4

我有同样的问题。按照 Michael 在评论中的建议,我切换到旧版缓存,并将所有内容保留为默认值,因此仅缓存 GET/HEAD。彻底解决了问题