FURUTIMES 更新停止中(資格取得のため)

【S3設定】パブリックアクセスブロックの各設定を試してみた

  • 2020年9月1日
  • AWS
AWS

おつかれさまです。あきおです。

本日は、S3のパブリックアクセスブロック設定についてまとめてみました。

S3バケット作成の際にデフォルトで設定されるパブリックアクセスブロックですが、何に影響が生じるかわからないため、ハンズオンで調査しました。

あきお
影響範囲がわからないため、とりあえず設定した方も多いと思います。実は私もその一人。

パブリックアクセスブロック

パブリックアクセスブロックはバケットやオブジェクトが、パブリックに公開されることを防ぐ設定です。

次のように設定項目は4つあります。

全てにチェックを付けることで、オブジェクトのセキュリティは向上します。ただ、この設定により使用できないサービスがあるため注意が必要です。

新しいアクセスコントロールリスト(ACL)を介して許可[…]

バケットやオブジェクトは、新規にパブリックアクセスを付与できなくなります。

  • 実行
    aws s3 cp ./test2.txt s3://furutimes-test-publicaccessblock/ –acl public-read
  • 結果
    upload failed:An error occurred (AccessDenied) when calling the PutObject operation: Access Denied

ファイルをS3にアップロードする時に、ACLに「public-read」を付与するとAccess Deniedが表示されます。

あきお
パブリックアクセスを許可したファイルをアップロードする場合、注意が必要です。

任意のアクセスコントロールリスト(ACL)を介して許可[…]

作成済みのバケットとオブジェクトに対して、パブリックアクセスをブロックします。

パブリックアクセスを付与した「test.txt」用意しました。

設定を反映することでバブリックアクセスがブロックされ、オブジェクトの読み取りが「-」になります。

新規のパブリックバケットポリシーまたはアクセスポイントポリシーを介して付与[…]

新規にバケットポリシーを作成する際、パブリックアクセスの登録をブロックします。

既存のバケットは対象外で、新規のバケットポリシーのみ対象です。

次の1つ以上のポリシーで、固定値(ワイルドカードを含まない値)を設定することで、登録することができます。

  • aws:SourceIp
  • aws:PrincipalOrgID
  • aws:SourceArn
  • aws:SourceVpc
  • aws:SourceVpce
  • aws:SourceOwner
  • aws:SourceAccount
  • s3:x-amz-server-side-encryption-aws-kms-key-id
  • aws:userid
  • s3:DataAccessPointArn

固定値を設定していない場合、登録がブロックされます。

aws:SourceVpcに特定のVPC IDを設定することで登録できました。

任意のパブリックバケットポリシーまたはアクセスポイントポリシーを介して付与[…]

既存のバケットポリシーに対して、パブリックアクセスがあればブロックします。

バケット所有書アカウント内のAWSサービスと承認されたユーザーのみにアクセスを制限します。

クロスアカウントアクセスはブロックされるため注意が必要です。

静的WebサイトをホストしておりHello Worldが表示されます。

この設定をオンにするとページが閲覧できなくなります。

まとめ

こんな感じで、パブリックアクセスブロックがどこに影響があるか調査してみました。

なぜこの設定が必要なのか考えることで、より深い理解につながりました。