AWS S3 サーバー アクセスログを収集する

以下でサポートされています。

このドキュメントでは、Google Security Operations フィードを設定して AWS S3 サーバー アクセスログを収集する方法について説明します。パーサーは grok パターンを使用してフィールドを抽出し、JSON 入力を処理して、抽出されたフィールドを UDM にマッピングします。特定のフィールドの有無と値に基づいてデータ変換、型変換、条件ロジックを実行し、UDM を正確に表現します。

始める前に

次の前提条件を満たしていることを確認します。

  • Google SecOps インスタンス
  • AWS への特権アクセス

AWS S3 サーバー アクセス ロギングを構成する方法

Google SecOps は、Amazon SQS を介した Amazon S3 を使用したログ収集をサポートしています。

  1. AWS Management コンソールにログインします。
  2. Amazon S3 コンソールにアクセスします。
  3. Amazon S3 > バケットに移動します。
  4. 既存のバケットを選択するか、新しいバケットを作成します。
  5. [プロパティ] をクリックします。
  6. [サーバー アクセス ロギング] セクションで、[編集] をクリックします。
  7. [有効にする] を選択します。
  8. [ターゲット バケット] フィールドに、ログレコード オブジェクトの送信先となる新しいバケットの名前を入力するか、既存のバケットをターゲットとして選択します。
  1. [変更を保存] をクリックします。
  2. S3 バケットの SQS キューを作成するには、S3 ストレージで Amazon SQS インスタンスを構成します。詳細については、通知用のバケットを構成する(SNS トピックまたは SQS キュー)をご覧ください。

サービスとリージョンに基づいて、次の AWS ドキュメントを参照して接続のエンドポイントを特定します。

フィードを設定する

Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。

  • [SIEM 設定] > [フィード]
  • [Content Hub] > [Content Packs]

[SIEM 設定] > [フィード] でフィードを設定する

このプロダクト ファミリー内で異なるログタイプに対して複数のフィードを構成するには、プロダクトごとにフィードを構成するをご覧ください。

1 つのフィードを設定する手順は次のとおりです。

  1. [SIEM 設定] > [フィード] に移動します。
  2. [Add New Feed] をクリックします。
  3. 次のページで、[単一フィードを設定] をクリックします。
  4. [ソースタイプ] リストで、[Amazon S3] または [Amazon SQS] を選択します。
  5. [ログタイプ] リストで、[AWS S3 サーバー アクセス] を選択します。
  6. [次へ] をクリックします。
  7. Google SecOps は、アクセスキー ID とシークレット メソッドを使用したログ収集をサポートしています。アクセスキー ID とシークレットを作成するには、AWS でツールの認証を構成するをご覧ください。
  8. 作成した AWS S3 サーバー アクセス構成に基づいて、入力パラメータの値を指定します。
    • Amazon S3 を使用する場合は、次のフィールドに値を指定します。
      • リージョン
      • S3 URI
      • URI は
      • ソース削除オプション
      • アクセスキー ID
      • シークレット アクセスキー
    • Amazon SQS を使用している場合は、次のフィールドに値を指定します。
      • リージョン
      • キュー名
      • 口座番号
      • Queue access key ID
      • Queue secret access key
      • ソース削除オプション
  9. [次へ] をクリックしてから、[送信] をクリックします。

コンテンツ ハブからフィードを設定する

Google SecOps で取り込みフィードを構成するには、Amazon SQS(推奨)または Amazon S3 を使用します。

次のフィールドに値を指定します。

  • リージョン: S3 バケットまたは SQS キューがホストされているリージョン。
  • キュー名: ログデータの読み取り元となる SQS キューの名前。
  • アカウント番号: SQS キューを所有するアカウント番号。
  • Queue Access Key ID: 20 文字のアカウント アクセスキー ID。例: AKIAOSFOODNN7EXAMPLE
  • Queue Secret Access Key: 40 文字のシークレット アクセスキー。例: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
  • ソース削除オプション: データの転送後にファイルとディレクトリを削除するオプション。

詳細オプション

  • フィード名: フィードを識別する事前入力された値。
  • ソースタイプ: Google SecOps にログを収集するために使用される方法。
  • Asset Namespace: フィードに関連付けられた名前空間
  • Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
aclRequired target.resource.attribute.labels.key: "aclRequired"
target.resource.attribute.labels.value: aclRequired の値
未加工ログのフィールド aclRequired から直接マッピングされます。
authenticationtype extensions.auth.auth_details 未加工ログのフィールド authenticationtype から直接マッピングされます。
bucket target.resource.name 未加工ログのフィールド bucket から直接マッピングされます。
bucket target.resource.resource_type: 「STORAGE_BUCKET」 パーサーは、bucket フィールドが存在する場合、resource_type を「STORAGE_BUCKET」に設定します。
bucketowner target.resource.product_object_id 未加工ログのフィールド bucketowner から直接マッピングされます。
bytes_sent network.sent_bytes 未加工ログの bytes_sent フィールドから直接マッピングされます。このとき、符号なし整数に変換され、「-」が「0」に置き換えられます。
ciphersuite network.application_protocol: "HTTPS" パーサーは、ciphersuite フィールドが存在する場合、application_protocol を「HTTPS」に設定します。
ciphersuite network.tls.cipher 未加工ログのフィールド ciphersuite から直接マッピングされます。
errorcode security_result.action_details 未加工ログのフィールド errorcode から直接マッピングされます。
errorcode security_result.action: "BLOCK" errorcode フィールドに「AccessDenied」が含まれている場合(大文字と小文字を区別しない)、パーサーは action を「BLOCK」に設定します。
hostheader target.hostname 未加工のログフィールド hostheader から抽出されます。ポート番号が削除される可能性があります。
hostheader target.port ポート番号が存在する場合は、未加工のログフィールド hostheader から抽出されます。
hostid target.resource.attribute.labels.key: 「S3 Extended Request ID」
target.resource.attribute.labels.value: hostid の値
未加工ログのフィールド hostid から直接マッピングされます。
http_capture network.http.method HTTP メソッドは http_capture フィールドから抽出されます。
http_capture network.http.version HTTP バージョンは http_capture フィールドから抽出されます。
http_capture target.url ターゲット URL は、hostheaderhttp_request_urihttp_capture から抽出)を使用して構築され、ciphersuite の有無に基づいて「http://」または「https://」の接頭辞が付加されます。
httpstatus network.http.response_code 未加工ログの httpstatus フィールドから直接マッピングされ、整数に変換されます。
object_version_id target.resource.product_object_id 未加工ログのフィールド object_version_id から直接マッピングされます。
objectsize target.file.size 未加工ログの objectsize フィールドから直接マッピングされます。このとき、符号なし整数に変換され、「-」が「0」に置き換えられます。
operation metadata.product_event_type 未加工ログのフィールド operation から直接マッピングされます。
referrer network.http.referral_url 引用符を削除した後、未加工ログの referrer フィールドから直接マッピングされます。
remoteip metadata.event_type: 「USER_RESOURCE_ACCESS」 remoteip フィールドが空の場合、パーサーは event_type を「USER_RESOURCE_ACCESS」に設定します。
remoteip principal.ip 未加工ログのフィールド remoteip から直接マッピングされます。
requester target.resource.attribute.labels.key: 「アクセス ポイント ARN」
target.resource.attribute.labels.value: requester の値
未加工ログのフィールド requester から直接マッピングされます。
requester_user principal.user.userid 未加工ログのフィールド requester_user から直接マッピングされます。
requestid network.session_id 未加工ログのフィールド requestid から直接マッピングされます。
request_time_ms network.session_duration.nanos 未加工ログのフィールド request_time_ms から直接マッピングされ、整数に変換された後、「-」が「0」に置き換えられ、ナノ秒を表すためにゼロでパディングされます。
signatureversion target.resource.attribute.labels.key:「Signature Version」
target.resource.attribute.labels.value: signatureversion の値
未加工ログのフィールド signatureversion から直接マッピングされます。
time metadata.event_timestamp 未加工ログのフィールド time から解析され、タイムスタンプに変換されます。
tlsVersion network.tls.version 未加工ログのフィールド tlsVersion から直接マッピングされます。
useragent network.http.user_agent 引用符を削除した後、未加工ログの useragent フィールドから直接マッピングされます。
(パーサー ロジック) metadata.event_type: 「NETWORK_HTTP」 パーサーはデフォルトの event_type を「NETWORK_HTTP」に設定します。
(パーサー ロジック) metadata.log_type: 「AWS_S3_SERVER_ACCESS」 パーサーは log_type を「AWS_S3_SERVER_ACCESS」に設定します。
(パーサー ロジック) metadata.product_name: 「AWS S3 サーバー アクセス」 パーサーは product_name を「AWS S3 Server Access」に設定します。
(パーサー ロジック) metadata.product_version: "HTTP/http_version" パーサーは、抽出された http_version を使用して product_version を設定します。
(パーサー ロジック) metadata.vendor_name: "AMAZON" パーサーは vendor_name を「AMAZON」に設定します。
(パーサー ロジック) network.application_protocol: "HTTP" ciphersuite フィールドが存在しない場合、パーサーは application_protocol を「HTTP」に設定します。
(パーサー ロジック) timestamp パーサーは、イベントが処理されるときにイベント timestamp を現在時刻に設定します。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。