S3 の公開 ACL 無視設定の確認

S3 の公開 ACL 権限を無視し、不要な既存の権限を削除してください。

説明

ACL を使う S3 バケットでは、公開 ACL の権限を無視せず、ほかの制御でも遮断しなければ、外部アクセスを許可する可能性があります。IgnorePublicAcls: true はバケットとオブジェクトの公開 ACL 権限を無視しますが、ACL 自体の削除や新しい公開 ACL 設定リクエストの拒否は行いません。

実際のアクセスは、ACL の有効状態やアカウントレベルのブロックなどにも依存します。新しいバケットでは ACL がデフォルトで無効なため、この設定だけで公開アクセスの有無は判断できません。

想定される影響

  • 公開読み取り権限が適用されると、オブジェクトの内容や一覧が漏えいする可能性があります。
  • 公開 ACL を残したままブロック設定を解除すると、公開アクセスが再び許可される可能性があります。

対処方法

  • PublicAccessBlockConfiguration に IgnorePublicAcls: true を設定してください。
  • 新しい公開 ACL のリクエストも拒否するには BlockPublicAcls を有効にし、非公開バケットのほかの公開ブロック設定も確認してください。
  • 既存の ACL から不要な公開権限を削除し、必要なアクセスをポリシーで設定してください。

例

以下では、同じバケットの公開 ACL 保護設定を変更します。

変更前

yaml
Resources:
  Bucket13:
    Type: AWS::S3::Bucket
    Properties:
      PublicAccessBlockConfiguration:
        BlockPublicAcls: false
        BlockPublicPolicy: true
        IgnorePublicAcls: false
        RestrictPublicBuckets: true

公開 ACL の権限を無視しません。ACL が有効でほかの制御が遮断しなければ、既存の公開権限が適用される可能性があります。

変更後

yaml
Resources:
  Bucket13:
    Type: AWS::S3::Bucket
    Properties:
      PublicAccessBlockConfiguration:
        BlockPublicAcls: true
        BlockPublicPolicy: true
        IgnorePublicAcls: true
        RestrictPublicBuckets: true

公開 ACL の権限を無視し、新しい公開 ACL のリクエストも拒否します。既存の ACL は自動削除されないため、不要な権限を別途削除してください。

参考資料