我一直在使用我的AWS S3帐户密钥,同时使用javascript SDK并且正在处理来回挖掘文件。现在是时候将它移出我的开发环境了,我建立了一个IAM帐户,以便我可以使用限制访问的东西。但是,一旦我放入新密钥,我就完全无法访问S3。我甚至无法在桶中列出对象。
据我所知,我已经正确配置了权限。在尝试让这个工作时,我继续将其设置为允许的一切。
这是我的开放政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1421961557000",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"*"
]
}
]
}
然后我通过设置为S3的策略模拟器运行策略,并选择了所有操作,并按预期为所有项列出“允许”。
所以,感觉政策是正确的,我回到了我的代码。
我用我的IAM凭据替换了AWS全局Config
对象中的现有凭据,然后尝试抓取一个存储桶。
AWS.config.update({accessKeyId: 'MY_KEY', secretAccessKey: 'MY_SECRET_KEY'});
bucket = new AWS.S3({params: {Bucket: 'MY_BUCKET'}});
现在,我针对S3服务发出的每个请求都会以403 Forbidden
的形式返回。具体来说,错误:
The request signature we calculated does not match the signature you provided. Check your key and signing method.
如果我放入我的主帐户密钥,一切都可以100%正常运行。那么,为什么我的IAM用户无法访问任何内容?