Security Hubの検出項目の解説
[S3.8] S3 パブリックアクセスブロック設定は、バケットレベルで有効にする必要があります
標準
リソース
カテゴリ
重要度
AWS Foundational Security Best Practices
Amazon S3
保護 > セキュアなアクセス管理 > アクセスコントロール
高
概要
S3 バケット内部のオブジェクトを S3 の機能のみを用いて公開する予定がない場合は、パブリックアクセスブロック機能を有効にし、意図せぬデータの公開が行われないような予防的統制を行いましょう。
システム構成上、意図的にバケットやバケット内のオブジェクトに対するパブリックアクセスを有効にして、インターネットからのデータの取得を許可することはあるでしょう。一方、S3 バケットを利用する開発者・操作者の不注意で公開されてしまう場合があるのも実態です。組織的にこのような事故を防ぐためには、オブジェクトの公開を行う予定のないバケットにおいて、パブリックアクセスを有効にできないように設定することが推奨されます。
問題がある場合の修正方法
マネジメントコンソール上での設定
AWS アカウント単位でパブリックアクセスブロックを有効化する場合:
サイドバーの このアカウントのブロックパブリックアクセス設定 をクリックする。
編集 をクリックし、パブリックアクセスをすべてブロック を選択する。
変更の保存 をクリックする。
バケット単位でパブリックアクセスブロックを有効化する場合:
バケット名をクリックする。
アクセス許可 タブを開く。
ブロックパブリックアクセス (バケット設定) の項目下の、編集 をクリックし、パブリックアクセスをすべてブロック を選択する。
変更の保存 をクリックする。
コマンドラインによる設定
AWS アカウント単位でパブリックアクセスブロックを有効化する場合:
aws s3control put-public-access-block \
--account-id <ACCOUNT_ID> \
--public-access-block-configuration "BlockPublicAcls=true, IgnorePublicAcls=true, BlockPublicPolicy=true, RestrictPublicBuckets=true"
バケット単位でパブリックアクセスブロックを有効化する場合:
aws s3api put-public-access-block \
--bucket <BUCKET_NAME> \
--public-access-block-configuration "BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true"
関連する CloudFormation リソース/パラメータ
対応しない場合のリスク
この設定はあくまで 「意図せずオブジェクトを公開してしまった」というミスを防ぐためのレイヤであり、予防的統制の一つです。したがって、S3 のパブリックアクセスブロックの設定が仮に無効でも、実際に AC...
Amazon S3についてのよくある質問
Amazon S3で他に推奨される設定はありますか?
AWS Foundational Security Best PracticesやCIS AWS Foundations Benchmarkでは、以下のような設定が推奨されます。これらは本Webサイトでも概要を解説しているので、必要に応じて参照してください。