詳細ログ

このページでは、詳細ログを構成する方法について説明します。これは Cloud Armor のセキュリティ ポリシーで使用できるオプションの機能です。

ログに記録される詳細レベルを調整できます。最初にポリシーを作成するとき、ポリシーを変更するとき、またはポリシーのトラブルシューティングを行うときにのみ、詳細ロギングを有効にすることをおすすめします。詳細ログを有効にすると、プレビュー モードのルールと、標準オペレーション中のアクティブな(プレビューされていない)ルールで有効になります。

事前構成 WAF ルールが特定のリクエストによってトリガーされた理由がわからない例を考えてみましょう。Cloud Armor のデフォルトのイベントログには、トリガーされたルールとサブシグネチャが含まれます。ただし、トラブルシューティング、ルールの検証、ルールの調整などの目的で、ルールをトリガーした受信リクエストの詳細情報が必要になることがあります。この例では、詳細ログを有効にすることをおすすめします。

Cloud Armor のロギングレベルを構成して各セキュリティ ポリシーの詳細なロギングを有効にするには、Google Cloud CLI で --log-level フラグを使用します。

デフォルトではこのオプションは無効になっています。フラグの構文は次のとおりです。

--log-level=[NORMAL | VERBOSE]

このフラグは、gcloud compute security-policies update コマンドでのみ使用できます。このオプションを使用して新しいセキュリティ ポリシーを作成するには、ファイル内にセキュリティ ポリシーを作成してからそのファイルをインポートする必要があります。詳細については、セキュリティ ポリシーをインポートするをご覧ください。

例:

  gcloud compute security-policies update ca-policy-1 \
      --log-level=VERBOSE
  

最初にポリシーを作成するとき、ポリシーを変更するとき、またはポリシーのトラブルシューティングを行うときに、詳細ログを有効にすることをおすすめします。

詳細ロギングが有効な場合に記録される値

詳細ロギングが有効になっている場合、Cloud Logging に送信されるロード バランシング リクエスト ログに追加情報が記録されます。詳細ログが有効になっている場合、リクエストに次の追加フィールドが含まれます。

  • matchedFieldType(文字列): 一致しているフィールドのタイプです。

    • ARG_NAMES
    • ARG_VALUES
    • BODY

      • ログに BODY フィールドが含まれている場合、POST 本文全体がルールに一致することを意味します。
    • COOKIE_VALUES

    • COOKIE_NAMES

    • FILENAME

    • HEADER_VALUES

    • RAW_URI

    • REFERER

    • REQUEST_LINE

    • URI

    • USER_AGENT

    • HEADER_NAMES

    • ARGS_GET

    • X_FILENAME

    • ARG_NAME_COUNT

    • TRANSFER_ENCODING

    • REQUEST_METHOD

  • matchedFieldName(文字列): Key-Value ペアの値の部分と一致すると、このフィールドにキー値が保存されます。それ以外の場合は空になります。

  • matchedFieldValue(文字列): フィールドの一致している部分の接頭辞。最大 16 バイトです。

  • matchedFieldLength(整数): フィールドの合計長。

  • matchedOffset(整数): 一致しているフィールド内の開始オフセット。

  • matchedLength(整数): 一致の長さ。

  • inspectedBodySize(整数): --request-body-inspection-size フラグを使用して設定したリクエスト本文の構成済みの検査上限(バイト数)。この上限の詳細については、POST および PATCH 本文の検査における制限をご覧ください。

たとえば、SQL インジェクション WAF ルールが有効なプロジェクトに次のリクエストを送信できます。

curl http://IP_ADDR/?sql_table=abc%20pg_catalog%20xyz

ログ エクスプローラのエントリは次のようになります。

enforcedSecurityPolicy: {
 name: "user-staging-sec-policy"
 priority: 100
 configuredAction: "DENY"
 outcome: "DENY
 inspectedBodySize: 65536
 preconfiguredExprIds: [
   0: "owasp-crs-v030001-id942140-sqli"
  ]
matchedFieldType: "ARG_VALUES"
matchedFieldName: "sql_table"
matchedFieldValue: "pg_catalog"
matchedFieldLength: 18
matchedOffset: 4
matchedLength: 10
}

詳細ログが有効な場合のプライバシーの維持

詳細ロギングを使用すると、特定の事前構成 WAF ルールをトリガーした受信リクエストの要素の一部がログに記録されます。これらのスニペットには、リクエスト ヘッダー、リクエスト パラメータ、POST 本文の要素などが含まれることがあります。リクエスト ヘッダーや本文の内容、WAF ルールがトリガーされた理由によっては、スニペットに IP アドレスや受信リクエストの機密データなどが含まれる場合があります。

詳細ログを有効にすると、機密データが Logging のログに記録されるリスクがあります。詳細ログは、ルールの作成中と検証中、またはトラブルシューティング目的でのみ有効にすることをおすすめします。通常のオペレーションでは、詳細ログを無効にしておくことをおすすめします。

次のステップ