Cette page explique comment utiliser des tags pour gérer vos clusters Google Kubernetes Engine (GKE) et appliquer de manière conditionnelle des stratégies Identity and Access Management aux nœuds.
Présentation
Les tags sont des paires clé/valeur qui vous permettent d'annoter et de gérer vos ressources Google Cloud au niveau de l'organisation ou du projet. Vous pouvez utiliser des tags pour organiser vos ressources et appliquer des stratégies de manière conditionnelle, telles que des pare-feu ou des stratégies IAM. Les tags sont compatibles avec le contrôle des accès IAM, qui vous permet de définir qui peut associer, créer, mettre à jour ou supprimer des tags.
Cas d'utilisation des tags dans GKE
Vous pouvez utiliser des tags dans GKE dans les situations suivantes :
- Appliquez des règles de pare-feu réseau à des nœuds spécifiques de manière conditionnelle. Par exemple, refusez le trafic entrant provenant du réseau Internet public vers tous les nœuds d'un cluster dans des environnements de préproduction ou de test. Pour obtenir des instructions, consultez la section Appliquer de manière sélective les stratégies de pare-feu réseau dans GKE.
- Accordez des rôles IAM de manière conditionnelle en fonction de tags. Par exemple, accordez automatiquement aux sous-traitants l'accès à des environnements spécifiques qui ne seraient normalement disponibles que pour les employés à temps plein. Pour obtenir des instructions, consultez le reste de ce document.
- Auditez et analysez les informations de facturation en fonction des tags appliqués au niveau du projet ou de l'organisation.
Fonctionnement
Pour l'application de la stratégie de pare-feu réseau, vous créez un tag et désignez explicitement le tag pour l'utilisation du pare-feu. À toutes autres fins, vous créez un tag sans définir de désignation de pare-feu.
Après avoir créé le tag, vous devez l'associer à vos ressources GKE en tant que paire clé/valeur. Pour les stratégies de pare-feu réseau, vous utilisez l'API GKE, tandis que tous les autres objectifs utilisent l'API Tags.
Pour chaque clé, vous pouvez associer une valeur à une ressource. Par exemple, si vous avez associé env:dev
à un cluster GKE, vous ne pouvez pas également associer env:prod
ou env:test
. Vous pouvez associer jusqu'à 50 tags sans pare-feu et jusqu'à cinq tags de pare-feu à chaque ressource.
Méthodes d'annotation des ressources dans GKE
Dans GKE, plusieurs méthodes permettent d'annoter vos ressources, comme indiqué dans le tableau suivant :
Type d'annotation | Description | Exemple |
---|---|---|
Tags (non pare-feu) |
Pour en savoir plus, consultez la page Présentation des tags. |
Accorder des rôles IAM de manière conditionnelle pour contrôler l'accès aux ressources associées à des tags spécifiques |
Tags (pare-feu) |
Pour en savoir plus, consultez la section Appliquer automatiquement les règles de pare-feu de réseau dans GKE. |
Refuser automatiquement le trafic entrant provenant d'Internet public vers tous les environnements de préproduction ou de test |
Tags réseau |
Pour en savoir plus, consultez la section Utiliser des tags réseau pour appliquer des règles de pare-feu aux nœuds. |
Refuser automatiquement le trafic entrant provenant d'Internet public vers tous les environnements de préproduction ou de test |
Libellé de cluster GKE |
Pour en savoir plus, consultez la section Libellés de cluster. |
Faire la distinction entre les clusters qui appartiennent à des centres de coûts ou à des équipes spécifiques de votre organisation |
Étiquettes Kubernetes |
Pour en savoir plus, consultez la page Libellés et sélecteurs Kubernetes. |
Exiger que les charges de travail soient planifiées sur des nœuds dotés de libellés spécifiques |
Avant de commencer
Avant de commencer, effectuez les tâches suivantes :
- Activez l'API Google Kubernetes Engine. Activer l'API Google Kubernetes Engine
- Si vous souhaitez utiliser Google Cloud CLI pour cette tâche, installez puis initialisez gcloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande
gcloud components update
.
Assurez-vous de disposer des rôles IAM suivants :
roles/resourcemanager.tagAdmin
roles/resourcemanager.tagUser
Pour en savoir plus sur les autorisations accordées par ces rôles, consultez la section Autorisations requises.
Assurez-vous de disposer d'un cluster GKE en cours d'exécution.
Associer des tags à un cluster
Vous pouvez associer des tags à un cluster existant, si vous disposez des autorisations appropriées, à l'aide de Google Cloud CLI, de la console Google Cloud ou de l'API Tags ou de Terraform.
gcloud
Pour pouvoir associer un tag à vos ressources GKE à l'aide de gcloud CLI, vous devez créer le tag et configurer ses valeurs. Pour créer des clés et des valeurs de tag, consultez les sections Créer un tag et Ajouter des valeurs de tag.
Pour créer une liaison de tag afin d'associer un tag à un cluster, exécutez la commande suivante :
gcloud alpha resource-manager tags bindings create \
--tag-value=TAG_VALUE_ID \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Remplacez les éléments suivants :
TAG_VALUE_ID
: ID permanent ou nom de l'espace de noms de la valeur de tag à associer. Par exemple,tagValues/4567890123
. Pour en savoir plus sur les identifiants de tag, consultez la section Définitions et identifiants de tags.CLUSTER_LOCATION
: emplacement Compute Engine. Pour les clusters zonaux, spécifiez la zone de calcul.RESOURCE_ID
: nom complet de la ressource de votre cluster, tel que//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.Dans l'ID de ressource :
PROJECT_ID
: ID de votre projet Google Cloud.CLUSTER_NAME
: le nom du cluster
Console
Pour pouvoir associer un tag à vos ressources GKE à l'aide de la console Google Cloud, vous devez créer le tag et configurer ses valeurs. Pour créer des clés et des valeurs de tag, consultez les sections Créer un tag et Ajouter des valeurs de tag.
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.
Dans la section Métadonnées, à côté de Tags, cliquez sur
Modifier les tags.Si votre organisation n'apparaît pas dans le panneau Tags, cliquez sur Sélectionner un niveau d'accès. Sélectionnez votre organisation, puis cliquez sur Ouvrir.
Dans le panneau Tags, sélectionnez Ajouter un tag.
Dans la liste, sélectionnez la clé du tag que vous souhaitez associer. Vous pouvez filtrer la liste en saisissant des mots clés.
Dans la liste, sélectionnez la valeur du tag que vous souhaitez associer. Vous pouvez filtrer la liste en saisissant des mots clés.
Cliquez sur Enregistrer.
Dans la boîte de dialogue Confirmer, cliquez sur Confirmer pour associer le tag.
Une notification confirme que vos tags ont été mis à jour.
API
Pour associer un tag à une ressource, vous devez d'abord créer une représentation JSON d'une liaison de tag incluant les ID permanents de la valeur de tag et de la ressource. Pour en savoir plus sur le format d'une liaison de tag, consultez la documentation de référence sur la liaison de tag.
Utilisez la méthode tagBindings.create
avec le point de terminaison régional ou zonal où se trouve votre cluster.
POST https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
Remplacez LOCATION
par la région ou la zone où se trouve votre cluster.
Corps de la requête JSON :
{
"parent": "RESOURCE_ID",
"tagValue": "TAG_VALUE_ID"
}
Remplacez les éléments suivants :
RESOURCE_ID
: nom complet de la ressource de votre cluster, tel que//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.Dans l'ID de ressource :
PROJECT_ID
: ID de votre projet Google Cloud.CLUSTER_NAME
: le nom du cluster
TAG_VALUE_ID
: ID permanent ou nom de l'espace de noms de la valeur de tag à associer. Par exemple,tagValues/4567890123
. Pour en savoir plus sur les identifiants de tag, consultez la section Définitions et identifiants de tags.
Le résultat ressemble à ce qui suit :
{
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.resourcemanager.v3.TagBinding",
"name": "tagBindings///container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME/tagValues/TAG_VALUE_ID",
"parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME",
"tagValue": "TAG_VALUE_ID"
}
}
Terraform
Pour créer un tag, configurer ses valeurs et associer un tag à une ressource à l'aide de Terraform, consultez l'exemple suivant:
Pour en savoir plus sur l'utilisation de Terraform, consultez la page Compatibilité de Terraform avec GKE.
Répertorier les tags associés à un cluster
Vous pouvez répertorier les tags associés à un cluster à l'aide de gcloud CLI, de la console Google Cloud ou de l'API Tags.
gcloud
Pour obtenir la liste des liaisons de tags associées à un cluster, exécutez la commande suivante :
gcloud alpha resource-manager tags bindings list \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Remplacez les éléments suivants :
CLUSTER_LOCATION
: pour les clusters régionaux, spécifiez la région de calcul. Pour les clusters zonaux, spécifiez la zone de calcul.RESOURCE_ID
: nom complet de la ressource de votre cluster, tel que//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.Dans l'ID de ressource :
PROJECT_ID
: ID de votre projet Google Cloud.CLUSTER_NAME
: le nom du cluster
Console
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez afficher.
Dans la section Métadonnées, à côté de Tags, recherchez les valeurs de tag actuellement associées.
API
Pour obtenir la liste des liaisons de tags pour un cluster, utilisez la méthode tagBindings.list
avec le point de terminaison régional ou zonal où se trouve votre cluster.
GET https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings
Corps de la requête JSON :
{
"parent": RESOURCE_ID,
}
Remplacez les éléments suivants :
RESOURCE_ID
: nom complet de la ressource de votre cluster, tel que//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.Dans l'ID de ressource :
PROJECT_ID
: ID de votre projet Google Cloud.CLUSTER_NAME
: le nom du cluster
Le résultat ressemble à ce qui suit :
"tagBindings": [
{
"name": "tagBindings/%2F%2Fcontainer.googleapis.com%2Fprojects%2Ftags-bugbash-project%2Flocations%2LOCATION%2Fclusters%2Ftestcluster/tagValues/758072120217",
"parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME",
"tagValue": "TAG_VALUE_ID"
}
]
Dissocier des tags d'un cluster
Vous pouvez dissocier un tag d'un cluster en supprimant la ressource de liaison de tag associée au cluster à l'aide de gcloud CLI, de la console Google Cloud ou de l'API Tags. Si vous devez supprimer un tag, vous devez d'abord dissocier toutes les ressources associées.
gcloud
Pour dissocier une liaison de tag associée à un cluster, exécutez la commande suivante :
gcloud alpha resource-manager tags bindings delete \
--tag-value=TAG_VALUE_ID \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Remplacez les éléments suivants :
TAG_VALUE_ID
: ID permanent ou nom de l'espace de noms de la valeur de tag à dissocier. Par exemple,tagValues/4567890123
. Pour en savoir plus sur les identifiants de tag, consultez la section Définitions et identifiants de tags.CLUSTER_LOCATION
: pour les clusters régionaux, spécifiez la région de calcul. Pour les clusters zonaux, spécifiez la zone de calcul.RESOURCE_ID
: nom complet de la ressource de votre cluster, tel que//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME
.Dans l'ID de ressource :
PROJECT_ID
: ID de votre projet Google Cloud.CLUSTER_NAME
: le nom du cluster
Console
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.
Dans la section Métadonnées, à côté de Tags, cliquez sur
Modifier les tags.Dans le panneau Tags, à côté du tag que vous souhaitez dissocier, cliquez sur
Supprimer l'élément.Cliquez sur Enregistrer.
Dans la boîte de dialogue Confirmer, cliquez sur Confirmer pour dissocier le tag.
Une notification confirme que vos tags ont été mis à jour.
API
Pour supprimer des liaisons de tags pour un cluster, utilisez la méthode tagBindings.delete
avec le point de terminaison régional ou zonal où se trouve votre cluster.
DELETE https://LOCATION-cloudresourcemanager.googleapis.com/v3/TAG_BINDING_NAME
Remplacez TAG_BINDING_NAME
par le nom complet de ressource de l'objet tagBinding
que vous souhaitez dissocier. Par exemple, tagBindings/container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/tagValues/TAG_VALUE_ID
.
Supprimer les clés et les valeurs de tag
Avant de supprimer des clés et des valeurs de tags, assurez-vous que les tags sont dissociés de toutes les ressources. Consultez la section Supprimer des tags pour savoir comment supprimer les clés et les valeurs.
Conditions et tags Identity and Access Management
Vous pouvez utiliser des tags et des conditions IAM pour attribuer des liaisons de rôles de manière conditionnelle aux utilisateurs dans la hiérarchie de votre projet. Lorsque vous modifiez ou supprimez le tag associé à un cluster, GKE peut supprimer l'accès des utilisateurs à ce cluster si une stratégie d'autorisation IAM avec des liaisons de rôles conditionnelles a été appliquée.
L'autorisation de lister et de créer des clusters GKE est vérifiée au niveau du projet, et non au niveau du cluster individuel. Si vous utilisez des liaisons de rôles IAM conditionnelles avec des tags au niveau du cluster pour restreindre l'accès à des clusters spécifiques, ces utilisateurs peuvent rencontrer des erreurs lorsqu'ils tentent de lister ou de créer des clusters dans le projet. Pour éviter ces erreurs, associez un tag au projet parent et utilisez une liaison de rôle conditionnelle pour accorder la liste ou créer l'accès. Pour plus d'informations sur les rôles et les autorisations, consultez la documentation de référence sur les rôles IAM.
Pour en savoir plus sur les autorisations d'accès conditionnelles dans IAM, consultez la section Conditions et tags Identity and Access Management.
Étapes suivantes
- Découvrez comment définir une règle d'administration avec des tags.
- Découvrez comment gérer les tags et associer des tags à des ressources.
- Consultez les autres services compatibles avec les tags.
- Apprenez à utiliser des tags avec IAM.