##目的
2018/11/16にS3の公開設定をブロックするパブリックバケットポリシーがリリースされたので試してみます。
https://aws.amazon.com/jp/blogs/aws/amazon-s3-block-public-access-another-layer-of-protection-for-your-accounts-and-buckets/
ACLとバケットポリシーがありますがここでは、バケットポリシーについて記載したいと思います。
バケットポリシーに対する設定項目としては、以下の2つがあります。
・新規のパブリックバケットポリシーをブロックする (推奨)
・バケットにパブリックポリシーがある場合、パブリックアクセスとクロスアカウントアクセスをブロックする (推奨)
####新規のパブリックバケットポリシーをブロックする (推奨)
新規の公開設定の禁止
既存の公開設定はそのまま有効
####バケットにパブリックポリシーがある場合、パブリックアクセスとクロスアカウントアクセスをブロックする (推奨)
既存の公開設計の禁止
新規の公開設定は可能
また、アカウントIDを指定したクロスアカウントアクセスは、パブリックバケットポリシーを有効にしても引き続き可能です。パブリックバケットポリシーは、「"Principal": "*"」な設定が禁止の対象となる。
表にしたものが以下になります。
ちなみに、新規にバケットを作成するとデフォルトすべてTrueになっています。
状況の設定で、バケットポリシーで公開設定しようとすると以下の様なエラーになります。
{
"Id": "Policy1542641668505",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1542641665444",
"Action": [
"s3:getobject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::<S3バケット名>/*",
"Principal": "*"
}
]
}
###試してみます
ファイルをアップロードしてダウンロードしてみます。
URLをクリックしてファイルをダウンロードする
→OK
####既存の公開設計の禁止してみる
バケットにパブリックポリシーがある場合、パブリックアクセスとクロスアカウントアクセスをブロックする (推奨)をTrueにする
ファイルのURLを開くとAccess Deniedになります。
####新規の公開設定の禁止してみる
公開設定のバケットポリシーを削除します。
新規のパブリックバケットポリシーをブロックする (推奨)をTrueにします。
バケットポリシーで公開設定を使用とするとアクセスが拒否される
この状態でクロスアカウント設定する
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Example",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<AWSアカウントID>:root"
},
"Action": "s3:getobject",
"Resource": [
"arn:aws:s3:::<S3バケット名>*",
"arn:aws:s3:::<S3バケット名> "
]
}
]
}
s3 cliでファイルをダウンロードしてみます。
$ aws s3 cp s3://<S3バケット名>/test.txt .
download: s3://<S3バケット名>/test.txt to ./test.txt
問題なくダウンロードできます。
##約束
投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。