Amazon CloudFront のログを収集する
このドキュメントでは、Google Security Operations フィードを設定して Amazon CloudFront ログを収集する方法について説明します。
詳細については、Google Security Operations へのデータの取り込みの概要をご覧ください。
取り込みラベルによって、未加工のログデータを構造化 UDM 形式に正規化するパーサーが識別されます。このドキュメントの情報は、取り込みラベル AWS_CLOUDFRONT が付加されたパーサーに適用されます。
始める前に
Amazon S3 バケットが作成されていることを確認します。詳細については、最初の S3 バケットを作成するをご覧ください。
Amazon CloudFront を構成する
- AWS Management コンソールにログインします。
 - Amazon S3 コンソールにアクセスし、Amazon S3 バケットを作成します。
 - [オン] をクリックしてロギングを有効にします。
 - [Bucket for logs] フィールドに、Amazon S3 バケット名を指定します。
 - [ログの接頭辞] フィールドに、接頭辞を指定します(省略可)。
 - ログファイルが Amazon S3 バケットに保存されたら、SQS キューを作成して Amazon S3 バケットに関連付けます。
 
接続のエンドポイントを特定する
S3、SQS、KMS に必要な Identity and Access Management ユーザーと KMS 鍵ポリシーを確認します。
サービスとリージョンに基づいて、次の AWS ドキュメントを参照して接続のエンドポイントを特定します。
- ロギングソースの詳細については、AWS Identity and Access Management エンドポイントとクォータをご覧ください。
 - S3 ロギング ソースの詳細については、Amazon Simple Storage Service エンドポイントとクォータをご覧ください。
 - SQS ロギング ソースの詳細については、Amazon Simple Queue Service エンドポイントとクォータをご覧ください。
 
フィードを設定する
Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。
- [SIEM 設定] > [フィード] > [新規追加]
 - Content Hub > Content Packs > Get Started
 
AWS CloudFront フィードの設定方法
- [Amazon Cloud Platform] パックをクリックします。
 - [AWS CloudFront] ログタイプを見つけます。
 次のフィールドで値を指定します。
- ソースタイプ: Amazon SQS V2
 - キュー名: 読み取る SQS キュー名
 - S3 URI: バケット URI。
s3://your-log-bucket-name/your-log-bucket-nameは、実際の S3 バケットの名前に置き換えます。
 Source deletion options: 取り込みの設定に応じて削除オプションを選択します。
ファイルの最大経過日数: 指定した日数以内に変更されたファイルを含めます。デフォルトは 180 日です。
SQS キュー アクセスキー ID: 20 文字の英数字の文字列であるアカウント アクセスキー。
SQS キューのシークレット アクセスキー: 40 文字の英数字の文字列であるアカウント アクセスキー。
詳細オプション
- フィード名: フィードを識別する事前入力された値。
 - アセットの名前空間: フィードに関連付けられた名前空間。
 - Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。
 
[フィードを作成] をクリックします。
このプロダクト ファミリー内の異なるログタイプに対して複数のフィードを構成する方法については、プロダクト別にフィードを構成するをご覧ください。
フィールド マッピング リファレンス
このパーサーは、SYSLOG 形式または JSON 形式の AWS CloudFront ログからフィールドを抽出し、UDM に正規化します。Grok パターンを使用してメッセージ文字列を解析し、さまざまなデータ変換(型変換、名前の変更など)を処理し、ユーザー エージェントの解析やアプリケーション プロトコルの識別などの追加コンテキストでデータを拡充します。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック | 
|---|---|---|
c-ip | 
principal.ip | 
直接マッピングされます。principal.asset.ip にもマッピングされます。 | 
c-port | 
principal.port | 
直接マッピングされます。 | 
cs(Cookie) | 
additional.fields[].key: 「cookie」additional.fields[].value.string_value: 直接マッピングされます。 | 
cs(Cookie) が存在し、agent に「://」が含まれていない場合、条件付きでマッピングされます。 | 
cs(Host) | 
principal.hostname | 
直接マッピングされます。principal.asset.hostname にもマッピングされます。他の URL フィールドが使用できない場合に target.url の作成に使用されます。 | 
cs(Referer) | 
network.http.referral_url | 
直接マッピングされます。 | 
cs(User-Agent) | 
network.http.user_agent | 
直接マッピングされます。「://」が含まれていない場合は、network.http.parsed_user_agent にマッピングされ、そのコンポーネントに解析されます。 | 
cs-bytes | 
network.sent_bytes | 
直接マッピングされます。符号なし整数に変換されます。 | 
cs-method | 
network.http.method | 
直接マッピングされます。 | 
cs-protocol | 
network.application_protocol | 
大文字に変換された後にマッピングされます。値が標準のアプリケーション プロトコルとして認識されず、cs-protocol-version に「HTTP」が含まれている場合、network.application_protocol は「HTTP」に設定されます。 | 
dport | 
target.port | 
直接マッピングされます。整数に変換されます。 | 
edge_location | 
principal.location.name | 
直接マッピングされます。 | 
fle-encrypted-fields | 
additional.fields[].key: 「fle-encrypted-fields」additional.fields[].value.string_value: 直接マッピングされます。 | 
存在する場合は条件付きでマッピングされます。 | 
fle-status | 
additional.fields[].key: 「fle-status」additional.fields[].value.string_value: 直接マッピングされます。 | 
存在する場合は条件付きでマッピングされます。 | 
host | 
principal.hostname、principal.asset.hostname | 
直接マッピングされます。 | 
id | 
principal.asset_id | 
接頭辞「id: 」付きで直接マッピングされます。 | 
ip | 
target.ip、target.asset.ip | 
直接マッピングされます。 | 
log_id | 
metadata.product_log_id | 
直接マッピングされます。 | 
resource | 
additional.fields[].key: 「resource」additional.fields[].value.string_value: 直接マッピングされます。 | 
存在する場合は条件付きでマッピングされます。 | 
result_type | 
additional.fields[].key: 「result_type」additional.fields[].value.string_value: 直接マッピングされます。 | 
存在する場合は条件付きでマッピングされます。 | 
sc-bytes | 
network.received_bytes | 
直接マッピングされます。符号なし整数に変換されます。 | 
sc-content-len | 
additional.fields[].key: 「sc-content-len」additional.fields[].value.string_value: 直接マッピングされます。 | 
存在する場合は条件付きでマッピングされます。 | 
sc-content-type | 
additional.fields[].key: 「sc-content-type」additional.fields[].value.string_value: 直接マッピングされます。 | 
存在する場合は条件付きでマッピングされます。 | 
sc-status | 
network.http.response_code | 
直接マッピングされます。整数に変換されます。 | 
ssl-cipher | 
network.tls.cipher | 
直接マッピングされます。 | 
ssl-protocol | 
network.tls.version | 
直接マッピングされます。 | 
timestamp | 
metadata.event_timestamp | 
利用可能な場合は解析してマッピングされます。さまざまな形式がサポートされています。 | 
ts | 
metadata.event_timestamp | 
利用可能な場合は解析され、マッピングされます。ISO8601 形式が想定されています。 | 
url | 
target.url | 
直接マッピングされます。 | 
url_back_to_product | 
metadata.url_back_to_product | 
直接マッピングされます。 | 
x-edge-detailed-result-type | 
additional.fields[].key: 「x-edge-detailed-result-type」additional.fields[].value.string_value: 直接マッピングされます。 | 
存在する場合は条件付きでマッピングされます。 | 
x-edge-location | 
additional.fields[].key: 「x-edge-location」additional.fields[].value.string_value: 直接マッピングされます。 | 
存在する場合は条件付きでマッピングされます。 | 
x-edge-request-id | 
additional.fields[].key: 「x-edge-request-id」additional.fields[].value.string_value: 直接マッピングされます。 | 
存在する場合は条件付きでマッピングされます。 | 
x-edge-response-result-type | 
additional.fields[].key: 「x-edge-response-result-type」additional.fields[].value.string_value: 直接マッピングされます。 | 
存在する場合は条件付きでマッピングされます。 | 
x-edge-result-type | 
additional.fields[].key: 「x-edge-result-type」additional.fields[].value.string_value: 直接マッピングされます。 | 
存在する場合は条件付きでマッピングされます。 | 
x-forwarded-for | 
target.ip、target.asset.ip | 
直接マッピングされます。複数の IP が存在する場合(カンマ区切り)、分割されてそれぞれの UDM フィールドに統合されます。 | 
x-host-header | 
target.hostname、target.asset.hostname | 
直接マッピングされます。ip または x-forwarded-for と http_verb のいずれかが存在する場合は、「NETWORK_HTTP」に設定されます。それ以外の場合は、「GENERIC_EVENT」に設定されます。「AWS_CLOUDFRONT」にハードコードされています。「AWS CloudFront」にハードコードされます。「AMAZON」にハードコードされています。ログエントリが Google Security Operations に取り込まれた時間。 | 
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。