Installer Policy Controller

Cette page vous explique comment installer Policy Controller. Policy Controller 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.

Policy Controller est disponible pour les utilisateurs d'Anthos et de Google Kubernetes Engine (GKE). Pour les utilisateurs de GKE, Policy Controller est une fonctionnalité payante. Pour en savoir plus, consultez la section Tarifs.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Installez et initialisez le SDK Cloud, qui fournit les commandes gcloud, gsutil, kubectl et nomos utilisées dans ces instructions. Si vous utilisez Cloud Shell, le SDK Cloud est pré-installé.

  • Si vous utilisez Anthos Config Management pour la première fois, activez Anthos Config Management.

  • Enregistrez vos clusters dans un parc. Le parc de votre projet fournit un moyen unifié de visualiser et de gérer vos clusters et leurs charges de travail au sein d'Anthos, y compris les clusters situés en dehors de Google Cloud. Les frais d'Anthos s'appliquent uniquement à vos clusters enregistrés.

  • Vous devez disposer d'un cluster exécutant Kubernetes 1.14.x ou version ultérieure. Policy Controller peut sembler s'exécuter sur une version de Kubernetes antérieure à 1.14.x, mais le produit ne se comporte pas correctement.

Installer Policy Controller

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

Console – Anthos

Assurez-vous d'avoir enregistré vos clusters dans un parc avant de continuer.

Pour configurer Policy Controller sur Cloud Console, procédez comme suit :

  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 pour lesquels vous souhaitez activer Policy Controller, puis cliquez sur Configurer.

  3. Cliquez sur l'en-tête Paramètres ACM pour vos clusters.

  4. Sous l'en-tête Policy Controller, cochez la case Activer Policy Controller.

    1. Facultatif : laissez la case Installer la bibliothèque de modèles par défaut cochée pour installer une bibliothèque de modèles de contrainte pour les types de règles courants.
    2. Facultatif : dans le champ Intervalle d'audit, sélectionnez la durée en secondes entre les synchronisations consécutives. La valeur par défaut est de 60 secondes. Si vous définissez l'intervalle d'audit sur 0, l'audit est désactivé.
    3. Facultatif : 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.
    4. Facultatif : Cochez la case Active la possibilité d'utiliser des modèles de contrainte qui font référence aux objets autres que l'objet actuellement évalué pour activer les contraintes référentielles. Pour en savoir plus sur les contraintes référentielles, consultez la section Activer les contraintes référentielles.
  5. Cliquez sur OK. Vous êtes redirigé vers le menu Anthos Config Management.

Console – GKE

Enregistrer vos clusters

Pour utiliser Config Management avec GKE, vous devez d'abord enregistrer les clusters. L'enregistrement de vos clusters leur permet de partager un ensemble commun de configurations et de règles.

Pour enregistrer vos clusters, procédez comme suit:

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

    Accéder à Config Management

    Cette page présente les clusters actuellement enregistrés et configurés, et vous permet de commencer à enregistrer de nouveaux clusters.

  2. Pour démarrer le processus d'enregistrement, cliquez sur Configurer Config Management.

  3. Pour activer l'API Config Management, cliquez sur Suivant.

  4. Sur la page Sélectionner des clusters enregistrés pour Config Management, localisez le tableau Clusters non enregistrés de ce projet, puis recherchez le cluster que vous souhaitez enregistrer.

  5. Cliquez sur Enregistrer en regard du cluster que vous souhaitez enregistrer.

    Une fois le cluster enregistré, il apparaît dans la table Sélectionner des clusters enregistrés pour Config Management.

Installer Policy Controller

Pour installer Policy Controller sur Cloud Console, procédez comme suit :

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

    Accéder à Config Management

  2. Cliquez sur Nouvelle configuration.

  3. Sélectionnez les clusters enregistrés sur lesquels vous souhaitez activer Policy Controller, puis cliquez sur Suivant.

  4. Dans la liste déroulante Version, sélectionnez la version d'Anthos Config Management que vous souhaitez utiliser. La valeur par défaut est la version actuelle.

  5. Si vous ne souhaitez pas installer Config Sync, décochez la case Activer Config Sync, puis cliquez sur Suivant.

  6. Sur la page Policy Controller, laissez la case Activer Policy Controller cochée.

  7. Facultatif: Pour installer une bibliothèque de modèles de contrainte pour les types de règles courants, laissez la case Installer la bibliothèque de modèles par défaut cochée.

  8. Facultatif : dans le champ Intervalle d'audit, sélectionnez la durée en secondes entre les synchronisations consécutives. La valeur par défaut est de 60 secondes. Si vous définissez l'intervalle d'audit sur 0, l'audit est désactivé.

  9. (Facultatif) Dans le champ Exempt namespaces (Espaces de noms exemptés), indiquez une liste d'espaces de noms. 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.

  10. Facultatif: Pour activer les contraintes référentielles, cochez la case Activer la possibilité d'utiliser des modèles de contraintes faisant référence à des objets autres que celui en cours d'évaluation.

  11. Cliquez sur Terminé. Vous êtes redirigé vers la page Anthos Config Management.

    Après quelques minutes, vous devriez voir Installé dans la colonne d'état Policy Controller à côté des clusters que vous avez configurés.

gcloud

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

Assurez-vous d'avoir enregistré vos clusters dans un parc avant de continuer.

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

  1. Définissez la valeur de enabled dans l'objet spec.policyController sur true dans le fichier de configuration gcloud :

    # apply-spec.yaml
    
    applySpecVersion: 1
    spec:
      policyController:
        # Set to true to install and enable Policy Controller
        enabled: true
        # Uncomment to prevent the template library from being installed
        # templateLibraryInstalled: false
        # Uncomment to enable support for referential constraints
        # referentialRulesEnabled: true
        # Uncomment to disable audit, adjust value to set audit interval
        # auditIntervalSeconds: 0
        # Uncomment to log all denies and dryrun failures
        # logDeniesEnabled: true
        # Uncomment to exempt namespaces
        # exemptableNamespaces: ["namespace-name"]
        # Uncomment to enable mutation (preview feature)
        # mutation:
        #   # enabled: true
      # ...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 le fichier apply-spec.yaml :

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

    Remplacez l'élément suivant :

    • CLUSTER_NAME : ajoutez le cluster enregistré auquel vous souhaitez appliquer cette configuration.
    • CONFIG_YAML : ajoutez le chemin d'accès à votre fichier apply-spec.yaml.
    • PROJECT_ID : ajoutez l'ID de votre projet.

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

Installer Policy Controller sur un cluster privé

Si vous utilisez une version antérieure à la version 1.8.0 et que vous installez Policy Controller sur un cluster privé dans Google Kubernetes Engine (GKE), vous devez prendre des mesures supplémentaires pour terminer votre installation. Dans les clusters privés, le pare-feu empêche le plan de contrôle d'atteindre les nœuds du port 8443, où le plan de contrôle tente de se connecter à Policy Controller. Vous pouvez créer une règle de pare-feu pour que le plan de contrôle puisse atteindre le port 8443 (ou tout autre port personnalisé). Vous pouvez également exécuter votre pod sur le port privilégié 443. Pour plus d'informations, consultez la section Exécution sur des nœuds de cluster GKE privés dans la documentation GateKeeper.

Vérifier l'installation

Une fois Policy Controller installé, vous pouvez vérifier que l'installation s'est bien déroulée.

Console – Anthos

Procédez comme suit :

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

    Accéder à la page "Anthos Config Management"

  2. Dans le tableau du cluster, affichez la colonne État du Policy Controller. Une installation réussie présente l'état installé.

Console – GKE

Procédez comme suit :

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

    Accéder à Config Management

  2. Dans le tableau du cluster, affichez la colonne État du Policy Controller. Une installation réussie présente l'état installé.

gcloud

Exécutez la commande suivante :

gcloud beta container hub config-management status \
    --project=PROJECT_ID

Remplacez PROJECT_ID par l'ID de votre projet.

Un résultat semblable aux lignes suivantes doit s'afficher :

Name          Status  Last_Synced_Token  Sync_Branch  Last_Synced_Time      Policy_Controller
CLUSTER_NAME  SYNCED  a687c2c            1.0.0        2021-02-17T00:15:55Z  INSTALLED

Une installation réussie affiche l'état INSTALLED dans la colonne Policy Controller.

Vérifier l'installation de la bibliothèque de modèles de contraintes

Lorsque vous installez Policy Controller, la bibliothèque de modèles de contraintes est installée par défaut. Cette installation 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

Un résultat semblable aux lignes suivantes doit s'afficher :

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.

Interactions de Policy Controller avec Anthos Config Management

Anthos Config Management gère les ressources essentielles à l'exécution de Policy Controller. Pour éviter les conflits entre Anthos Config Management et Policy Controller, soyez conscient de ce qui est placé dans le dépôt Config Sync.

Lorsque vous utilisez Policy Controller, posez-vous les questions suivantes :

  • 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 contraintes est désactivée.

  • Si vous souhaitez synchroniser la ressource de configuration stockée dans l'espace de noms gatekeeper-system, celui-ci doit être indéfini dans le dépôt ou correspondre à la configuration qu'Anthos Config Management doit installer.

  • Si l'espace de noms gatekeeper-system est supprimé du dépôt source de référence, Anthos Config Management risque de ne pas pouvoir le récupérer. 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 en savoir plus sur la désinstallation ou la réinstallation des modèles de contraintes, les contraintes associées ou la bibliothèque de modèles de contraintes, consultez la page 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 en savoir plus, consultez la page Exclure des espaces de noms de Policy Controller.

mutation des ressources

Policy Controller agit également comme un webhook de mutation (fonctionnalité d'aperçu). Pour en savoir plus, consultez notre documentation sur la mutation.

Afficher la version de Policy Controller

Pour connaître la version de Gatekeeper que Policy Controller utilise, affichez le tag d'image en exécutant la commande suivante :

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:VERIOSN_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 et les versions binaires nomos correspondantes dans la matrice des versions.

Mettre à niveau Policy Controller

Policy Controller est mis à niveau chaque fois que vous mettez à niveau Anthos Config Management.

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 que vous souhaitez mettre à niveau.

  3. Configurer

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

  5. Dans la liste déroulante Version, sélectionnez la version vers laquelle vous souhaitez effectuer la mise à niveau.

  6. 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 que vous souhaitez mettre à niveau, cliquez sur Modifier.

  3. Dans la liste déroulante Version, sélectionnez la version vers laquelle vous souhaitez effectuer la mise à niveau.

  4. Cliquez sur OK.

gcloud

Exécutez la commande suivante :

gcloud beta container hub config-management upgrade \
    --project=PROJECT_ID \
    --membership=CLUSTER_NAME

Remplacez l'élément suivant :

  • CLUSTER_NAME : nom du cluster enregistré que vous souhaitez mettre à niveau.
  • PROJECT_ID : ID de votre projet.

Désinstaller Policy Controller

Suivez ces étapes pour désinstaller Policy Controller de vos clusters.

Console – Anthos

Pour désactiver Policy Controller sur vos clusters, effectuez les tâches suivantes :

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

    Accéder à la page "Anthos Config Management"

  2. Sélectionnez les clusters pour lesquels vous souhaitez désactiver Policy Controller.

  3. Configurer

  4. Cliquez sur l'en-tête Paramètres ACM pour vos clusters.

  5. Dans la section Policy Controller, décochez la case Policy Controller.

  6. Cliquez sur OK.

Console – GKE

Pour désactiver Policy Controller sur vos clusters, effectuez les tâches suivantes :

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

    Accéder à Config Management

  2. À côté du cluster sur lequel vous souhaitez désactiver Policy Controller, cliquez sur Modifier.

  3. Pour accéder à la page de configuration de Policy Controller, cliquez sur Suivant.

  4. Décochez la case Activer Policy Controller.

  5. Cliquez sur Terminé.

gcloud

Pour désinstaller Policy Controller, procédez comme suit :

  1. Modifiez la configuration d'Anthos Config Management dans votre fichier apply-spec.yaml et définissez policyController.enabled sur false.

  2. Appliquez les modifications dans le fichier apply-spec.yaml :

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

    Remplacez l'élément suivant :

    • CLUSTER_NAME : ajoutez le cluster enregistré auquel vous souhaitez appliquer cette configuration.
    • CONFIG_YAML : ajoutez le chemin d'accès à votre fichier apply-spec.yaml.
    • PROJECT_ID : ajoutez l'ID de votre projet.

Une fois qu'Anthos Config Management supprime l'outil de finalisation policycontroller.configmanagement.gke.io, la désinstallation est terminée.

Si vous souhaitez désinstaller complètement Anthos Config Management, consultez la section Désinstaller Anthos Config Management.

Étape suivante