Cloud Audit Logs

概要

GKE on Azure は、Cloud API と Kubernetes クラスタの両方のレベルで監査ロギングをサポートします。このドキュメントでは、Kubernetes クラスタ監査ロギングについて説明します。Cloud API 監査ロギングについては、Cloud API 監査ロギングの情報をご覧ください。

GKE on Azure は、Kubernetes Audit Logging を使用して、クラスタの Kubernetes API サーバーへの呼び出しを時系列で記録します。監査ログは、不審な API リクエストの調査や統計情報の収集に役立ちます。

クラスタ バージョン 1.23 以降では、GKE on Azure はデフォルトで Google Cloud プロジェクトの Cloud Audit Logs を書き込みます。Cloud Audit Logs の書き出しには、次の利点があります。

  • すべての GKE クラスタの監査ログを一元化できます。
  • Cloud Audit Logs に書き込まれるログエントリは不変です。
  • Cloud Audit Logs エントリは 400 日間保持されます。
  • Cloud Audit Logs は Anthos の料金に含まれています。

制限事項

GKE on Azure の Cloud Audit Logs の現在のバージョンには、いくつかの制限があります。

  • データアクセス(取得、リスト出力、監視リクエスト)ロギングはサポートされていません。

  • Kubernetes 監査ポリシーの変更はサポートされていません。

  • Cloud Audit Logs は、ネットワークの長い停止に対処できません。ログエントリが Google Cloud にエクスポートできない場合は、10G のディスク バッファにキャッシュ保存します。そのバッファがいっぱいになると、後続のエントリは破棄されます。

監査ポリシー

Cloud Audit Logs の動作は、静的に構成された Kubernetes 監査ロギング ポリシーによって決定されます。現在、このポリシー変更はサポートされていませんが、将来はサポートされる予定です。

Cloud Audit Logs へのアクセス

Cloud Audit Logs には、Google Cloud コンソールや Google Cloud CLI からアクセスできます。

Console

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

    ログページに移動

  2. [クエリを表示] トグルスイッチをクリックします。

  3. テキスト ボックスに次のフィルタを入力します。

    resource.type="k8s_cluster"
    logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity"
    

    画面は次のようになります。

    [クエリを表示] が切り替わり、クエリが入力されたログ エクスプローラ

  4. [クエリを実行] をクリックして、このプロジェクトにログインするように構成された GKE on Azure クラスタからのすべての監査ログを表示します。

gcloud

プロジェクトの管理アクティビティ ログで k8s_cluster リソースタイプに該当するログエントリの最初の 2 つを一覧表示します。

gcloud logging read \
    'logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity"
    AND resource.type="k8s_cluster" ' \
    --limit 2 \
    --freshness 300d

ここで、PROJECT_ID はプロジェクト ID です。

出力には 2 つのログエントリが表示されます。各ログエントリについて、logName フィールドは projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity 値を持ち、protoPayload.serviceNamegkemulticloud.googleapis.com と等しくなる点に注意してください。