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 :
- Obtenez l'ID principal du domaine que vous souhaitez autoriser. Pour en savoir plus, consultez Obtenir le principal du domaine.
- Autorisez le domaine pour accorder l'accès à une ressource ou à un projet spécifique.
- 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.getresourcemanager.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.getresourcemanager.projects.updateresourcemanager.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.getbigquery.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.getbigquery.datasets.updateTagbigquery.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.getbigquery.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.getbigquery.tables.updatebigquery.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.getdataplex.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.getdataplex.dataProducts.updatedataplex.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
|
|
| Administrateur | roles/dataform.codeOwner |
Accorde au domaine un accès complet aux ressources de code et de dépôt Dataform. |
dataform.repositories.get
|
|
| 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
|
|
| 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
|
|
| 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
|
|
| 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
|
|
| 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
|
|
| 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
|
|
| Administrateur | roles/biglake.admin |
Accorde au domaine un accès complet à toutes les ressources BigLake. |
biglake.tables.get
|
|
| 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
|
|
| 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
|
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.
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 :
-
Gérer les domaines et les liaisons de ressources :
Éditeur de domaine de données Dataplex (
roles/dataplex.dataDomainEditor)
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
Dans la console Google Cloud , accédez à la page Domaines de données.
Cliquez sur le nom de domaine pour accéder à la page d'informations le concernant.
Dans l'onglet Vue d'ensemble, accédez à Informations, puis à Identifiants.
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-central1DOMAIN_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
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