Créer et gérer des tags sur les clusters associés à AKS

Cette page vous explique comment créer et gérer des tags dans vos clusters GKE associés.

Présentation

Un tag est une paire clé-valeur qui peut être associée à une ressource dans Google Cloud. Vous pouvez utiliser des tags pour autoriser ou refuser de manière conditionnelle les règles selon qu'une ressource dispose d'un tag spécifique.

En tant qu'administrateur de plate-forme, vous pouvez utiliser les tags pour attribuer des rôles IAM (gestion de l'authentification et des accès) de manière conditionnelle, selon qu'un cluster possède ou non un tag spécifique. Par exemple, vous pouvez configurer GKE pour qu'il attribue automatiquement des rôles IAM aux utilisateurs prestataires afin qu'ils puissent accéder à des clusters spécifiques qui ne sont normalement disponibles que pour les employés à temps plein.

Après avoir créé un tag, vous pouvez l'associer à une ressource Google Cloud en tant que paire clé/valeur à l'aide d'une liaison de tag. Pour chaque clé, vous pouvez associer une valeur à une ressource. Par exemple, si vous avez associé env:dev à votre cluster, vous ne pouvez pas également associer env:prod ou env:test. Vous pouvez associer jusqu'à 50 tags à chaque ressource.

Dans les clusters associés à GKE, plusieurs méthodes permettent d'annoter vos ressources, comme indiqué dans le tableau suivant :

Type d'annotation Niveau Description Exemple
Tags Cluster GKE

Autoriser ou refuser des règles de manière conditionnelle en fonction du tag

Pour en savoir plus, consultez la présentation des tags dans la documentation Resource Manager.

Accorder automatiquement aux utilisateurs prestataires l'accès à des clusters spécifiques qui ne sont normalement disponibles que pour les employés à temps plein
Libellé de cluster GKE Cluster GKE

Organiser les ressources GKE pour suivre l'utilisation et la facturation

Pour en savoir plus, consultez 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 Cluster GKE

Associer des composants et des ressources de cluster et gérer les cycles de vie des ressources

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 la gcloud CLI. Si vous avez déjà installé la gcloud CLI, obtenez la dernière version en exécutant la commande gcloud components update. Il est possible que les versions antérieures de la gcloud CLI ne permettent pas d'exécuter les commandes de ce document.
  • Assurez-vous de disposer des rôles IAM suivants pour utiliser les tags :

    • roles/resourcemanager.tagAdmin
    • roles/resourcemanager.tagUser

    Pour en savoir plus sur les autorisations accordées par ces rôles, consultez la section Autorisations requises.

Créer des clés et des valeurs de tags

Avant de pouvoir associer un tag à vos ressources GKE, 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 dans la documentation Resource Manager.

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.

gcloud

Pour créer une liaison de tag afin d'associer un tag à un cluster, exécutez la commande suivante :

gcloud 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.
  • RESOURCE_ID : nom complet de la ressource de votre cluster, tel que //container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/attachedClusters/CLUSTER_NAME.

    Dans l'ID de ressource :

    • PROJECT_ID : ID de votre projet Google Cloud .
    • CLUSTER_NAME : le nom du cluster
  • CLUSTER_LOCATION : nom de l'emplacement Google Cloudà partir duquel votre cluster est géré.

Console

  1. Accédez à la page Google Kubernetes Engine dans la console Google Cloud .

    Accéder à Google Kubernetes Engine

  2. Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Dans la section Métadonnées, à côté de Tags, cliquez sur Modifier les tags.

  4. 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.

  5. Dans le panneau Tags, sélectionnez Ajouter un tag.

  6. Dans la liste, sélectionnez la clé du tag que vous souhaitez associer. Vous pouvez filtrer la liste en saisissant des mots clés.

  7. Dans la liste, sélectionnez la valeur du tag que vous souhaitez associer. Vous pouvez filtrer la liste en saisissant des mots clés.

  8. Cliquez sur Enregistrer.

  9. 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 où se trouve votre cluster.

POST https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings

Remplacez LOCATION par l'emplacement Google Cloudoù se trouve votre cluster, par exemple us-central1.

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/attachedClusters/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/attachedClusters/CLUSTER_NAME/tagValues/TAG_VALUE_ID",
    "parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/attachedClusters/CLUSTER_NAME",
    "tagValue": "TAG_VALUE_ID"
  }
}

Répertorier les tags associés à un cluster

Vous pouvez lister 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 resource-manager tags bindings list \
    --parent=RESOURCE_ID \
    --location=CLUSTER_LOCATION

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/attachedClusters/CLUSTER_NAME.

    Dans l'ID de ressource :

    • PROJECT_ID : ID de votre projet Google Cloud .

    • CLUSTER_NAME : le nom du cluster

  • CLUSTER_LOCATION : emplacement Google Cloudoù se trouve votre cluster.

Console

  1. Accédez à la page Google Kubernetes Engine dans la console Google Cloud .

    Accéder à Google Kubernetes Engine

  2. Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez afficher.

  3. 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 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/attachedClusters/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%2Fus-central1%2Fclusters%2Ftestcluster/tagValues/758072120217",
    "parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/attachedClusters/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 consoleGoogle 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 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.

  • RESOURCE_ID : nom complet de la ressource de votre cluster, tel que //container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/attachedClusters/CLUSTER_NAME.

    Dans l'ID de ressource :

    • PROJECT_ID : ID de votre projet Google Cloud .

    • CLUSTER_NAME : le nom du cluster

  • CLUSTER_LOCATION : emplacement Google Cloudoù se trouve votre cluster.

Console

  1. Accédez à la page Google Kubernetes Engine dans la console Google Cloud .

    Accéder à Google Kubernetes Engine

  2. Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Dans la section Métadonnées, à côté de Tags, cliquez sur Modifier les tags.

  4. Dans le panneau Tags, à côté du tag que vous souhaitez dissocier, cliquez sur Supprimer l'élément.

  5. Cliquez sur Enregistrer.

  6. 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 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 votre hiérarchie de projet. Lorsque vous modifiez ou supprimez le tag associé à un cluster qui possède une stratégie IAM avec des liaisons de rôles conditionnelles, GKE réévalue les autorisations d'accès en fonction des conditions mises à jour.

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