S3(S3_User)を管理する権限を持つアカウントと、Cloud Front(Cloud_Front_User)を管理する権限を持つアカウントがあります。
これで、S3_Userを使用してバケット「bucketname」を作成し、Origin my S3バケットを使用してCloud_Front_Userを使用してディストリビューションを作成しました。
Cloudfrontを介してリソースにアクセスしようとすると、これが表示されます
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>555667558C0B2698</RequestId>
<HostId>
QP0y2/XTsJqItm815aDsdoLTF853zMeEPUAykvxjzdFfU1WwfXHioa6CeLWmc96RDVJopBu+eLE=
</HostId>
</Error>
これを設定しました: http://cl.ly/image/1s0I1H3A3p1N
[保存]をクリックすると、しばらくすると、S3バケットにIDを設定できなかったというエラーメッセージが表示されます。これは、CLoudFrontを "Cloud_Front_User"で、S3を "S3_User"で管理しているためだと思います。では、CloudFrontがs3にアクセスできるようにバケットにS3ポリシーを手動で設定するにはどうすればよいですか?
S3バケットポリシー
{
"Version": "2012-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
{
"Sid": " Grant a CloudFront Origin Identity access to support private content",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E780000000000"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::socialacademy/*"
}
]
}
URLの変更を解決しました
[〜#〜] from [〜#〜]
http://ID.cloudfront.net/bucket/uploads/academy/logo/1/logo.jpg
[〜#〜] to [〜#〜]
このソリューションを参照してください。
https://havecamerawilltravel.com/photographer/how-allow-public-access-Amazon-bucket
Amazon S3バケットへのパブリックアクセスを許可する方法誰もがAmazon S3バケット内のファイルをダウンロードしたり開いたりできるようにする場合は、次のようにします。
アマゾンウェブサービス
ポリシーの例:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::YOUR-BUCKET-NAME/*"
}
]
}