Exclure les espaces de noms du webhook d'admission de Policy Controller

Cette page explique comment configurer les espaces de noms exemptables. Les espaces de noms exemptés suppriment un espace de noms de l'application forcée du webhook d'admission avec Policy Controller, mais les violations sont toujours signalées dans audit. Si vous ne configurez aucun espace de noms, seul l'espace de noms gatekeeper-system est exempté de l'application forcée.

Avant de commencer

Pour suivre les commandes décrites sur cette page, installez Policy Controller sur votre cluster. Cependant, vous pouvez également activer les espaces de noms exemptables lors de la première installation de Policy Controller.

Configurer des espaces de noms exemptables

La configuration d'un espace de noms exemptable vous permet d'appliquer le libellé admission.gatekeeper.sh/ignore. Si vous supprimez ultérieurement un espace de noms exemptable, Policy Controller ne supprimera pas l'application de ce libellé pour cet espace de noms.

Exempter des espaces de noms de l'application forcée

Avant de pouvoir appliquer le libellé admission.gatekeeper.sh/ignore, vous devez ajouter le nom de l'espace de noms lorsque vous configurez Policy Controller.

Console – Anthos

  1. Dans Cloud Console, accédez à la page Anthos Config Management.

    Accéder à la page "Anthos Config Management"

  2. Sélectionnez les clusters enregistrés sur lesquels vous souhaitez activer cette fonctionnalité, puis cliquez sur Configurer.

  3. Cliquez sur Paramètres ACM pour vos clusters.

  4. Dans le champ Exempter les espaces de noms, fournissez la liste des espaces de noms valides. Les objets de ces espaces de noms sont ignorés par toutes les règles. Les espaces de noms n'ont pas besoin d'exister actuellement.

  5. Cliquez sur OK.

Console – GKE

  1. Dans Cloud Console, accédez à la page Anthos Config Management.

    Accéder à Config Management

  2. À côté du cluster sur lequel vous souhaitez activer la fonctionnalité, cliquez sur Modifier.

  3. Dans le menu de gauche, cliquez sur Policy Controller.

  4. Dans le champ Exempter les espaces de noms, fournissez la liste des espaces de noms valides. Les objets de ces espaces de noms sont ignorés par toutes les règles. Les espaces de noms n'ont pas besoin d'exister actuellement.

  5. Cliquez sur Terminé.

gcloud

  1. Pour qu'un espace de noms soit exempté de l'application forcée, ajoutez son nom dans spec.policyController.exemptableNamespaces:

    # apply-spec.yaml
    
    applySpecVersion: 1
    spec:
      # Set to true to install and enable Policy Controller
      policyController:
        enabled: true
        exemptableNamespaces: ["NAMESPACE_NAME"]
    ...
    

    Vous pouvez également exempter plusieurs espaces de noms. Par exemple, pour exclure les espaces de noms not-applicable et also-not-applicable, vous devez appliquer le fichier manifeste suivant:

    # apply-spec.yaml
    
    applySpecVersion: 1
    spec:
      # Set to true to install and enable Policy Controller
      policyController:
        enabled: true
        exemptableNamespaces: ["not-applicable","also-not-applicable"]
    ...
    
  2. Appliquez les modifications au fichier apply-spec.yaml:

     gcloud beta container hub config-management apply \
         --membership=MEMBERSHIP_NAME \
         --config=CONFIG_YAML \
         --project=PROJECT_ID
    

    Remplacez l'élément suivant :

    • MEMBERSHIP_NAME : ajoutez le cluster enregistré auquel vous souhaitez appliquer cette configuration. Si vous avez enregistré le cluster dans Google Cloud Console, le nom de l'appartenance est identique à celui de votre cluster.
    • CONFIG_YAML : ajoutez le chemin d'accès à votre fichier apply-spec.yaml.
    • PROJECT_ID : ajoutez l'ID de votre projet.

Ajouter un libellé à l'espace de noms

Une fois la fonctionnalité activée, attribuez un libellé à vos espaces de noms pour que le webhook d'admission de Policy Controller n'applique pas leur contenu:

kubectl label namespace NAMESPACE_NAME "admission.gatekeeper.sh/ignore=true"