Contrôler l'accès et organiser les instances à l'aide de tags

Cette page explique comment utiliser des tags Google Cloud pour gérer l'accès à vos instances Spanner.

Un tagGoogle Cloud est une paire clé-valeur que vous pouvez associer à vos ressources Google Cloud , telles que des projets ou des instances Spanner. Vous pouvez utiliser des tags pour regrouper et organiser vos instances, et pour définir de manière conditionnelle des règles d'accès IAM (Identity and Access Management) selon qu'une instance est associée à un tag spécifique. Vous pouvez créer et gérer des balises d'instance Spanner à l'aide de Google Cloud CLI ou de la console Google Cloud. Une fois vos tags créés, vous pouvez créer une liaison de tag pour les associer à vos ressources Google Cloud . Les liaisons de tags sont héritées par les enfants de la ressource conformément à la hiérarchie des ressourcesGoogle Cloud . Par exemple, si vous associez un tag à votre projet, toutes les instances de ce projet héritent de ce tag. Vous pouvez également utiliser des libellés pour organiser vos ressources Google Cloud , mais vous ne pouvez pas les utiliser pour définir des conditions sur les stratégies IAM.

Pour en savoir plus sur les tags, consultez la page Présentation des tags.

Cas d'utilisation courants des tags d'instance Spanner

Voici quelques cas d'utilisation courants des balises:

  • Tags IAM (Identity and Access Management):attribuez des rôles IAM (Identity and Access Management) selon qu'une instance est associée à un tag spécifique. La présence ou l'absence d'une valeur de balise est la condition de cette stratégie IAM et permet de contrôler l'accès à votre instance Spanner.
  • Tags d'état:indiquez et gérez l'état d'une instance en créant des tags. Par exemple, state:active, state:todelete et state:archive.
  • Tags d'environnement:spécifiez les environnements de production, de test et de développement pour les instances en créant des paires clé-valeur telles que env:prod, env:dev et env:test.

Créer et gérer des tags d'instance Spanner

Les balises sont structurées sous forme de paires clé/valeur. Vous créez une clé de tag sous votre ressource d'organisation, puis vous joignez des valeurs de tag à la clé de tag (par exemple, une clé de tag environment avec les valeurs prod et dev). Vous pouvez ensuite créer une liaison de tag qui associe la valeur de tag à une ressource Google Cloud , telle qu'un projet ou une instance Spanner. Notez que vous ne pouvez pas attribuer de balise à une base de données.

Autorisations requises

Les autorisations dont vous avez besoin dépendent de l'action que vous devez effectuer. Pour en savoir plus, consultez la section Autorisations requises dans la documentation Resource Manager.

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

Avant de pouvoir associer un tag à votre instance, vous devez créer le tag et lui attribuer une valeur. Pour créer des clés et des valeurs de tags, consultez les sections Créer un tag et Ajouter une valeur de tag.

Associer un tag à une instance

Après avoir créé vos paires clé-valeur de tag, vous pouvez créer une liaison de tag et l'associer à votre instance Spanner.

Console

  1. Dans la console Google Cloud, accédez à la page Instances Spanner.

    Accéder aux instances Spanner

  2. Sélectionnez l'instance à laquelle vous souhaitez associer un tag.

  3. Cliquez sur 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 le champ Clé, sélectionnez la clé du tag que vous souhaitez associer dans la liste. Vous pouvez filtrer la liste en saisissant des mots clés.

  7. Dans le champ Valeur, sélectionnez la valeur de la balise que vous souhaitez associer dans la liste. Vous pouvez filtrer la liste en saisissant des mots clés.

  8. Si vous souhaitez associer d'autres balises, cliquez sur Ajouter une balise, puis sélectionnez la clé et la valeur de chacune.

  9. Cliquez sur Enregistrer.

  10. Dans la boîte de dialogue Confirmer, cliquez sur Confirmer pour associer le tag.

    Une notification confirme que vos tags ont été mis à jour.

gcloud

Pour créer une liaison de tag et l'associer à votre instance, exécutez la commande suivante:

gcloud resource-manager tags bindings create
--parent=//spanner.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID
--tag-value=ORG_ID/KEY_NAME/VALUE_NAME
--location=LOCATION
  • PROJECT_ID : ID du projet
  • INSTANCE_ID : ID de l'instance
  • ORG_ID: ID de l'organisation.
  • KEY_NAME: nom à afficher (abrégé) de votre clé de balise. Exemple :env
  • VALUE_NAME: nom à afficher (abrégé) de la valeur de votre balise. Exemple :prod
  • LOCATION: emplacement de votre instance. Exemple : us-east1.

Par exemple, pour créer une liaison de tag sur votre instance Spanner my-instance avec la paire clé-valeur de tag env:prod, exécutez la commande suivante:

gcloud resource-manager tags bindings create
--parent=//spanner.googleapis.com/projects/my-project/instances/my-instance
--tag-value=123456789012/env/prod
--location=us-east1

Conditions et tags IAM

Vous pouvez utiliser des tags et des conditions IAM pour attribuer des liaisons de rôles de manière conditionnelle aux utilisateurs. Si une stratégie IAM avec des liaisons de rôles conditionnelles est appliquée, la modification ou la suppression du tag associé à une ressource peut supprimer l'accès des utilisateurs à cette ressource.

Pour en savoir plus, consultez la page Présentation des conditions IAM.

Console

Pour utiliser des tags pour accorder des liaisons de rôles de manière conditionnelle aux utilisateurs, consultez la section Gérer l'accès aux tags.

gcloud

Pour appliquer une condition basée sur des balises à une stratégie IAM, assurez-vous de disposer des autorisations requises, puis exécutez la commande suivante:

gcloud organizations add-iam-policy-binding ORG_ID
--role=roles/ROLE --member=PRINCIPAL
--condition=resource.matchTag('PROJECT_ID/KEY_NAME', 'VALUE_NAME')
  • ORG_ID: ID de l'organisation.
  • ROLE: nom du rôle à attribuer au compte principal. Le nom du rôle correspond au chemin complet d'un rôle prédéfini, tel que roles/logging.viewer, ou à l'ID d'un rôle personnalisé, tel que organizations/{ORG_ID}/roles/logging.viewer.
  • PRINCIPAL: compte principal sur lequel vous souhaitez ajouter la liaison de rôle. Il doit être au format user|group|serviceAccount:email ou domain:domain. Par exemple, user:test-user@gmail.com, group:admins@example.com, serviceAccount:test123@example.domain.com ou domain:example.domain.com.
  • PROJECT_ID : ID du projet
  • KEY_NAME: nom à afficher (abrégé) de votre clé de balise. Exemple :env
  • VALUE_NAME: nom à afficher (abrégé) de la valeur de votre balise. Exemple :prod

Cette commande ajoute une liaison de stratégie IAM à la stratégie IAM d'une organisation. Une liaison de stratégie se compose d'un membre, d'un rôle et d'une condition facultative.

Par exemple, pour accorder de manière conditionnelle le rôle spanner.backupAdmin à user1@example.com dans toutes les ressources de projet 123456789012 avec la balise env:prod, exécutez la commande suivante:

gcloud organizations add-iam-policy-binding my-project
--member=user1@example.com --role=roles/spanner.backupAdmin
--condition=resource.matchTag('123456789012/env', 'prod')

Lister les tags associés à une instance

Vous pouvez afficher une liste de liaisons de tags directement associés à l'instance ou dont celle-ci a hérité.

gcloud

Pour obtenir la liste des liaisons de tags directement associées à une ressource, exécutez la commande gcloud resource-manager tags bindings list. Si vous ajoutez l'option --effective, vous obtenez également toutes les liaisons de tags héritées par cette ressource.

Pour répertorier toutes les liaisons de tags associées à une instance, exécutez la commande suivante:

gcloud resource-manager tags bindings list
--parent=//spanner.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID
--location=LOCATION
--effective
  • PROJECT_ID : ID du projet
  • INSTANCE_ID : ID de l'instance
  • LOCATION: emplacement de votre instance. Exemple : us-east1.

Supprimer une liaison de tag

Lorsque vous supprimez une clé ou une définition de valeur de tag, assurez-vous que le tag est dissocié de l'instance. Vous devez supprimer les liaisons de tags existantes avant de supprimer le tag.

Console

  1. Dans la console Google Cloud, accédez à la page Instances Spanner.

    Accéder aux instances Spanner

  2. Sélectionnez l'instance pour laquelle vous souhaitez supprimer une liaison de balise.

  3. Cliquez sur 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.

gcloud

Pour supprimer une liaison de balise, exécutez la commande suivante:

gcloud resource-manager tags bindings delete
--parent=//spanner.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_ID
--tag-value=ORG_ID/KEY_NAME/KEY_VALUE
--location=LOCATION
  • PROJECT_ID : ID du projet
  • INSTANCE_ID : ID de l'instance
  • ORG_ID: ID de l'organisation.
  • KEY_NAME: nom à afficher (abrégé) de votre clé de balise. Exemple :env
  • VALUE_NAME: nom à afficher (abrégé) de la valeur de votre balise. Exemple :prod
  • LOCATION: emplacement de votre instance. Exemple : us-east1.

Supprimer un tag

Une fois la liaison de votre balise supprimée, vous pouvez supprimer la balise. Pour supprimer des clés et des valeurs de tags, consultez la section Supprimer des tags.

Étape suivante