K3sクラスターでKubernetes監査ログ収集を有効にするには、監査ポリシーとWebhook構成ファイルを作成し、それらを使用するようにk3sを設定し、サービスを再起動します。
重要k3sはCoreDNSが起動する前に
kube-apiserverをホストプロセスとして実行するため、KubernetesサービスのDNS名を解決できません。監査コレクターはhostNetwork: trueを使用し、127.0.0.1を通じて接続する必要があります。 |
手順
- 監査設定ディレクトリとファイルを作成します。次のコマンドを実行して、監査ポリシーとWebhook構成を作成します。
sudo mkdir -p /var/lib/rancher/k3s/server/audit sudo tee /var/lib/rancher/k3s/server/audit/audit-policy.yaml << 'EOF' apiVersion: audit.k8s.io/v1 kind: Policy rules: - level: Metadata verbs: ["create"] resources: - group: "authorization.k8s.io" resources: ["subjectaccessreviews", "selfsubjectaccessreviews", "localsubjectaccessreviews"] - level: RequestResponse verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] resources: - group: "rbac.authorization.k8s.io" resources: ["roles", "rolebindings", "clusterroles", "clusterrolebindings"] - level: Metadata verbs: ["create", "update", "delete"] resources: - group: "" resources: ["serviceaccounts"] - level: None EOF sudo tee /var/lib/rancher/k3s/server/audit/audit-webhook-config.yaml << 'EOF' apiVersion: v1 kind: Config clusters: - name: audit-collector cluster: server: http://127.0.0.1:8030/k8s-audit contexts: - context: cluster: audit-collector user: "" name: default-context current-context: default-context preferences: {} users: [] EOF - k3sを監査ポリシーとWebhookを使用するように設定します。
/etc/rancher/k3s/config.yamlを編集または作成します。kube-apiserver-arg: - "audit-policy-file=/var/lib/rancher/k3s/server/audit/audit-policy.yaml" - "audit-webhook-config-file=/var/lib/rancher/k3s/server/audit/audit-webhook-config.yaml" - "audit-webhook-batch-max-size=1"
- 変更を適用するためにk3sを再起動してください。
sudo systemctl daemon-reload sudo systemctl restart k3s
- 構成を確認してください。
sudo systemctl status k3s sudo journalctl -u k3s | grep -i audit
