Ajouter des tags aux ensembles de données

Cette page explique comment utiliser des tags pour appliquer des stratégies Identity and Access Management (IAM) de manière conditionnelle aux ensembles de données BigQuery.

Un tag est une paire clé-valeur que vous pouvez associer directement à un ensemble de données, ou qu'un ensemble de données peut hériter d'autres ressources Google Cloud. Vous pouvez appliquer des règles de manière conditionnelle selon qu'une ressource possède un tag spécifique. Par exemple, vous pouvez accorder de manière conditionnelle le rôle "Lecteur de données BigQuery" à un compte principal sur n'importe quel ensemble de données avec le tag environment:dev.

Pour en savoir plus sur l'utilisation des tags dans la hiérarchie des ressources Google Cloud, consultez la page Présentation des tags.

Autorisations requises

Pour utiliser des tags dans BigQuery, vous devez disposer des autorisations suivantes :

  • Pour associer un tag à un ensemble de données, vous devez disposer de l'autorisation IAM bigquery.datasets.createTagBinding sur l'ensemble de données et de l'autorisation resourcemanager.tagValueBindings.create au niveau de l'organisation par rapport à la valeur du tag que vous souhaitez associer.
  • Pour supprimer un tag d'un ensemble de données, vous devez disposer de l'autorisation IAM bigquery.datasets.deleteTagBinding sur l'ensemble de données, et de l'autorisation resourcemanager.tagValueBindings.delete au niveau de l'organisation par rapport à la valeur du tag que vous souhaitez supprimer.
  • Pour répertorier les tags associés à un ensemble de données, vous devez disposer de l'autorisation IAM bigquery.datasets.listTagBindings.

Les deux rôles IAM prédéfinis suivants incluent toutes les autorisations BigQuery nécessaires :

  • Propriétaire de données BigQuery (roles/bigquery.dataOwner)
  • Administrateur BigQuery (roles/bigquery.admin)

Les autorisations Resource Manager sont incluses dans le rôle Utilisateur de tags (roles/resourcemanager.tagUser).

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

Avant de pouvoir associer un tag, vous devez d'abord créer un tag et configurer sa valeur. Pour créer des clés et des valeurs de tags, consultez les sections Créer un tag et Ajouter des valeurs de tags.

Associer des tags à un ensemble de données

Après avoir créé un tag, vous pouvez l'associer à un ensemble de données. Vous ne pouvez associer qu'une seule valeur de tag à un ensemble de données pour une clé de tag donnée.

Pour associer un tag à un ensemble de données à l'aide de la ligne de commande, créez une ressource de liaison de tag à l'aide de la commande gcloud alpha resource-manager tags bindings create :

gcloud alpha resource-manager tags bindings create \
    --tag-value=TAGVALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

Remplacez les éléments suivants :

  • TAGVALUE_NAME : ID permanent ou nom de l'espace de noms de la valeur du tag à associer, tel que tagValues/4567890123 ou 1234567/my_tag_key/my_tag_value
  • RESOURCE_ID : ID complet de l'ensemble de données, avec le nom de domaine de l'API (//bigquery.googleapis.com/) permettant d'identifier le type de ressource (par exemple, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset)
  • LOCATION : emplacement de votre ensemble de données

Répertorier les tags associés à un ensemble de données

Les étapes suivantes fournissent une liste de liaisons de tags directement associées à un ensemble de données. Elles ne renvoient aucun tag hérité des ressources parentes.

Console

  1. Accédez à la page BigQuery.

    Accéder à BigQuery

  2. Dans le panneau Explorateur, développez votre projet et sélectionnez un ensemble de données.

    Les tags apparaissent dans le panneau Informations sur l'ensemble de données.

gcloud

Pour obtenir la liste des liaisons de tags associées à une ressource, exécutez la commande gcloud alpha resource-manager tags bindings list :

gcloud alpha resource-manager tags bindings list \
    --parent=RESOURCE_ID \
    --location=LOCATION

Remplacez les éléments suivants :

  • RESOURCE_ID : ID complet de l'ensemble de données, avec le nom de domaine de l'API (//bigquery.googleapis.com/) permettant d'identifier le type de ressource (par exemple, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset)

  • LOCATION : emplacement de votre ensemble de données

Le résultat ressemble à ce qui suit :

name: tagBindings/%2F%2Fbigquery.googleapis.com%2Fprojects%2Fmy_project%2Fdatasets%2Fmy_dataset/tagValues/4567890123
parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset
tagValue: tagValues/4567890123

Dissocier les tags d'un ensemble de données

Vous pouvez dissocier un tag d'une ressource en supprimant la ressource de liaison de tag. Pour supprimer un tag, vous devez d'abord le dissocier.

Pour dissocier un tag d'un ensemble de données à l'aide de la ligne de commande, supprimez la liaison de tag à l'aide de la commande gcloud alpha resource-manager tags bindings delete :

gcloud alpha resource-manager tags bindings delete \
    --tag-value=TAGVALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

Remplacez les éléments suivants :

  • TAGVALUE_NAME : ID permanent ou nom de l'espace de noms de la valeur du tag à associer, tel que tagValues/4567890123 ou 1234567/my_tag_key/my_tag_value
  • RESOURCE_ID : ID complet de l'ensemble de données, avec le nom de domaine de l'API (//bigquery.googleapis.com/) permettant d'identifier le type de ressource (par exemple, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset)
  • LOCATION : emplacement de votre ensemble de données

Supprimer les tags

Vous devez supprimer toutes les ressources de liaison de tag existantes avant de supprimer la clé ou la valeur du tag. Pour supprimer des clés et des valeurs de tags, consultez la section Supprimer des tags.

Exemple

Supposons que vous soyez administrateur d'une organisation. Vos analystes de données sont tous membres du groupe analystes@example.com, qui possède le rôle IAM de lecteur de données BigQuery sur le projet userData. Un stagiaire d'analyste de données est embauché et, conformément aux règles de l'entreprise, il ne doit être autorisé à afficher l'ensemble de données anonymousData que dans le projet userData. Vous pouvez contrôler leurs accès à l'aide de tags.

  1. Créez un tag avec la clé employee_type et la valeur intern :

    Exemple de création d'une clé et de valeurs de tags.

  2. Dans la console, accédez à la page IAM.

    Accéder à IAM

  3. Recherchez la ligne contenant le stagiaire auquel vous souhaitez restreindre l'accès à l'ensemble de données, puis cliquez sur Modifier le compte principal sur cette ligne.

  4. Dans le menu Rôle, sélectionnez Lecteur d'ensembles de données BigQuery.

  5. Cliquez sur Ajouter une condition :

  6. Dans les champs Titre et Description, saisissez les valeurs décrivant la condition IAM que vous souhaitez créer.

  7. Dans l'onglet Générateur de conditions, cliquez sur Ajouter.

  8. Dans le menu Type de condition, sélectionnez Ressource, puis Tag.

  9. Dans le menu Opérateur, sélectionnez comporte une valeur.

  10. Dans le champ Chemin d'accès de la valeur, saisissez le chemin d'accès de la valeur du tag au format ORGANIZATION/TAG_KEY/TAG_VALUE (par exemple, example.org/employee_type/intern).

    Exemple de condition IAM utilisant des tags

    Cette condition IAM restreint l'accès du stagiaire aux ensembles de données portant le tag intern.

  11. Pour enregistrer la condition, cliquez sur Enregistrer.

  12. Pour enregistrer toutes les modifications que vous avez apportées dans le volet Modifier les autorisations, cliquez sur Enregistrer.

  13. Pour associer la valeur du tag intern à l'ensemble de données anonymousData, utilisez la ligne de commande pour exécuter la commande gcloud alpha resource-manager tags bindings create :

    gcloud alpha resource-manager tags bindings create \
    --tag-value=tagValues/4567890123 \
    --parent=//bigquery.googleapis.com/projects/userData/datasets/anonymousData \
    --location=US
    

Limites

  • Si vous supprimez une valeur de tag, BigQuery ne supprime pas automatiquement les liaisons de tag qui utilisent cette valeur. L'ID de valeur de tag est requis pour supprimer une liaison de tag après la suppression de la valeur de tag. Si vous ne connaissez pas l'ID de la valeur du tag, la seule méthode pour supprimer la liaison consiste à supprimer l'intégralité de l'ensemble de données.

  • Vous pouvez associer jusqu'à 10 tags à un ensemble de données.

Étape suivante