小编gde*_*dev的帖子

仅允许EC2实例访问S3上的静态网站

我有一个在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)

但是,这不起作用,任何帮助表示赞赏.

amazon-s3 amazon-ec2 amazon-web-services

1
推荐指数
1
解决办法
2107
查看次数