下記の資料1にて以下の内容解説がされています。
資料1
問題提起:「S3 バケット設定のブロックパブリックアクセスをオンにするとOAI を使ったアクセスに失敗してしまう」
要件:「S3 への直アクセスは制限したいためOAI を使いつつ、ブロックパブリックアクセスをオンにしたい」
ここで自分のブロックパブリックアクセス(バケットポリシー側)の2種類の認識については以下です。
1.新しいパブリックアクセス可能なポリシーを割り当てることができない。
2.任意のパブリックバケットポリシーに書かれた許可内容をブロックする。
上記2の「任意のパブリックバケットポリシーに書かれた許可内容をブロックする」
というニュアンスについて
バケットに設定したあらゆるバケットポリシーのALLOWは拒否されるという認識を持っていました。
しかし、この資料1では、以下のバケットポリシー内容を削除することで OAI を使ってCloudFront 経由のアクセスが可能という説明になっています。
{ "Sid": "PublicReadForGetBucketObjects", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<S3 バケット名>/*" }
ここで気になったのが今回の重要な点「S3 への直アクセスは制限したい」
疑問点:
つまり、自分の認識は誤りでブロックパブリックアクセスというのは、「バケットポリシーに書かれたあらゆる許可を否定」ではなく
命名:PublicReadForGetBucketObjectsの"Principal": "*"設定のようなワイルドカードでの直接アクセスを拒否するが
経由するようなこちらでは
"Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity XXX" }
許可されるという意味なのでしょうか?
もし、そうなら下記の資料2でブロックパブリックアクセス:ONにもかかわらず以下のポリシー権限をでユーザーに与えて、そのユーザーがアクセスできる内容にも納得がいきます。
{ "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/tutorialuser" }, "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::190821testbucket" ] }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/26 13:44 編集
2021/12/26 14:19 編集