【发布时间】:2017-01-01 03:22:33
【问题描述】:
我正在使用以下命令来验证我的用户是否可以访问 S3 存储桶:(基于此链接:http://docs.aws.amazon.com/AmazonS3/latest/dev/example-walkthroughs-managing-access-example1.html)
$ aws s3api put-object --bucket bymspsbucket --key AWS.png --body Desktop/AWS.png --profile spsadmin
但我遇到了以下错误并坚持下去,不知道出了什么问题......
“调用 PutObject 操作时发生错误(InvalidRequest):缺少此请求所需的标头:x-amz-content-sha256”
我已经用 --debug 运行了命令
请查看以下链接中的调试输出文件: https://github.com/minafa/AWS/wiki
$ aws --version
aws-cli/1.10.59 Python/2.7.10 Darwin/15.0.0 botocore/1.4.49
我用cmd配置了config文件:aws configure,结果如下:
#vim ./aws/credentials
[default]
aws_access_key_id =
aws_secret_access_key =
[spsadmin]
aws_access_key_id =
aws_secret_access_key =
#vim ./aws/config
已编辑:
由于凭证文件中没有区域,我手动修改了文件。所以它可以适用于 putobject,但是 get object 给出访问拒绝错误:
aws s3api get-object --bucket examplebucket --key AWS.png OutputFile.jpg --profile spsadmin
调用GetObject操作时发生错误(AccessDenied):访问被拒绝
我在 s3 存储桶中设置的用户可以访问的权限如下:
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:GetObject",
"s3:PutObject"
是否也需要在我的用户帐户的 IAM 中附加相同的策略? 在 IAM 的附加策略下,我只设置了“AmazonS3FullAccess”,但它不应该是 FullAccess,因为用户必须只能访问我分配的存储桶。
任何帮助将不胜感激。
【问题讨论】:
-
你可以粘贴这个文件的内容 ~/.aws/config 或 ~/.aws/credentials 没有凭据?
-
@error2007s 我已经编辑了我的问题并添加了它们的内容。我的配置文件为空,但我的凭据文件包含访问密钥。
-
@error2007s 谢谢你 :) 凭证文件中没有区域,我已经手动修改了文件!但是可以请检查我编辑的问题并指导我吗?
-
你的问题解决了吗?
-
@Abdul Manaf 是的,我已经做出了回应。
标签: amazon-web-services amazon-s3 amazon-iam