Javascript 使用IAM用户凭据时无法访问任何S3资源?
我一直在使用我的AWS S3帐户密钥,同时玩javascript SDK,来回清理文件。现在是时候把它移出我的开发环境了,我设置了一个IAM帐户,这样我就可以使用访问受限的东西。然而,一旦我输入了新的密钥,我就完全无法访问S3。我甚至不能列出桶里的东西 从文档中可以看出,我已经正确配置了权限。当我试着让它工作的时候,我继续把它设置为所有允许的值 以下是我的开放政策:Javascript 使用IAM用户凭据时无法访问任何S3资源?,javascript,amazon-web-services,amazon-s3,Javascript,Amazon Web Services,Amazon S3,我一直在使用我的AWS S3帐户密钥,同时玩javascript SDK,来回清理文件。现在是时候把它移出我的开发环境了,我设置了一个IAM帐户,这样我就可以使用访问受限的东西。然而,一旦我输入了新的密钥,我就完全无法访问S3。我甚至不能列出桶里的东西 从文档中可以看出,我已经正确配置了权限。当我试着让它工作的时候,我继续把它设置为所有允许的值 以下是我的开放政策: { "Version": "2012-10-17", "Statement": [ { "Sid":
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1421961557000",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"*"
]
}
]
}
然后,我通过一个设置为S3的策略模拟器运行该策略,选择了所有操作,并按预期列出了所有项目的“允许”
因此,感觉到策略是正确的,我回到了代码
我将AWS globalConfig
对象中的现有凭据替换为IAM凭据,然后尝试获取一个存储桶
AWS.config.update({accessKeyId: 'MY_KEY', secretAccessKey: 'MY_SECRET_KEY'});
bucket = new AWS.S3({params: {Bucket: 'MY_BUCKET'}});
现在,我对S3服务发出的每个请求都返回为禁止的403
。具体来说,错误如下:
The request signature we calculated does not match the signature you provided. Check your key and signing method.
如果我输入我的主帐户密钥,一切都100%正常。那么,为什么我的IAM用户不能访问任何内容 这是IAM策略还是bucket策略?@Matt这是IAM策略该策略似乎正确,可能是其他原因。您可以尝试使用AWS CLI(AWS.amazon.com/CLI)检查这两组凭据,以查看是否出现相同的问题。这样,您就知道问题是出在凭据还是代码上了。@user3308774您找到解决方案了吗?请你提供一些反馈意见好吗?非常感谢。