我正在编写一个powershell脚本来从s3网址下载文件。我一直收到(403)Forbidden错误。我使用的命令是
Invoke-WebRequest -Uri "http://bucketname.s3.amazonaws.com/file.txt"
EC2实例具有与之关联的IAM角色,可以从s3存储桶下载。我能够成功运行aws cli命令(cp,ls等)。这是我通过请求传递的凭据的问题吗?我是否需要通过此请求传递AWS凭据?
答案 0 :(得分:2)
当您使用Invoke-WebRequest
cmdlet时,您不会将凭据传递给S3。因此,即使您已获得授权下载该文件的EC2实例,Amazon S3也不会知道该文件。
使用AWS CLI时,它会将凭据与请求一起发送。
您有几个选择:
Invoke-WebRequest
与预先签名的网址一起使用,以下载该文件。Invoke-WebRequest
电话发送凭据。我不推荐这个,因为你只是重新发明轮子。