ネットワーク ポリシー ロギングを使用する

このページでは、GKE クラスタでネットワーク ポリシー ロギングを有効にする方法と、ログをエクスポートする方法について説明します。

概要

ネットワーク ポリシーとは、Pod レベルのファイアウォールのことで、Pod が送受信できるネットワーク トラフィックを指定します。ネットワーク ポリシー ログには、ネットワーク ポリシーのイベントが記録されます。すべてのイベントをロギングすることも、次の基準に基づいてロギングすることもできます。

  • 許可された接続。
  • 拒否された接続。
  • 特定のポリシーで許可された接続。
  • 特定の Namespace で拒否された Pod への接続。

ロギングを有効にする

デフォルトでは、ネットワーク ポリシー ロギングは有効になっていません。ロギングの有効化と、ロギング対象のイベントの選択については、Google Kubernetes Engine のドキュメントのネットワーク ポリシー ロギングの使用をご覧ください。

ログへのアクセス

ネットワーク ポリシーのログは、Cloud Logging に自動的にアップロードされます。ログにアクセスするには、ログ エクスプローラまたは Google Cloud CLI を使用します。任意のシンクに Cloud Logging からログをエクスポートすることもできます。

gcloud

gcloud logging read --project "PROJECT_NAME" 'resource.type="k8s_node" \
    resource.labels.location="CLUSTER_LOCATION" \
    resource.labels.cluster_name="awsClusters/CLUSTER_NAME" \
    logName="projects/PROJECT_NAME/logs/policy-action"'

次のように置き換えます。

  • PROJECT_NAME: Google Cloud プロジェクト
  • CLUSTER_LOCATION: クラスタが管理されている Google Cloud のロケーション
  • CLUSTER_NAME: クラスタの名前

Cloud Logging

  1. Google Cloud コンソールの [ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] に移動

  2. [クエリビルダー] をクリックします。

  3. 次のクエリを使用して、すべてのネットワーク ポリシーのログレコードを検索します。

    resource.type="k8s_node"
    resource.labels.location="CLUSTER_LOCATION"
    resource.labels.cluster_name="awsClusters/CLUSTER_NAME"
    logName="projects/PROJECT_NAME/logs/policy-action"
    

    次のように置き換えます。

    • CLUSTER_LOCATION: クラスタが管理されている Google Cloud のロケーション。
    • CLUSTER_NAME: クラスタの名前。
    • PROJECT_NAME: Google Cloud プロジェクト。

ログ エクスプローラの使用方法については、ログ エクスプローラの使用をご覧ください。

また、クエリビルダーを使用してクエリを作成することもできます。ネットワーク ポリシーのログに対するクエリを実行するには、[ログ名] プルダウン リストで [policy-action] を選択します。使用可能なログがない場合、プルダウン リストに policy-action は表示されません。

ネットワーク ポリシー ログへのローカル アクセス

ノードのファイル システムにアクセスできる場合は、ローカル ファイル /var/log/network/policy_action.log* の各ノードでネットワーク ポリシーのログを利用できます。現行のログファイルが 10 MB に達すると、ノードがログファイルをローテーションします。ログファイルは最大 5 世代まで保存されます。

次のステップ