Inclure des ressources dans les domaines de données

Ce document explique comment inclure des ressources dans des domaines de données pour organiser vos données.

Fonctionnement

Pour inclure une ressource dans un domaine, vous devez procéder comme suit :

  1. Obtenez l'ID principal du domaine que vous souhaitez autoriser. Pour en savoir plus, consultez Obtenir le principal du domaine.
  2. Autorisez le domaine pour accorder l'accès à une ressource ou à un projet spécifique.
  3. Créez une liaison entre la ressource et le domaine. Pour en savoir plus, consultez Associer des ressources au domaine.

À propos de l'autorisation des domaines de données

L'autorisation de domaine établit une relation de confiance entre la ressource et le domaine. Un propriétaire de ressource accorde des autorisations IAM au principal IAM du domaine de données sur la ressource ou le projet cible. Cette action permet à Knowledge Catalog d'autoriser et d'exécuter la création de la liaison qui associe la ressource au domaine.

L'autorisation de domaine n'est vérifiée que lorsqu'une liaison est créée. Cela signifie que si vous révoquez le rôle IAM du principal de domaine sur une ressource, cette ressource n'est pas automatiquement dissociée ni supprimée du domaine. Les utilisateurs du domaine disposant du rôle roles/dataplex.dataDomainEntryReader peuvent continuer à découvrir la ressource et à afficher ses métadonnées jusqu'à ce que l'association entre la ressource et le domaine soit explicitement supprimée.

Autorisation des domaines et autorisations des utilisateurs de domaine

Lorsque vous travaillez avec des domaines de données, il est important de faire la distinction entre l'autorisation d'un domaine de données et l'attribution d'autorisations de domaine de données à un utilisateur :

  • Autorisation du domaine de données : il s'agit d'autoriser le domaine de données sur une ressource cible. Vous accordez des autorisations au principal IAM du domaine de données sur une ressource sous-jacente, telle qu'un projet ou un ensemble de données BigQuery, pour créer l'association entre la ressource et le domaine.
  • Accorder des autorisations de domaine de données à un utilisateur : cela consiste à accorder à un utilisateur ou à un compte de service des autorisations pour interagir avec le domaine de données lui-même. Vous attribuez des rôles IAM aux utilisateurs directement dans le domaine de données afin qu'ils puissent l'afficher, le modifier ou le gérer dans Knowledge Catalog. Pour en savoir plus, consultez Rôles et autorisations des domaines de données.

Types de rôles

Lorsque vous autorisez un domaine de données sur une ressource cible, vous pouvez sélectionner un rôle IAM qui appartient à l'un des types de rôles suivants : Lecteur, Rédacteur ou Administrateur.

En général, les types de rôles "Rédacteur" et "Administrateur" sont réservés pour permettre aux domaines d'effectuer un large éventail d'actions sur les ressources pour lesquelles ils sont autorisés, comme suit :

  • Les types de rôles de rédacteur permettent au domaine de gérer les autorisations de modification des métadonnées sur la ressource.
  • Les types de rôles d'administrateur permettent au domaine de gérer toutes les autorisations sur la ressource.

Dans le champ d'application des domaines de données, les trois types de rôles permettent au domaine de données de créer une liaison à la ressource cible. Une fois l'association créée, les utilisateurs peuvent rechercher la ressource dans le domaine et afficher ses métadonnées. Pour en savoir plus, consultez Rechercher des ressources de données.

Lorsque vous choisissez le type de rôle, tenez compte du niveau d'accès à long terme que vous souhaitez accorder au domaine sur la ressource.

Rôles recommandés pour l'autorisation de domaine

Les tableaux suivants répertorient les rôles recommandés que vous pouvez utiliser pour autoriser le domaine à inspecter les ressources. Pour chaque ressource, vous pouvez choisir un rôle différent de celui recommandé, mais ce rôle doit contenir les autorisations requises pour effectuer des liaisons de ressources.

Sélectionnez dans la liste le type de ressource pour lequel vous souhaitez afficher les rôles.

Type de ressource Type de rôle Rôles recommandés Description Autorisations requises
Projet Lecteur roles/browser Accorde au domaine les autorisations nécessaires pour obtenir des informations sur un projet. resourcemanager.projects.get
Rédacteur roles/editor Accorde au domaine les autorisations nécessaires pour obtenir des informations sur un projet et gérer ses métadonnées. resourcemanager.projects.get
resourcemanager.projects.update
Administrateur roles/owner Permet à l'administrateur du domaine de gérer un projet, y compris la découverte, la gouvernance des métadonnées et l'administration des règles d'accès. resourcemanager.projects.get
resourcemanager.projects.update
resourcemanager.projects.setIamPolicy
Ensemble de données BigQuery Lecteur roles/bigquery.metadataViewer Accorde les autorisations de domaine pour obtenir des informations sur un ensemble de données BigQuery. bigquery.datasets.get
Rédacteur roles/bigquery.dataEditor Accorde les autorisations de domaine permettant d'obtenir des informations sur un ensemble de données BigQuery et de gérer ses métadonnées. bigquery.datasets.get
bigquery.datasets.updateTag
Administrateur roles/bigquery.dataOwner Accorde à l'administrateur du domaine la gestion administrative d'un ensemble de données BigQuery, y compris la découverte, la gouvernance des métadonnées et l'administration des règles d'accès. bigquery.datasets.get
bigquery.datasets.updateTag
bigquery.datasets.setIamPolicy
Table BigQuery Lecteur roles/bigquery.metadataViewer Accorde au domaine les autorisations nécessaires pour obtenir des informations sur une table BigQuery. bigquery.tables.get
Rédacteur roles/bigquery.dataEditor Accorde au domaine les autorisations nécessaires pour obtenir des informations sur une table BigQuery et gérer ses métadonnées. bigquery.tables.get
bigquery.tables.update
Administrateur roles/bigquery.dataOwner Accorde à l'administrateur du domaine la gestion administrative d'une table BigQuery, y compris la découverte, la gouvernance des métadonnées et l'administration des règles d'accès. bigquery.tables.get
bigquery.tables.update
bigquery.tables.setIamPolicy
Produit de données Lecteur roles/dataplex.dataProductsViewer Accorde au domaine les autorisations nécessaires pour obtenir des informations sur un produit de données. dataplex.dataProducts.get
Rédacteur roles/dataplex.dataProductsEditor Accorde au domaine les autorisations nécessaires pour obtenir des informations sur un produit de données et gérer ses métadonnées. dataplex.dataProducts.get
dataplex.dataProducts.update
Administrateur roles/dataplex.dataProductsAdmin Permet à l'administrateur de domaine de gérer un produit de données, y compris la découverte de produits de données, la gouvernance des métadonnées et l'administration des règles d'accès. dataplex.dataProducts.get
dataplex.dataProducts.update
dataplex.dataProducts.setIamPolicy
Dépôt Dataform Lecteur roles/dataform.codeViewer Accorde au domaine un accès en lecture seule aux ressources de code Dataform. dataform.repositories.get
Rédacteur roles/dataform.codeOwner Accorde au domaine un accès complet aux ressources de code et de dépôt Dataform. dataform.repositories.get
dataform.repositories.update
Administrateur roles/dataform.codeOwner Accorde au domaine un accès complet aux ressources de code et de dépôt Dataform. dataform.repositories.get
dataform.repositories.setIamPolicy
Base de données Dataproc Metastore Lecteur roles/metastore.metadataUser Accorde au domaine les autorisations nécessaires pour obtenir la liste des bases de données Dataproc Metastore. metastore.databases.get
Rédacteur roles/metastore.metadataEditor Accorde au domaine l'accès en lecture et en modification aux métadonnées des bases de données et de leurs tables Dataproc Metastore. metastore.databases.get
metastore.databases.update
Administrateur roles/metastore.metadataOwner Accorde au domaine un accès complet aux métadonnées des bases de données et des tables Dataproc Metastore. metastore.databases.get
metastore.databases.setIamPolicy
Table Dataproc Metastore Lecteur roles/metastore.metadataViewer Accorde au domaine l'accès en lecture aux métadonnées des bases de données et de leurs tables Dataproc Metastore. metastore.tables.get
Rédacteur roles/metastore.metadataEditor Accorde au domaine l'accès en lecture et en modification aux métadonnées des bases de données et de leurs tables Dataproc Metastore. metastore.tables.get
Administrateur roles/metastore.metadataOwner Accorde au domaine un accès complet aux métadonnées des bases de données et des tables Dataproc Metastore. metastore.tables.get
metastore.tables.setIamPolicy
Base de données Cloud Spanner Lecteur roles/spanner.databaseReader Permet au domaine de lire la base de données Spanner, d'exécuter des requêtes SQL et d'afficher le schéma de la base de données. spanner.databases.get
Rédacteur roles/spanner.editor Accorde au domaine des autorisations administratives et opérationnelles sur les ressources Spanner, y compris la gestion des instances et des bases de données, l'exécution des requêtes, la gestion des sauvegardes et des restaurations, et la gestion des ressources. spanner.databases.get
spanner.databases.update
Administrateur roles/spanner.databaseAdmin Donne au domaine un accès complet pour gérer les instances Spanner du projet et les bases de données de ces instances. spanner.databases.get
spanner.databases.setIamPolicy
Table BigLake Lecteur roles/biglake.metadataViewer Accorde au domaine un accès en lecture seule aux métadonnées de toutes les ressources BigLake. biglake.tables.get
Rédacteur roles/biglake.editor Accorde au domaine un accès en lecture et en écriture à toutes les ressources BigLake. biglake.tables.get
biglake.tables.update
Administrateur roles/biglake.admin Accorde au domaine un accès complet à toutes les ressources BigLake. biglake.tables.get
biglake.tables.setIamPolicy
Instance AlloyDB pour PostgreSQL Lecteur roles/alloydb.viewer Accorde au domaine un accès en lecture seule aux ressources AlloyDB pour PostgreSQL. alloydb.instances.get
Rédacteur roles/alloydb.editor Accorde au domaine un accès en lecture et en écriture aux ressources AlloyDB pour PostgreSQL. alloydb.instances.get
alloydb.instances.update
Ensemble de données Gemini Enterprise Agent Platform Lecteur roles/aiplatform.viewer Accorde au domaine les autorisations permettant d'afficher toutes les ressources de la plate-forme d'agents Gemini Enterprise. aiplatform.datasets.get
Rédacteur roles/aiplatform.user Accorde au domaine l'autorisation d'utiliser toutes les ressources de Gemini Enterprise Agent Platform. aiplatform.datasets.get
aiplatform.datasets.update

Avant de commencer

Avant d'inclure des ressources dans un domaine de données, assurez-vous de disposer des rôles requis et d'avoir activé les API. Tenez également compte des limites suivantes :

  • Une ressource ne peut appartenir qu'à un seul domaine.
  • Un domaine peut contenir jusqu'à 500 ressources.

Activer les API

Activer l'API Dataplex

Rôles requis pour activer les API

Pour activer les API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

Activer l'API

Rôles requis

Pour obtenir les autorisations nécessaires pour associer des ressources à des domaines de données, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Obtenir le compte principal IAM du domaine

Pour autoriser un domaine de données à effectuer des actions sur une ressource, vous avez besoin de l'ID du principal IAM du domaine. Gardez l'ID principal du domaine à portée de main, car vous devrez le fournir lorsque vous autoriserez le domaine sur la ressource.

Console

  1. Dans la console Google Cloud , accédez à la page Domaines de données.

    Accéder à "Domaines de données"

  2. Cliquez sur le nom de domaine pour accéder à la page d'informations le concernant.

  3. Dans l'onglet Vue d'ensemble, accédez à Informations, puis à Identifiants.

  4. Copiez la valeur du principal IAM. Le format est semblable à ce qui suit :

principal://dataplex.googleapis.com/projects/DOMAIN_PROJECT_NUMBER/name/locations/LOCATION_ID/dataDomains/DOMAIN_ID

REST

Pour obtenir le principal de domaine à l'aide de l'API REST, utilisez la méthode projects.locations.dataDomains.get pour obtenir le domaine de données. La réponse inclut le champ policyMember, qui contient le compte principal IAM (iamPolicyNamePrincipal ou iamPolicyUidPrincipal) pour le domaine :

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Google Cloud .
  • LOCATION_ID : région où se trouve le domaine de données. Exemple :us-central1
  • DOMAIN_ID : identifiant unique du domaine ou sous-domaine de données.

Méthode HTTP et URL :

GET https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/dataDomains/DOMAIN_ID

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/dataDomains/DOMAIN_ID"

PowerShell

Exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/dataDomains/DOMAIN_ID" | Select-Object -Expand Content

Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.

Autoriser le domaine sur une ressource

Avant de pouvoir lier une ressource, vous devez accorder au compte principal du domaine les rôles IAM requis sur la ressource cible.

Console

  1. Dans la console Google Cloud , accédez à la ressource cible et ouvrez le panneau des autorisations pour cette ressource :

    • Pour les projets, les ensembles de données Gemini Enterprise Agent Platform, les bases de données et tables Dataproc Metastore, les dépôts Dataform, les instances AlloyDB pour PostgreSQL et les tables BigLake, accédez à la page IAM, puis cliquez sur Accorder l'accès.
    • Pour les produits de données, accédez à la page Produits de données, sélectionnez le produit de données, puis cliquez sur Partager > Définir les autorisations.
    • Pour les ensembles de données et les tables BigQuery, accédez à la page