我有一个在S3上托管的静态网站,我已将所有文件设置为公开.此外,我有一个带有nginx的EC2实例,它充当反向代理并且可以访问静态网站,因此S3扮演原始角色.
我现在要做的是将S3上的所有文件设置为私有,这样网站只能通过来自nginx(EC2)的流量访问.
到目前为止,我已尝试过以下内容.我已经创建了一个新的策略角色并将其附加到EC2实例
授予权限的策略:AmazonS3ReadOnlyAccess
并重新启动了EC2实例.
然后,我在S3存储桶控制台>权限>存储桶策略中创建了一个策略
{
"Version": "xxxxx",
"Id": "xxxxxxx",
"Statement": [
{
"Sid": "xxxxxxx",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::XXXXXXXXXX:role/MyROLE"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::XXX-bucket/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
作为主要我已经设置了我在为EC2实例创建角色时获得的ARN.
"Principal": {
"AWS": "arn:aws:iam::XXXXXXXXXX:role/MyROLE"
},
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用,任何帮助表示赞赏.