如何获取使用Cloudfront上载的S3存储桶中的文件?

时间:2014-06-06 09:25:09

标签: amazon-web-services upload amazon-s3 amazon-cloudfront

我目前正在尝试在现有S3存储桶上实施Cloudfront上传(POST / PUT方法)。

我的Cloudfront发行版似乎配置得很好。 我正在使用Cloudfront签名的URL在S3存储桶中上传我的文件。它工作正常。 上传文件后,我可以使用Cloudfront签名网址访问它们。这也很好。

但我发现我无法使用AWS凭据(access_key_id& secret_key)访问上传的文件(通过Cloudfront)。 每次,我试试这个,我收到一个AccessDenied错误代码。

我觉得S3存储桶策略的配置中缺少某些内容。 这是我目前的S3存储桶策略:

{
    "Version": "2008-10-17",
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Principal": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity XXXXXXXXXXXX",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::XXXXX-XXXXXX-XXXX/*"
        }
    ]
}

我是否遗漏了某些东西或者这是不可能的?

1 个答案:

答案 0 :(得分:1)

我曾经遇到过同样的问题。

尝试添加标题" x-amz-acl = bucket-owner-full-control "上传请求,应该做的伎俩。

希望它有所帮助!