AWS-通过CloudFront HTTPS分发访问S3存储桶时返回InvalidAccessKeyId

时间:2019-07-09 05:25:52

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

同一情况下的前question

在解决了上一个问题之后,我的AWS就安装了以下服务。

  1. S3中的ap-east-1存储桶,没有静态网站托管。
  2. CloudFront HTTPS分发,其中包含ACMus-east-1请求的SSL证书。
  3. 指向CloudFrontRoute 53分布的别名。

InvalidAccessKeyId screenshot

当我尝试使用Route 53中配置的别名导航到分发端点时,它总是返回InvalidAccessKeyId错误,并说访问键不存在。每个请求的密钥始终相同,并以AKIA为前缀。

我查看了IAM控制台,尚未创建任何用户。我相信只有2个角色是由AWS自动创建的。

顺便说一句,即使我在创建新的S3分发时禁用了自动更新CloudFront存储桶策略,我的存储桶策略也会被自动修改,其中Principal字段设置为"AWS": "ADIA..."。我尝试用"CanonicalUser": "<my OAI that the CloudFront distribution is using>"替换它,但几分钟后它将恢复为"AWS": "ADIA..."

有人知道如何解决此无效的访问密钥错误吗?


更新

我已经在S3中创建了另一个ap-southeast-1存储桶,并通过允许CloudFront自动生成存储桶策略,然后在Route 53控制台中配置了别名设置,执行了完全相同的步骤。

下面是自动生成的存储桶策略。

S3 auto-generated bucket policy

然后,我将该策略复制并粘贴到我原来的ap-east-1存储桶中,唯一的区别是在"AWS": "..."行中,但是它不允许我保存它,并指出存在错误在校长中。

S3 bucket policy error with principal

1 个答案:

答案 0 :(得分:0)

这是CloudFront和opt-in AWS regions的已知问题。不幸的是,解决方法是将您的存储桶策略设置为允许公共访问(类似于存储桶策略中的"Principal": "*"),或暂时仅使用其他区域。

您也可以尝试向AWS支持投诉。客户的影响往往会更快地解决AWS错误...