允许EC2实例访问S3桶



我有一个S3桶,里面有几个文件。禁用公共访问

我也有一个EC2实例,我希望能够访问桶中的所有文件。

我创建了一个具有如下权限的角色:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::mybucketname"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::mybucketname/*"
]
}
]
}

我将角色分配给我的EC2实例,但如果我尝试从我的EC2实例访问桶中的文件,我仍然得到403禁止。

我不知道我做错了什么。

感谢

在访问Amazon S3 bucket中的私有对象时,需要提供身份验证来证明您被允许访问该对象。

看起来您正在尝试访问文件而没有任何身份验证信息,只需访问URL:mybucket.s3.eu-west-2.amazonaws.com/myfile

如果您希望以这种方式访问对象,您可以创建一个Amazon S3预签名URL,它提供对Amazon S3中的私有对象的有时间限制的访问。它附加一个"签名"到URL,以证明您被授权访问它。

或者,您可以通过AWS命令行界面(CLI)或通过您首选编程语言的AWS SDK访问该对象。这样,API请求将根据S3服务进行身份验证。

最新更新