私は静的なウェブサイトをS3にホストしています。すべてのファイルを公開するように設定しました。 また、リバースプロキシとして動作するnginxのEC2インスタンスがあり、静的なWebサイトにアクセスできるため、S3が元の役割を果たします。S3の静的ウェブサイトにEC2インスタンスがアクセスできるようにする
私が今したいことは、S3のすべてのファイルを非公開にして、ウェブサイトがnginx(EC2)からのトラフィックによってのみアクセスできるようにすることです。
これまでのところ、私は以下のことを試しました。私が作成し、パーミッションの付与
ポリシーでEC2インスタンスに新しいポリシーの役割を添付していますAmazonS3ReadOnlyAccess
そして、EC2インスタンスを再起動しました。私はEC2インスタンスの役割を作成したとき、私が得たARNを設定しているプリンシパルとして
私はその後、私の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/*"
}
]
}
。
"Principal": {
"AWS": "arn:aws:iam::XXXXXXXXXX:role/MyROLE"
},
ただし、これは機能しません。ご了承ください。アマゾンS3で
正当なものと思われます。 VPCエンドポイントとエンドポイントをホスティングしているWebサイトとの間のやりとりをテストしていませんが、これは使用されていると仮定しても動作するはずです。 –