将AWS CloudFront与S3配合使用以服务js和css文件

时间:2015-08-12 19:43:01

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

我已将AWS CloudFront和S3设置为其来源。

我已经在桶中公开了我想要访问的文件,但是当我尝试访问这些文件时,我收到了403 Forbidden错误/ Access denied XML。

链接很简单:

http://dd9rhibbjdy7s.cloudfront.net/assets123/app.js

我到处搜索了Google,但仍无法找到解决方案。

是否有人知道如何使其正常工作?

浏览时的确切响应是:

<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>74E36027507DACD6</RequestId>
<HostId>
uUxkyTmpJbfxk1UJTf9bZmtkA/Vqq5O4eRruiG8zpC6uWn7tA1ffd5bnM4GcKD9Hp0BPKqKsBKQ=
</HostId>
</Error>

2 个答案:

答案 0 :(得分:0)

将此存储桶策略添加到S3存储桶,请记住更改存储桶名称。

{
  "Version":"2008-10-17",
  "Statement":[{
    "Sid":"AllowPublicRead",
        "Effect":"Allow",
      "Principal": {
            "AWS": "*"
         },
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::YOUR-BUCKET-NAME/*"
      ]
    }
  ]
}

答案 1 :(得分:0)

我的一位同事建议我使用策略生成器并提出这个:

{
    "Id": "Policy1439469599074",
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1439469594186",
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::assets123/*",
            "Principal": "*"
        }
    ]
}

这使一切顺利:)