À propos de l'admission des charges de travail privilégiées en mode Autopilot

Vous pouvez contrôler les charges de travail privilégiées qui peuvent s'exécuter en mode Google Kubernetes Engine (GKE) Autopilot à l'aide de listes d'autorisation et de règles. Ce document décrit les contraintes par défaut qu'Autopilot applique aux charges de travail, les types de charges de travail privilégiées que vous pouvez exécuter en mode Autopilot et les méthodes de contrôle de l'admission des charges de travail privilégiées.

Ce document s'adresse aux personnes suivantes :

  • Administrateurs et opérateurs de plate-forme qui souhaitent exécuter des charges de travail GKE privilégiées provenant de diverses sources en mode Autopilot.
  • Administrateurs d'identité et de compte qui souhaitent améliorer la posture de sécurité de leur organisation en bloquant toutes les charges de travail privilégiées, à l'exception de certaines charges de travail spécifiques.

À propos des charges de travail privilégiées en mode Autopilot

Pour améliorer votre stratégie de sécurité, les clusters et les nœuds en mode Autopilot appliquent des contraintes de sécurité spécifiques par défaut. Par exemple, Autopilot rejette la plupart des pods qui définissent le champ spec.securityContext.privileged sur true dans un conteneur. Les charges de travail privilégiées dans Autopilot sont celles qui ne respectent pas ces contraintes par défaut. Par défaut, les nœuds Autopilot d'une organisation Google Cloudrejettent les charges de travail privilégiées.

Certaines charges de travail privilégiées peuvent s'exécuter en mode Autopilot uniquement si le cluster dispose de listes d'autorisation correspondant à ces charges de travail. Lorsqu'un administrateur de cluster crée ou modifie un cluster, il peut spécifier des chemins d'accès aux listes d'autorisation que le cluster peut exécuter. Par défaut, chaque organisation Google Cloud accepte les listes d'autorisation des partenaires Autopilot et des projets Open Source validés.

Les administrateurs de l'organisation peuvent modifier ce comportement par défaut de différentes manières à l'aide du service de règles de l'organisation :

  • Autorisez toutes les charges de travail des partenaires GKE Autopilot et les charges de travail Open Source validées. Il s'agit du comportement par défaut dans toutes les organisationsGoogle Cloud .
  • Autorisez des charges de travail partenaires spécifiques ou des charges de travail Open Source validées.
  • Autorisez uniquement les charges de travail privilégiées spécifiques appartenant au client.
  • Refusez toutes les charges de travail privilégiées.

Cette approche tout refuser, puis autoriser certains éléments est une bonne pratique de sécurité qui vous permet de contrôler précisément ce qui s'exécute avec des droits élevés dans vos clusters GKE.

Vous pouvez contrôler les charges de travail privilégiées en mode Autopilot dans les situations suivantes :

Sources des charges de travail Autopilot privilégiées

Le tableau suivant décrit les types de charges de travail privilégiées que vous pouvez exécuter dans Autopilot :

Types de charges de travail privilégiées
Charges de travail partenaires Autopilot

Un sous-ensemble de partenaires Google Cloud fournit des charges de travail privilégiées pour le mode Autopilot. GKE valide ces charges de travail partenaires. Ces charges de travail sont disponibles pour tous les clients. Par défaut, tout client peut installer les listes d'autorisation correspondantes dans n'importe quel cluster Autopilot ou Standard.

Pour en savoir plus sur les charges de travail partenaires disponibles, consultez Partenaires Autopilot.

Charges de travail Open Source

Certaines charges de travail Open Source privilégiées disposent de listes d'autorisation qui vous permettent de les exécuter en mode Autopilot. GKE valide ces charges de travail. Par défaut, tout client peut installer les listes d'autorisation correspondantes dans n'importe quel cluster Autopilot ou Standard.

Pour en savoir plus sur les charges de travail Open Source disponibles, consultez Exécuter des charges de travail Open Source privilégiées sur GKE Autopilot.

Charges de travail appartenant au client

Si vous êtes un client éligible et que vous souhaitez exécuter des charges de travail privilégiées dans des nœuds Autopilot, vous pouvez créer des listes d'autorisation pour ces charges de travail. Cette fonctionnalité est désactivée par défaut pour toutes les organisations Google Cloud . Vous utilisez le service de règles d'administration pour ajouter des chemins d'accès à la liste d'autorisation pour des charges de travail spécifiques, puis vous mettez à jour les clusters pour installer ces listes d'autorisation.

Pour en savoir plus, consultez la section Charges de travail privilégiées appartenant au client.

Fonctionnement du contrôle d'admission des charges de travail privilégiées

Pour autoriser l'exécution de charges de travail privilégiées spécifiques dans vos nœuds Autopilot, vous devez installer des listes d'autorisation correspondant à chaque charge de travail. Ces listes d'autorisation sont des ressources personnalisées Kubernetes WorkloadAllowlist. GKE valide les détails de la charge de travail par rapport à toutes les WorkloadAllowlists du cluster et n'autorise l'admission que si les détails correspondent. Par défaut, chaque cluster Autopilot ou Standard d'une organisation Google Cloudvous permet d'installer des WorkloadAllowlists pour les charges de travail partenaires Autopilot et pour les charges de travail Open Source.

De manière générale, l'exécution de charges de travail privilégiées dans les nœuds Autopilot implique les étapes suivantes :

  1. L'administrateur de l'organisation vérifie que la contrainte de règle d'administration container.managed.autopilotPrivilegedAdmission gérée autorise l'installation de listes d'autorisation à partir d'une source spécifique. Pour en savoir plus, consultez la section Contrainte gérée des règles d'administration pour les listes d'autorisation.
  2. Pour les charges de travail privilégiées appartenant au client, l'administrateur de la plate-forme crée des listes d'autorisation correspondant aux charges de travail privilégiées. Pour en savoir plus, consultez la section Charges de travail privilégiées appartenant au client.
  3. L'administrateur du cluster configure un cluster Autopilot ou Standard pour autoriser l'installation de listes d'autorisation à partir d'une source spécifique. Pour en savoir plus, consultez la section Configuration du cluster.
  4. L'administrateur du cluster crée un AllowlistSynchronizer qui référence le chemin d'accès à la liste d'autorisation. AllowlistSynchronizer installe la liste d'autorisation et la maintient à jour. Pour en savoir plus, consultez la section Installation de la liste d'autorisation.

Une fois ces étapes terminées, un opérateur d'application peut déployer la charge de travail privilégiée dans le cluster.

Contrainte gérée par les règles d'administration pour les listes d'autorisation

Par défaut, chaque organisation Google Cloud applique une règle d'administration basée sur la contrainte géréecontainer.managed.autopilotPrivilegedAdmission.

Cette contrainte gérée comporte les paramètres suivants :

  • allowAnyGKEPath : valeur booléenne qui permet aux administrateurs de cluster de configurer des clusters pour l'installation de listes d'autorisation à partir de chemins d'accès ayant le préfixe gke://. Les valeurs suivantes sont acceptées :

    • true : permet aux administrateurs de cluster de configurer des clusters avec les sources de liste d'autorisation par défaut de GKE, avec n'importe quel chemin d'accès à la liste d'autorisation commençant par gke:// ou avec une chaîne vide (qui empêche toutes les listes d'autorisation). Il s'agit de la valeur par défaut du paramètre allowAnyGKEPath.
    • false : exige que les administrateurs de cluster configurent les clusters avec une chaîne vide pour les sources de la liste d'autorisation ou avec des chemins d'accès à la liste d'autorisation à partir du paramètre allowPaths.
  • allowPaths : liste des sources autorisées approuvées à partir desquelles les administrateurs de cluster peuvent spécifier des valeurs lorsqu'ils configurent un cluster.

En tant qu'administrateur d'organisation, vous pouvez mettre à jour les paramètres de ce règlement pour contrôler les charges de travail privilégiées qui peuvent s'exécuter dans votre organisation Google Cloud. Par exemple, la configuration de règle d'administration suivante permet aux administrateurs de cluster d'installer des listes d'autorisation uniquement pour une charge de travail partenaire Google Cloudspécifique :

name: organizations/ORGANIZATION_ID/policies/container.managed.autopilotPrivilegedAdmission
spec:
  rules:
  - enforce: true
    parameters:
      allowAnyGKEPath: ALLOW_GKE_PATHS
      allowPaths:
      - PATH1
      - PATH2
      - PATH3

Remplacez les éléments suivants :

  • ALLOW_GKE_PATHS : indique s'il faut autoriser les listes d'autorisation approuvées par GKE. Spécifiez une des valeurs suivantes :

    • True : autorise la configuration du cluster avec n'importe quelle charge de travail partenaire GKE ou charge de travail Open Source validée. Il s'agit de la valeur par défaut.
    • False : autorise la configuration du cluster avec uniquement les chemins d'accès dans le champ allowPaths.
  • PATH1, PATH2, ... : liste des chemins d'accès aux sources de liste d'autorisation approuvées que les administrateurs de cluster peuvent utiliser lorsqu'ils configurent des clusters. Par défaut, ce paramètre est vide. Si vous spécifiez des chemins d'accès pour ce paramètre, les administrateurs de cluster doivent en spécifier zéro ou plusieurs lorsqu'ils créent ou mettent à jour un cluster.

Pour en savoir plus sur le contrôle de l'admission des charges de travail privilégiées dans les règles d'administration, consultez Restreindre les charges de travail GKE privilégiées dans les organisations.

Charges de travail privilégiées appartenant au client

En tant que client GKE, vous pouvez avoir vos propres charges de travail spécialisées qui nécessitent plus de droits d'accès dans le cluster que ne le permettent les contraintes de sécurité Autopilot par défaut. Dans GKE 1.35 et versions ultérieures, vous pouvez exempter ces charges de travail des contraintes Autopilot par défaut en créant des listes d'autorisation.

Une liste d'autorisation est un fichier YAML qui définit une ressource personnalisée Kubernetes WorkloadAllowlist. La spécification d'une WorkloadAllowlist correspond à différents champs de la spécification de pod Kubernetes. Lorsque vous définissez une WorkloadAllowlist, vous faites correspondre les valeurs de la WorkloadAllowlist aux champs correspondants dans la spécification de votre charge de travail privilégiée. Vous stockez les fichiers YAML dans un bucket Cloud Storage.

Pour installer ces listes d'autorisation appartenant au client dans un cluster, procédez comme suit :

  1. L'administrateur de votre organisation ajoute les chemins Cloud Storage à une règle d'administration. Pour en savoir plus, consultez la section À propos de la contrainte gérée par les règles d'administration.
  2. Vous ajoutez les chemins d'accès Cloud Storage à une configuration de cluster. Pour en savoir plus, consultez la section Configuration du cluster.

Pour en savoir plus sur la création de vos propres WorkloadAllowlists, consultez Créer des listes d'autorisation pour les charges de travail Autopilot privilégiées.

Configuration du cluster

Pour exécuter une charge de travail privilégiée en mode Autopilot, un administrateur de cluster ajoute un ou plusieurs chemins d'accès approuvés à la configuration du cluster. Une fois que vous avez ajouté les chemins d'accès au cluster, les opérateurs d'applications peuvent installer les listes d'autorisation et les charges de travail privilégiées correspondantes dans le cluster.

Par défaut, vous pouvez installer des listes d'autorisation provenant de partenaires Autopilot et de projets Open Source approuvés. Cet ensemble par défaut de sources approuvées pour les listes d'autorisation peut changer en raison d'une règle d'administration, comme décrit dans la section précédente. Si une règle d'administration contrôle les chemins d'accès autorisés, vous devez contacter l'administrateur de votre organisation pour les identifier. Vous pouvez ensuite spécifier un ou plusieurs des chemins approuvés dans la configuration du cluster.

Pour en savoir plus sur la configuration des clusters, consultez Exécuter des charges de travail privilégiées dans Autopilot.

Installation de la liste d'autorisation

Pour installer une liste d'autorisation à partir d'une source approuvée dans votre cluster, vous utilisez une ressource personnalisée Kubernetes nommée AllowlistSynchronizer. Vous définissez et créez des AllowlistSynchronizers de la même manière que vous créez d'autres ressources Kubernetes, comme des pods et des déploiements. Chaque AllowlistSynchronizer comporte une liste de chemins d'accès aux listes d'autorisation que vous souhaitez installer dans le cluster.

Lorsque vous créez un AllowlistSynchronizer, GKE installe les listes d'autorisation à partir de ces chemins d'accès et les tient à jour. Toutes les 10 minutes, GKE vérifie si des modifications ont été apportées aux fichiers de la liste d'autorisation. Si une mise à jour existe, le synchroniseur installe la liste d'autorisation mise à jour dans le cluster.

Une fois que GKE a installé une liste d'autorisation basée sur un AllowlistSynchronizer, vous pouvez créer la charge de travail privilégiée correspondante dans le cluster.

Pour en savoir plus sur l'installation de listes d'autorisation dans un cluster, consultez Exécuter des charges de travail privilégiées dans Autopilot.

Chemins d'accès à ajouter à la liste d'autorisation

Lorsque vous configurez la prise en charge de la liste d'autorisation dans la règle ou les clusters de votre organisation, vous spécifiez les chemins d'accès à une ou plusieurs WorkloadAllowlists que vous avez approuvées pour l'installation. La syntaxe de ces chemins d'accès dépend de la personne qui a créé la WorkloadAllowlist, comme suit :

  • Partenaires Autopilot spécifiques et projets Open Source approuvés :

    gke://REPOSITORY_PATH/SELECTOR
    

    Remplacez les éléments suivants :

    Par exemple, le chemin d'accès suivant sélectionne toutes les listes d'autorisation du répertoire Grafana/alloy :

    gke://Grafana/alloy/*
    
  • Charges de travail privilégiées appartenant au client :

    gs://DIRECTORY_PATH/SELECTOR
    

    Remplacez DIRECTORY_PATH par le chemin d'accès au répertoire dans Cloud Storage qui contient vos fichiers de liste d'autorisation. Vous pouvez spécifier plusieurs chemins.

Vous pouvez spécifier un ou plusieurs des chemins d'accès précédents dans la règle d'administration de votre organisation ou la configuration de votre cluster. Par exemple, vous pouvez ajouter des charges de travail partenaires GKE et des charges de travail appartenant au client à la même configuration. Vous pouvez également utiliser le caractère * pour sélectionner toutes les listes d'autorisation. Par exemple, gke://* sélectionne n'importe quelle liste d'autorisation approuvée par GKE, quelle que soit la source.

Le tableau suivant décrit la configuration requise dans les règles d'administration ou les clusters pour atteindre certains objectifs :

Objectif Configurer des règles d'administration Configuration du cluster
Autoriser toutes les WorkloadAllowlists approuvées par GKE Procédez comme suit :
  1. Définissez le paramètre allowAnyGKEPath sur la valeur par défaut True.
  2. Laissez le paramètre allowPaths vide.
Effectuez l'une des opérations suivantes :
  • Ne configurez pas de listes d'autorisation pour votre cluster. Par défaut, tous les clusters autorisent l'installation de listes d'autorisation de charge de travail approuvées par GKE.
  • Spécifiez uniquement gke://* comme chemin d'accès approuvé lorsque vous configurez des listes d'autorisation pour votre cluster.
Autoriser uniquement des listes d'autorisation de charges de travail spécifiques approuvées par GKE Procédez comme suit :
  1. Définissez le paramètre allowAnyGKEPath sur False.
  2. Spécifiez les chemins d'accès aux WorkloadAllowlists spécifiques approuvées par GKE dans le paramètre allowPaths.
Spécifiez les chemins d'accès aux WorkloadAllowlists spécifiques approuvées par GKE lorsque vous créez ou mettez à jour un cluster. Une règle d'administration peut restreindre les chemins approuvés par GKE que vous pouvez spécifier.
Autoriser uniquement les listes d'autorisation de charges de travail gérées par le client Procédez comme suit :
  1. Définissez le paramètre allowAnyGKEPath sur False.
  2. Spécifiez les chemins d'accès aux listes d'autorisation de charge de travail gérées par le client dans le paramètre allowPaths.
Spécifiez les chemins d'accès aux WorkloadAllowlists gérées par le client lorsque vous créez ou mettez à jour un cluster. Les chemins que vous spécifiez doivent figurer dans le paramètre allowPaths d'une règle d'administration.
Empêcher l'utilisation de WorkloadAllowlists Procédez comme suit :
  1. Définissez le paramètre allowAnyGKEPath sur False.
  2. Laissez le paramètre allowPaths vide.
Définissez une chaîne vide "" comme chemin approuvé lorsque vous créez ou mettez à jour un cluster.

Étapes suivantes