ビュー:

K3sクラスターでKubernetes監査ログ収集を有効にするには、監査ポリシーとWebhook構成ファイルを作成し、それらを使用するようにk3sを設定し、サービスを再起動します。

重要
重要
k3sはCoreDNSが起動する前にkube-apiserverをホストプロセスとして実行するため、KubernetesサービスのDNS名を解決できません。監査コレクターはhostNetwork: trueを使用し、127.0.0.1を通じて接続する必要があります。

手順

  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
  2. 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"
  3. 変更を適用するためにk3sを再起動してください。
    sudo systemctl daemon-reload
    sudo systemctl restart k3s
  4. 構成を確認してください。
    sudo systemctl status k3s
    sudo journalctl -u k3s | grep -i audit