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 に必要な IAM ユーザーと KMS 鍵ポリシーを確認します。
サービスとリージョンに基づいて、次の AWS ドキュメントを参照して接続のエンドポイントを特定します。
- ロギング ソースの詳細については、AWS Identity and Access Management のエンドポイントと割り当てをご覧ください。
- S3 ロギング ソースの詳細については、Amazon Simple Storage Service のエンドポイントと割り当てをご覧ください。
- SQS ロギング ソースの詳細については、Amazon Simple Queue Service のエンドポイントと割り当てをご覧ください。
Amazon CloudFront ログを取り込むように Google Security Operations でフィードを構成する
- [SIEM 設定] > [フィード] を選択します。
- [新しく追加] をクリックします。
- [フィード名] に固有の名前を入力します。
- [ソースタイプ] として [Amazon S3] または [Amazon SQS] を選択します。
- [ログタイプ] として [AWS CloudFront] を選択します。
- [次へ] をクリックします。
- Google Security Operations は、アクセスキー ID とシークレット メソッドを使用したログ収集をサポートしています。アクセスキー ID とシークレットを作成するには、AWS でツールの認証を構成するをご覧ください。
- 作成した Amazon CloudFront 構成に基づいて、次のフィールドに値を指定します。
- Amazon S3 を使用する場合は、次のフィールドに値を指定します。
- 地域
- S3 URI
- URI は
- ソース削除オプション
- Amazon SQS を使用する場合は、次のフィールドに値を指定します。
- 地域
- キュー名
- アカウント番号
- キューのアクセスキー ID
- キューのシークレット アクセスキー
- ソース削除オプション
- Amazon S3 を使用する場合は、次のフィールドに値を指定します。
- [次へ] をクリックし、[送信] をクリックします。
Amazon CloudFront ログを Amazon S3 バケットに送信するには、標準ログ(アクセスログ)の構成と使用をご覧ください。
Google Security Operations フィードの詳細については、Google Security Operations フィードのドキュメントをご覧ください。各フィードタイプの要件については、タイプ別のフィード構成をご覧ください。 フィードの作成時に問題が発生した場合は、Google Security Operations サポートにお問い合わせください。
フィールド マッピング リファレンス
このパーサーは、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-typeadditional.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-idadditional.fields[].value.string_value : 直接マッピング。 |
存在する場合は条件付きでマッピングされます。 |
x-edge-response-result-type |
additional.fields[].key : x-edge-response-result-typeadditional.fields[].value.string_value : 直接マッピング。 |
存在する場合は条件付きでマッピングされます。 |
x-edge-result-type |
additional.fields[].key : x-edge-result-typeadditional.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 へのログエントリの取り込み時間。 |