Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi.

Activation du journal d’audit de l’API dans les clusters en aval

L’audit Kubernetes fournit un ensemble d’enregistrements chronologiques pertinents pour la sécurité concernant un cluster. Kube-apiserver effectue l’audit. Les requêtes génèrent un événement à chaque étape de son exécution, qui est ensuite prétraité selon une certaine stratégie et écrit dans un backend. La stratégie détermine ce qui est enregistré et le backend persiste les enregistrements.

Vous souhaiterez peut-être configurer le journal d’audit dans le cadre de la conformité avec les contrôles du Centre pour la sécurité Internet (CIS) des normes Kubernetes.

Pour les détails de configuration, reportez-vous à la documentation officielle de Kubernetes.

  • RKE2

  • K3s

Méthode 1 (Recommandée){nbsp}: Set `audit-policy-file` in `machineGlobalConfig` or `machineSelectorConfig`

Vous pouvez définir audit-policy-file dans le fichier de configuration en utilisant soit machineGlobalConfig soit machineSelectorConfig.

Lors de l’utilisation de machineGlobalConfig, Rancher livre le fichier au chemin /var/lib/rancher/rke2/etc/config-files/audit-policy-file sur tous les nœuds (à la fois les nœuds de plan de contrôle et les nœuds de travail), et définit les options appropriées dans le serveur RKE2. Cela peut entraîner une réconciliation indésirable des nœuds de travail lorsque la stratégie d’audit est modifiée.

Pour éviter la réconciliation des nœuds de travail, utilisez machineSelectorConfig avec un sélecteur d’étiquettes pour cibler uniquement les nœuds de plan de contrôle. Cela garantit que le fichier de stratégie d’audit est uniquement livré aux nœuds de plan de contrôle.

Exemple utilisant machineGlobalConfig :

apiVersion: provisioning.cattle.io/v1
kind: Cluster
spec:
  rkeConfig:
    machineGlobalConfig:
      audit-policy-file: |
        apiVersion: audit.k8s.io/v1
        kind: Policy
        rules:
          - level: RequestResponse
            resources:
              - group: ""
                resources:
                  - pods

Exemple utilisant machineSelectorConfig (recommandé pour éviter la réconciliation des nœuds de travail) :

apiVersion: provisioning.cattle.io/v1
kind: Cluster
spec:
  rkeConfig:
    machineSelectorConfig:
      - config:
          audit-policy-file: |
            apiVersion: audit.k8s.io/v1
            kind: Policy
            rules:
              - level: RequestResponse
                resources:
                  - group: ""
                    resources:
                      - pods
        machineLabelSelector:
          matchLabels:
            rke.cattle.io/control-plane-role: 'true'

Méthode 2{nbsp}: Utilisez les Directives, `machineSelectorFiles` et `machineGlobalConfig`

Cette fonctionnalité est disponible dans Rancher v2.7.2 et versions ultérieures.

Vous pouvez utiliser machineSelectorFiles pour livrer le fichier de stratégie d’audit aux nœuds de plan de contrôle, et machineGlobalConfig pour définir les options sur kube-apiserver.

En tant que prérequis, vous devez créer un secret ou un configmap pour être la source de la stratégie d’audit.

Le secret ou le configmap doit répondre aux exigences suivantes :

  1. Il doit se trouver dans l’espace de noms fleet-default où l’objet Cluster existe.

  2. Il doit avoir l’annotation rke.cattle.io/object-authorized-for-clusters: <cluster-name1>,<cluster-name2> qui permet aux clusters cibles de l’utiliser.

Le tableau de bord Rancher fournit un formulaire facile à utiliser pour créer le secret ou le configmap.

Exemple :

apiVersion: v1
data:
  audit-policy: >-
    IyBMb2cgYWxsIHJlcXVlc3RzIGF0IHRoZSBNZXRhZGF0YSBsZXZlbC4KYXBpVmVyc2lvbjogYXVkaXQuazhzLmlvL3YxCmtpbmQ6IFBvbGljeQpydWxlczoKLSBsZXZlbDogTWV0YWRhdGE=
kind: Secret
metadata:
  annotations:
    rke.cattle.io/object-authorized-for-clusters: cluster1
  name: <name1>
  namespace: fleet-default

Activez et configurez le journal d’audit en modifiant le cluster en YAML et en utilisant les directives machineSelectorFiles et machineGlobalConfig.

Exemple :

apiVersion: provisioning.cattle.io/v1
kind: Cluster
spec:
  rkeConfig:
    machineGlobalConfig:
      kube-apiserver-arg:
        - audit-policy-file=<customized-path>/dev-audit-policy.yaml
        - audit-log-path=<customized-path>/dev-audit.logs
    machineSelectorFiles:
      - fileSources:
          - configMap:
              name: ''
            secret:
              items:
                - key: audit-policy
                  path: <customized-path>/dev-audit-policy.yaml
              name: dev-audit-policy
        machineLabelSelector:
          matchLabels:
            rke.cattle.io/control-plane-role: 'true'

Pour plus d’informations sur la configuration des clusters, consultez les pages de référence configuration des clusters RKE2.

Cette fonctionnalité est disponible dans Rancher v2.7.2 et versions ultérieures.

Vous pouvez utiliser machineSelectorFiles pour livrer le fichier de stratégie d’audit aux nœuds de plan de contrôle, et machineGlobalConfig pour définir les options sur kube-apiserver.

En tant que prérequis, vous devez créer un secret ou un configmap pour être la source de la stratégie d’audit.

Le secret ou le configmap doit répondre aux exigences suivantes :

  1. Il doit se trouver dans l’espace de noms fleet-default où l’objet Cluster existe.

  2. Il doit avoir l’annotation rke.cattle.io/object-authorized-for-clusters: <cluster-name1>,<cluster-name2> qui permet aux clusters cibles de l’utiliser.

Le tableau de bord Rancher fournit un formulaire facile à utiliser pour créer le secret ou le configmap.

Exemple :

apiVersion: v1
data:
  audit-policy: >-
    IyBMb2cgYWxsIHJlcXVlc3RzIGF0IHRoZSBNZXRhZGF0YSBsZXZlbC4KYXBpVmVyc2lvbjogYXVkaXQuazhzLmlvL3YxCmtpbmQ6IFBvbGljeQpydWxlczoKLSBsZXZlbDogTWV0YWRhdGE=
kind: Secret
metadata:
  annotations:
    rke.cattle.io/object-authorized-for-clusters: cluster1
  name: <name1>
  namespace: fleet-default

Activez et configurez le journal d’audit en modifiant le cluster en YAML et en utilisant les directives machineSelectorFiles et machineGlobalConfig.

Exemple :

apiVersion: provisioning.cattle.io/v1
kind: Cluster
spec:
  rkeConfig:
    machineGlobalConfig:
      kube-apiserver-arg:
        - audit-policy-file=<customized-path>/dev-audit-policy.yaml
        - audit-log-path=<customized-path>/dev-audit.logs
    machineSelectorFiles:
      - fileSources:
          - configMap:
              name: ''
            secret:
              items:
                - key: audit-policy
                  path: <customized-path>/dev-audit-policy.yaml
              name: dev-audit-policy
        machineLabelSelector:
          matchLabels:
            rke.cattle.io/control-plane-role: 'true'

Pour plus d’informations sur la configuration des clusters, consultez les pages de référence configuration des clusters K3s.