S3バケットのアクセスログ設定の確認

必要なS3要求記録を収集し、配信状態と保存期間を確認してください。

説明

S3サーバーアクセスログは、バケットへの要求と応答の状態を調査するのに役立ちます。必要な要求記録が保存されていないと、不審なアクセスや運用上のエラーを分析しにくくなります。

サーバーアクセスログの配信はベストエフォートであり、記録の遅延や欠落があり得ます。アクセス制御を代替するものでも、すべての要求の完全な監査記録でもありません。

想定される影響

  • 要求の経緯やエラー原因を調べる資料が不足する可能性があります。
  • ログのアクセスや保存を適切に管理しないと、要求に関する情報が漏えいする可能性があります。

対処方法

LoggingConfigurationで必要なアクセスログを収集してください。S3を宛先にする場合は、元のバケットと同じアカウント・リージョンに別のバケットを用意し、配信権限を付与してください。ログへのアクセスと保存期間を制限し、要求を送った後は配信の遅延を考慮して実際の収集を確認してください。

例

AccessLogBucketNameには実際の保存先バケット名を指定します。バケットとログ配信サービスの権限は別途用意してください。バージョニングとアクセスログは異なる機能です。

変更前

yaml
Resources:
  MyBucket:
    Type: AWS::S3::Bucket
    Properties:
      VersioningConfiguration:
        Status: Enabled

サーバーアクセスログの宛先がありません。必要な記録を別の監査機能で収集しているかも確認する必要があります。

変更後

yaml
Resources:
  MyBucket:
    Type: AWS::S3::Bucket
    Properties:
      VersioningConfiguration:
        Status: Enabled
      LoggingConfiguration:
        DestinationBucketName: !Ref AccessLogBucketName
        LogFilePrefix: loga/

別のS3バケットにサーバーアクセスログを保存します。すべての要求が直ちに記録されるという保証ではありません。

参考資料