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 différentes sources en mode Autopilot.
- Administrateurs d'identité et de compte qui souhaitent améliorer la stratégie 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é par
défaut. Par exemple, Autopilot rejette la plupart des pods qui définissent le champ spec.securityContext.privileged sur true dans un conteneur. Dans Autopilot, les charges de travail privilégiées sont des charges de travail qui ne répondent pas à ces contraintes par défaut. Par défaut, les nœuds Autopilot d'une Google Cloud
organisation rejettent les charges de travail privilégiées.
Les charges de travail privilégiées spécifiques ne peuvent s'exécuter en mode Autopilot que 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 Google Cloud organisation est compatible avec les listes d'autorisation des partenaires Autopilot et des projets Open Source validés.
Les administrateurs d'organisation peuvent modifier ce comportement par défaut de différentes manières à l'aide du service de règles d'administration :
- Autoriser 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 Google Cloud organisations.
- Autoriser des charges de travail partenaires spécifiques ou des charges de travail Open Source validées.
- Autoriser uniquement des charges de travail privilégiées spécifiques appartenant au client.
- Refuser toutes les charges de travail privilégiées.
Cette approche tout refuser, puis autoriser certaines choses est une bonne pratique de sécurité qui vous permet de contrôler exactement ce qui s'exécute avec des privilèges élevés dans vos clusters GKE.
Vous pouvez contrôler les charges de travail privilégiées en mode Autopilot dans les situations suivantes, par exemple :
- Vous exécutez des charges de travail en mode Autopilot dans des clusters Standard et vous souhaitez que les charges de travail privilégiées s'exécutent sur ces nœuds.
- Vous souhaitez autoriser uniquement un ensemble spécifique de charges de travail privilégiées à s'exécuter dans votre organisation, votre dossier ou votre projet.
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 Google Cloud partenaires 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, tous les clients peuvent 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 la page Partenaires Autopilot. |
| Charges de travail Open Source | Des listes d'autorisation permettent d'exécuter des charges de travail Open Source privilégiées spécifiques en mode Autopilot. GKE valide ces charges de travail. Par défaut, tous les clients peuvent 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 la page 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 disposez de charges de travail privilégiées que vous souhaitez exécuter 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 Google Cloud organisations. Vous utilisez le service de règles d'administration pour ajouter des chemins d'accès aux listes 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 installez 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 Google Cloud organisation vous 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 des nœuds Autopilot comprend les étapes suivantes :
- L'administrateur de l'organisation vérifie que la contrainte de règle d'administration gérée
container.managed.autopilotPrivilegedAdmissionautorise l'installation de listes d'autorisation à partir d'une source spécifique. Pour en savoir plus, consultez la section Contrainte gérée de règle d'administration pour les listes d'autorisation. - 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.
- 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.
- L'administrateur du cluster crée un AllowlistSynchronizer qui référence le chemin d'accès à la liste d'autorisation. L'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 de règle d'administration pour les listes d'autorisation
Par défaut, chaque Google Cloud organisation applique une règle d'administration
basée sur la
container.managed.autopilotPrivilegedAdmission
contrainte gérée.
Cette contrainte définit un ensemble de chemins d'accès à des fichiers ou à des répertoires à partir desquels les clusters GKE peuvent installer des listes d'autorisation. La configuration du cluster doit utiliser les chemins d'accès aux listes d'autorisation à partir des paramètres de cette contrainte.
Par défaut, la contrainte autopilotPrivilegedAdmission autorise l'utilisation de toutes les listes d'autorisation appartenant à des partenaires GKE approuvés et à des projets Open Source. Ce paramètre correspond à la configuration par défaut des clusters GKE, qui peuvent installer n'importe laquelle de ces listes d'autorisation approuvées.
En tant qu'administrateur de règles d'administration, vous pouvez modifier l'ensemble des chemins d'accès aux listes d'autorisation qui peuvent être appliqués aux clusters GKE de votre organisation, de votre dossier ou de votre projet. Par exemple, pour autoriser l'utilisation d'une liste d'autorisation personnalisée appartenant à votre organisation, vous ajoutez ce chemin d'accès à la liste d'autorisation à la contrainte gérée.
Paramètres de contrainte gérée
La contrainte gérée autopilotPrivilegedAdmission présente la spécification suivante :
spec:
rules:
- enforce: true
parameters:
allowAnyGKEPath: ALLOW_GKE_PATHS
allowPaths:
- PATH1
- PATH2
- PATH3
Les champs suivants de la spécification contrôlent l'ensemble des listes d'autorisation que les clusters peuvent utiliser :
allowAnyGKEPath: valeur booléenne qui contrôle si les clusters peuvent utiliser l'ensemble par défaut des chemins d'accès aux listes d'autorisation approuvés par GKE. Ce paramètre accepte les valeurs suivantes :True: les administrateurs de cluster peuvent configurer des clusters sans modifier la configuration de la liste d'autorisation, avec un ou plusieurs chemins d'accès à la liste d'autorisation commençant pargke://, ou avec une chaîne vide pour désactiver toutes les listes d'autorisation du cluster.Trueest la valeur par défaut de ce paramètre.False: les administrateurs de cluster doivent configurer des clusters avec une chaîne vide pour les sources de listes d'autorisation ou avec n'importe quel chemin d'accès à la liste d'autorisation à partir du paramètreallowPaths.
allowPaths: liste des sources de listes d'autorisation approuvées à partir desquelles les administrateurs de cluster peuvent spécifier des valeurs lorsqu'ils configurent un cluster. Vous pouvez spécifier des chemins d'accès à des fichiers de listes d'autorisation spécifiques ou à des répertoires entiers.
Le tableau suivant décrit les résultats de la configuration de ces paramètres de différentes manières :
Valeur allowAnyGKEPath |
Valeur allowPaths |
Résultat |
|---|---|---|
True |
Vide ou non spécifié. | Les administrateurs de cluster peuvent effectuer l'une des actions suivantes lors de la création ou de la modification du cluster :
|
False |
Vide ou non spécifié. | Les administrateurs de cluster doivent spécifier une valeur vide pour la configuration de la liste d'autorisation du cluster configuration. Si les administrateurs de cluster ignorent la configuration du chemin d'accès à la liste d'autorisation, alors la création ou la modification du cluster échoue. |
True |
Des valeurs sont spécifiées. | Les administrateurs de cluster peuvent effectuer l'une des actions suivantes lors de la création ou de la modification du cluster :
|
False |
Des valeurs sont spécifiées. | Les administrateurs de cluster doivent effectuer l'une des actions suivantes lors de la création ou de la modification du 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 la page Limiter 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 disposer de vos propres charges de travail spécialisées qui nécessitent plus de privilèges 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 de 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, vous devez procéder comme suit :
- L'administrateur de votre organisation ajoute les chemins d'accès Cloud Storage à une règle d'administration. Pour en savoir plus, consultez la section À propos de la contrainte gérée de règle d'administration.
- 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 la page 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 aux listes d'autorisation approuvés à la configuration du cluster. Une fois les chemins d'accès ajoutés au cluster, les opérateurs d'application 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 à partir 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 aux listes d'autorisation approuvés, vous devez vous coordonner avec l'administrateur de votre organisation pour identifier ces chemins d'accès. Vous pouvez ensuite spécifier un ou plusieurs des chemins d'accès approuvés dans la configuration du cluster.
Pour en savoir plus sur la configuration des clusters, consultez la page 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 appelée AllowlistSynchronizer. Vous définissez et créez des AllowlistSynchronizers de la même manière que vous créez d'autres ressources Kubernetes telles que 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 des listes d'autorisation à partir de ces chemins d'accès et les maintient à jour. Toutes les 10 minutes, GKE vérifie si des modifications ont été apportées aux fichiers de listes 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 la page Exécuter des charges de travail privilégiées dans Autopilot.
Chemins d'accès aux listes d'autorisation
Lorsque vous configurez la prise en charge des listes d'autorisation dans votre règle d'administration ou vos clusters, vous spécifiez des 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/SELECTORRemplacez les éléments suivants :
REPOSITORY_PATH: chemin d'accès au répertoire contenant les listes d'autorisation pour la charge de travail, par exempleGrafana/alloy. Pour en savoir plus sur les chemins d'accès aux listes d'autorisation pour ces charges de travail, consultez les pages suivantes :SELECTOR: nom d'un fichier spécifique ou caractère*, qui sélectionne tous les fichiers de ce répertoire.
Par exemple, le chemin d'accès suivant sélectionne n'importe quelle liste d'autorisation dans le répertoire
Grafana/alloy:gke://Grafana/alloy/*Charges de travail privilégiées appartenant au client :
gs://DIRECTORY_PATH/SELECTORRemplacez
DIRECTORY_PATHpar le chemin d'accès au répertoire de Cloud Storage contenant vos fichiers de listes d'autorisation. Vous pouvez spécifier plusieurs chemins d'accès.
Vous pouvez spécifier un ou plusieurs des chemins d'accès précédents dans votre règle d'administration ou votre configuration de 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 à partir de n'importe quelle source.
Le tableau suivant décrit la configuration nécessaire dans les règles d'administration ou les clusters pour prendre en charge certains objectifs :
| Objectif | Configuration de la règle d'administration | Configuration du cluster |
|---|---|---|
| Autoriser toutes les WorkloadAllowlists approuvées par GKE | Procédez comme suit :
|
Effectuez l'une des opérations suivantes :
|
| Autoriser uniquement des WorkloadAllowlists approuvées par GKE spécifiques | Procédez comme suit :
|
Spécifiez les chemins d'accès à des WorkloadAllowlists approuvées par GKE spécifiques lorsque vous créez ou mettez à jour un cluster. Une règle d'administration peut limiter les chemins d'accès approuvés par GKE que vous pouvez spécifier. |
| Autoriser uniquement les WorkloadAllowlists gérées par le client | Procédez comme suit :
|
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 d'accès que vous spécifiez doivent se trouver dans le
allowPaths paramètre d'une règle d'administration. |
| Empêcher l'utilisation de WorkloadAllowlists | Procédez comme suit :
|
Définissez une chaîne vide "" comme chemin d'accès approuvé lorsque vous
créez ou mettez à jour un cluster. |
Étape suivante
- Limiter les charges de travail GKE privilégiées dans les organisations.
- Exécuter des charges de travail privilégiées dans Autopilot.