Installer Policy Controller

Cette rubrique vous explique comment installer Policy Controller, un contrôleur d'admission Kubernetes qui vérifie, audite et applique la conformité de vos clusters aux règles liées à la sécurité, aux réglementations ou aux règles métier.

Avant de commencer

  • Vous devez disposer des droits d'accès à Anthos pour installer Policy Controller à l'aide d'Anthos Config Management.

  • Vous avez besoin d'un cluster exécutant GKE v1.14.x ou version ultérieure avec Anthos Config Management déjà installé.

Installer Policy Controller à l'aide d'Anthos Config Management

Procédez comme suit pour configurer Anthos Config Management afin d'installer le contrôleur d'admission dynamique Policy Controller dans le cluster.

Par défaut, Policy Controller installe une bibliothèque de modèles de contrainte pour les types de règles courants. Pour ignorer l'installation des modèles de contrainte, supprimez les commentaires de la ligne commençant par templateLibraryInstalled dans le fichier manifeste.

  1. Remplacez la valeur de enabled dans l'objet spec.policyController par true dans le fichier de configuration pour l'opérateur :

    # config-management.yaml
    
    apiVersion: configmanagement.gke.io/v1
    kind: ConfigManagement
    metadata:
      name: config-management
    spec:
      # Set to true to install and enable Policy Controller
      policyController:
        enabled: true
        # Uncomment to prevent the template library from being installed
        # templateLibraryInstalled: false
        # Uncomment to disable audit, adjust value to set audit interval
        # auditIntervalSeconds: 0
    
      # ...other fields...
    

    La prise en charge des contraintes référentielles est désactivée par défaut. Avant de l'activer, assurez-vous de bien comprendre les mises en garde concernant la cohérence à terme.

  2. Appliquez la configuration à l'aide de kubectl apply.

    kubectl apply -f config-management.yaml
    

Le pod est créé et Policy Controller commence à vérifier et à appliquer les contraintes.

Vérifier l'installation

Si Policy Controller est installé correctement, son pod s'exécute. Le pod peut redémarrer plusieurs fois avant d'être disponible.

kubectl get pods -n gatekeeper-system

Exemple de résultat :

NAME                              READY   STATUS    RESTARTS   AGE
gatekeeper-controller-manager-0   1/1     Running   1          53s

La bibliothèque de modèles de contraintes est installée par défaut. Cela peut prendre plusieurs minutes. Pour vérifier que la bibliothèque de modèles est installée, répertoriez tous les objets ConstraintTemplate :

kubectl get constrainttemplates

Exemple de résultat :

NAME                                      AGE
k8sallowedrepos                           84s
k8scontainerlimits                        84s
k8spspallowprivilegeescalationcontainer   84s
...[OUTPUT TRUNCATED]...

Lorsqu'un modèle de contrainte individuelle est installé correctement, son champ status.created est true.

Policy Controller et Anthos Config Management

Les ressources essentielles à l'exécution de Policy Controller sont gérées par Config Management Operator. Pour éviter les conflits entre l'opérateur et Policy Controller, tenez compte de ce qui est placé dans le dépôt Anthos Config Management.

Quelques sujets de préoccupation :

  • Vous ne pouvez pas synchroniser un modèle de contrainte qui fait également partie de la bibliothèque de modèles, sauf si la bibliothèque de modèles de contrainte est désactivée.

  • Si vous souhaitez synchroniser la ressource de configuration stockée dans l'espace de noms gatekeeper-system, l'espace de noms doit être non défini dans le dépôt ou correspondre à la configuration que l'opérateur souhaite installer.

  • Si l'espace de noms gatekeeper-system est supprimé du dépôt source de référence, l'opérateur ne sera peut-être pas en mesure de récupérer les données. Pour récupérer les données, supprimez la validation de configuration du webhook pour Policy Controller.

Gérer la bibliothèque de modèles de contrainte

Pour plus d'informations sur la désinstallation ou la réinstallation des modèles de contraintes, leurs contraintes associées ou la bibliothèque de modèles de contraintes, consulter la section Créer des contraintes.

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

Vous pouvez configurer Policy Controller pour ignorer des objets dans un espace de noms. Pour plus d'informations, consultez la section Exclure des espaces de noms de Policy Controller.

Afficher la version de Policy Controller

Policy Controller est conçu à partir de Gatekeeper, un projet Open Source. Pour connaître la version de Policy Controller que Gatekeeper utilise, affichez le tag d'image :

kubectl get deployments -n gatekeeper-system gatekeeper-controller-manager \
  -o="jsonpath={.spec.template.spec.containers[0].image}"

À partir d'Anthos Config Management version 1.3.2 ou ultérieure, le tag Git (ou le hachage) utilisé pour créer Gatekeeper ainsi que le numéro de version Anthos Config Management sont inclus dans le tag d'image comme suit :

.../gatekeeper:version-number-git-tag.gbuild-number

Par exemple, pour l'image suivante :

gcr.io/config-management-release/gatekeeper:anthos1.3.2-480baac.g0
  • anthos1.3.2 est le numéro de version.
  • 480baac est le tag Git.
  • 0 est le numéro de build.

Vous pouvez également afficher la liste de toutes les versions Anthos Config Management avec les fichiers manifestes, les installations d'installation et les versions binaires nomos correspondantes dans la matrice des versions.

Désinstaller Policy Controller

Pour désinstaller le contrôleur de règles, modifiez la configuration de l'opérateur dans config-management.yaml et définissez policyController.enabled sur false. Une fois que l'opérateur a supprimé le finaliseur policycontroller.configmanagement.gke.io, la désinstallation est terminée.

Si vous souhaitez désinstaller complètement Config Management, consultez la section Désinstaller l'opérateur d'un cluster.

Étape suivante