RKE1クラスターでKubernetes監査ログ収集を有効にするには、監査ポリシーとWebhook設定ファイルを作成し、それらを使用するようにRKE1を設定してサービスを再起動します。
重要
|
手順
- 監査設定ファイルを準備します。次のコマンドを実行して、監査ポリシーとWebhook構成を作成します。
sudo mkdir -p /etc/kubernetes/audit sudo tee /etc/kubernetes/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 /etc/kubernetes/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 cluster.ymlを監査設定で更新してください。services: kube-api: extra_args: audit-policy-file: /etc/kubernetes/audit/audit-policy.yaml audit-webhook-config-file: /etc/kubernetes/audit/audit-webhook-config.yaml audit-webhook-batch-max-size: "1" extra_binds: - "/etc/kubernetes/audit:/etc/kubernetes/audit:ro"- 変更を適用します。
rke up --config cluster.yml
- 構成を確認してください。
# Check kube-apiserver container is running with audit flags docker inspect $(docker ps -q -f name=kube-apiserver) | grep -i audit # Check audit collector logs kubectl logs -n trendmicro-system -l app.kubernetes.io/component=trendmicro-audit-log-collector --tail=20 # Restart api server if config is not applied docker restart $(docker ps -q -f name=kube-apiserver)
