このトピックでは、Tanzu Kubernetes Grid (TKG) での監査ログについて説明します。
Tanzu Kubernetes Grid では、次の監査ログにアクセスできます。
auditd
を使用して収集される、クラスタ内の各ノードのシステム監査ログ。後述の「ノードのシステム監査ログ」を参照してください。Kubernetes 監査ログは、Kubernetes API サーバへの要求を記録します。
監査ログは、スーパーバイザーおよび展開するワークロード クラスタに対してデフォルトで有効になっています。
スタンドアローン管理クラスタまたはワークロード クラスタで、それが展開する Kubernetes の監査を有効にするには、クラスタを展開する前に ENABLE_AUDIT_LOGGING
変数を true
に設定します。
重要Kubernetes 監査を有効にすると、ログの量が非常に多くなる可能性があります。この量を処理するために、VMware では Fluent Bit などのログ フォワーダを使用することをお勧めします。手順については、「ログ転送のための Fluent Bit のインストール」を参照してください。
監査ログに含まれる内容を制御するには、以下で説明するように、監査ポリシー ファイルを kube-apiserver
に渡します。
デフォルトでは、クラスタの監査ログ エントリは、制御プレーン ノード上の次の場所に書き込まれます。
/var/log/kubernetes/audit.log
/var/log/vmware/audit/kube-apiserver.log
/var/log/kubernetes/kube-apiserver.log
これらの場所をカスタマイズするには、監査ログ構成で --audit-log-path
を設定します。
クラスタに Fluent Bit を展開すると、ユーザーのログ出力先にログが転送されます。
ログに記録される内容をきめ細かく制御するには、監査ポリシー ファイルを作成し、--audit-policy-file
フラグを使用して kube-apiserver に渡します。
クラスタの監査ログ構成(監査ログの場所を含む)は、次の場所で確認できます。
スタンドアローン管理クラスタとそのワークロード クラスタ:
/etc/kubernetes/audit-policy.yaml
~/.config/tanzu/tkg/providers/ytt/03_customizations/audit-logging/audit_logging.yaml
スーパーバイザーとそのワークロード クラスタ:制御プレーン ノード上の /etc/kubernetes/manifest/kube-apiserver.yaml
にある Kube API サーバ設定。例:
スーパーバイザー:
- kube-apiserver
[...]
- --audit-log-maxage=30
- --audit-log-maxbackup=10
- --audit-log-maxsize=100
- --audit-log-path=/var/log/vmware/audit/kube-apiserver.log
- --audit-policy-file=/etc/vmware/wcp/audit-policy.yaml
ワークロード クラスタ:
- kube-apiserver
[...]
- --audit-log-maxage=30
- --audit-log-maxbackup=10
- --audit-log-maxsize=100
- --audit-log-path=/var/log/kubernetes/kube-apiserver.log
- --audit-policy-file=/etc/kubernetes/extra-config/audit-policy.yaml
スタンドアローン管理クラスタまたはワークロード クラスタを展開すると、クラスタ上の auditd
がデフォルトで有効になります。クラスタ内の各ノードのシステム監査ログにアクセスするには、/var/log/audit/audit.log
に移動します。
クラスタに Fluent Bit を展開すると、ユーザーのログ出力先にこれらの監査ログが転送されます。手順については、「ログ転送のための Fluent Bit のインストール」を参照してください。