Configurer les rôles BigQuery Sharing

Pour gérer de manière sécurisée l'accès à vos échanges de données et fiches BigQuery Sharing, accordez des rôles IAM (Identity and Access Management) spécifiques pour BigQuery Sharing (anciennement Analytics Hub). Vous contrôlez les autorisations des utilisateurs pour vos données en attribuant ces rôles, ce qui garantit que seuls les utilisateurs autorisés peuvent découvrir, s'abonner à et gérer vos ressources de partage de données.

Rôles IAM BigQuery Sharing

Les sections suivantes décrivent les rôles BigQuery Sharing prédéfinis. Vous pouvez attribuer ces rôles aux utilisateurs afin qu'ils puissent effectuer diverses tâches sur vos échanges de données et vos fiches.

Rôle d'administrateur Analytics Hub

Pour gérer les échanges de données, BigQuery Sharing fournit le rôle d'administrateur Analytics Hub (roles/analyticshub.admin) que vous pouvez accorder pour un Google Cloud projet ou pour un échange de données. Ce rôle permet aux utilisateurs d'effectuer les opérations suivantes :

  • Créer, mettre à jour et supprimer des échanges de données.
  • Créer, mettre à jour, supprimer et partager des fiches.
  • Gérer les administrateurs, éditeurs, abonnés et lecteurs de fiches, ainsi que les administrateurs BigQuery Sharing.

Avec ce rôle, vous devenez un administrateur BigQuery Sharing.

Rôles d'éditeur et d'administrateur de fiches Analytics Hub

Pour gérer les fiches, Sharing fournit les rôles prédéfinis suivants que vous pouvez attribuer pour un projet, un échange de données ou une fiche :

Rôles d'abonné et de lecteur Analytics Hub

Pour afficher des fiches et des échanges de données, et vous y abonner, Sharing fournit les rôles prédéfinis suivants que vous pouvez attribuer pour un projet, un échange de données ou une fiche :

  • Le rôle d'abonné Analytics Hub (roles/analyticshub.subscriber), qui permet aux utilisateurs d'afficher des fiches et de s'y abonner.

    Avec ce rôle, vous devenez un abonné BigQuery Sharing.

  • Le rôle de lecteur Analytics Hub (roles/analyticshub.viewer), qui permet aux utilisateurs d'afficher les fiches et les autorisations des échanges de données.

    Avec ce rôle, vous devenez un lecteur BigQuery Sharing.

Rôle de propriétaire de l'abonnement Analytics Hub

Pour gérer les abonnements, Sharing fournit le rôle prédéfini suivant que vous pouvez attribuer au niveau du projet :

Avec ce rôle, vous devenez un propriétaire d'abonnement BigQuery Sharing.

Attribuer des rôles IAM BigQuery Sharing

Selon vos besoins, vous pouvez attribuer les rôles IAM aux niveaux suivants de la hiérarchie des ressources :

  • Projet. Si vous accordez un rôle pour un projet, il s'applique à tous les échanges de données et fiches de ce projet.
  • Échange de données. Si vous accordez un rôle pour un échange de données, il s'applique à toutes les fiches de cet échange de données.
  • Fiche. Si vous accordez un rôle pour une fiche, il s'applique uniquement à cette fiche spécifique.

Attribuer le rôle pour un projet

Si vous souhaitez définir des stratégies IAM sur un projet, vous devez disposer du rôle d'administrateur IAM de projet (roles/resourcemanager.projectIamAdmin) sur ce projet. Pour accorder les rôles Identity and Access Management BigQuery Sharing prédéfinis pour un projet, sélectionnez l'une des options suivantes.

Console

  1. Accédez à IAM pour le projet.

    Accéder à IAM

  2. Cliquez sur Accorder l'accès.

  3. Dans le champ Nouveaux comptes principaux, saisissez l'adresse e-mail de l'identité à laquelle vous souhaitez accorder l'accès. Exemple :

    • Adresse e-mail du compte Google : test-user@gmail.com
    • Groupe Google : admins@googlegroups.com
    • Compte de service : server@example.gserviceaccount.com
    • Domaine Google Workspace : example.com
  4. Dans la liste Sélectionner un rôle , maintenez le pointeur sur Analytics Hub , puis sélectionnez l'un des rôles suivants :

    • Administrateur Analytics Hub
    • Administrateur de fiches Analytics Hub
    • Éditeur Analytics Hub
    • Abonné Analytics Hub
    • Propriétaire de l'abonnement Analytics Hub
    • Lecteur Analytics Hub
  5. Facultatif : Pour contrôler davantage l'accès aux Google Cloud ressources, ajoutez une liaison de rôle conditionnelle.

  6. Enregistrez les modifications.

    Vous pouvez supprimer et mettre à jour les administrateurs de projet à l'aide du même panneau IAM.

gcloud

Pour attribuer des rôles au niveau d'un projet, utilisez la commande gcloud projects add-iam-policy-binding :

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='PRINCIPAL' \
    --role='roles/analyticshub.admin'

Remplacez les éléments suivants :

  • PROJECT_ID : projet, par exemple my-project-1
  • PRINCIPAL: identité valide à laquelle vous souhaitez accorder le rôle. Exemple :

    • Adresse e-mail du compte Google : user:user@gmail.com
    • Groupe Google : group:admins@googlegroups.com
    • Compte de service : serviceAccount:server@example.gserviceaccount.com
    • Domaine Google Workspace : domain:example.com

API

  1. Lisez la stratégie existante à l'aide de la méthode getIamPolicy de la ressource. Pour les projets, utilisez la projects.getIamPolicy méthode.

    POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
    

    Remplacez PROJECT_ID par le projet, par exemple my-project-1.

  2. Pour ajouter des comptes principaux et les rôles qui leur sont associés, modifiez la stratégie à l'aide d'un éditeur de texte. Utilisez le format suivant pour ajouter des membres :

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    Par exemple, pour accorder le rôle roles/analyticshub.admin à group:admins@example.com, ajoutez la liaison suivante à la stratégie :

    {
     "members": [
       "group:admins@example.com"
     ],
     "role":"roles/analyticshub.admin"
    }
    
  3. Écrivez la stratégie mise à jour à l'aide de la méthode setIamPolicy.

    Par exemple, pour définir une stratégie au niveau du projet, utilisez la project.setIamPolicy méthode. Dans le corps de la requête, indiquez la stratégie IAM mise à jour de l'étape précédente.

    POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
    

    Remplacez PROJECT_ID par l'ID du projet.

Attribuer le rôle pour un échange de données

Pour attribuer le rôle pour un échange de données, procédez comme suit :

Console

  1. Dans la Google Cloud console, accédez à la page Partage (Analytics Hub).

    Accéder à Partage (Analytics Hub)

  2. Cliquez sur le nom de l'échange de données pour lequel vous souhaitez définir des autorisations.

  3. Accédez à l'onglet Détails.

  4. Cliquez sur Définir les autorisations.

  5. Pour ajouter des comptes principaux, cliquez sur Ajouter un compte principal.

  6. Dans le champ Nouveaux comptes principaux, ajoutez les ID d'adresse e-mail auxquels vous souhaitez accorder l'accès. Vous pouvez également utiliser allUsers pour rendre une ressource publique et accessible à tous sur Internet, ou allAuthenticatedUsers pour la rendre accessible uniquement aux utilisateurs Google connectés.

  7. Dans le menu Sélectionner un rôle, sélectionnez Analytics Hub, puis l'un des rôles IAM (Identity and Access Management) suivants :

    • Administrateur Analytics Hub
    • Administrateur de fiches Analytics Hub
    • Éditeur Analytics Hub
    • Abonné Analytics Hub
    • Propriétaire de l'abonnement Analytics Hub
    • Lecteur Analytics Hub
  8. Cliquez sur Enregistrer.

API

  1. Consultez la stratégie existante à l'aide de la méthode projects.locations.dataExchanges.getIamPolicy, qui exploite la méthode de création de liste getIamPolicy :

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:getIamPolicy
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet, par exemple my-project-1
    • LOCATION: emplacement de votre échange de données Utilisez des lettres minuscules.
    • DATAEXCHANGE_ID : ID de l'échange de données

    BigQuery Sharing (anciennement Analytics Hub) renvoie la stratégie actuelle.

  2. Pour ajouter ou supprimer des membres et les rôles IAM qui leur sont associés, modifiez la stratégie à l'aide d'un éditeur de texte. Utilisez le format suivant pour ajouter des membres :

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    Par exemple, pour accorder le rôle roles/analyticshub.subscriber à group:subscribers@example.com, ajoutez la liaison suivante à la stratégie :

    {
     "members": [
       "group:subscribers@example.com"
     ],
     "role":"roles/analyticshub.subscriber"
    }
    
  3. Écrivez la stratégie mise à jour à l'aide de la méthode projects.locations.dataExchanges.setIamPolicy. Dans le corps de la requête, indiquez la stratégie IAM mise à jour de l'étape précédente.

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:setIamPolicy
    

    Dans le corps de la requête, indiquez les informations détaillées relatives à la liste demandée. Si la requête aboutit, le corps de la réponse contient le détail de la liste.

Lorsque vous accordez des autorisations au niveau de la ressource, par exemple sur un échange de données, vous devez utiliser des lettres minuscules pour la partie de l'emplacement du nom de la ressource. L'utilisation de valeurs en majuscules ou mixtes peut entraîner des erreurs Permission Denied.

  • Utilisez projects/myproject/locations/us/dataExchanges/123.
  • Évitez projects/myproject/locations/US/dataExchanges/123.
  • Évitez projects/myproject/locations/Eu/dataExchanges/123.

Vous pouvez supprimer et mettre à jour les rôles d'échange de données à l'aide du même panneau IAM.

Attribuer le rôle pour une fiche

Pour attribuer le rôle pour une fiche, procédez comme suit :

Console

  1. Dans la Google Cloud console, accédez à la page Partage (Analytics Hub).

    Accéder à Partage (Analytics Hub)

  2. Cliquez sur le nom de l'échange de données contenant la fiche.

  3. Cliquez sur la fiche pour laquelle vous souhaitez ajouter des utilisateurs.

  4. Cliquez sur  Définir les autorisations.

  5. Pour ajouter des comptes principaux, cliquez sur Ajouter un compte principal.

  6. Dans le champ Nouveaux comptes principaux, ajoutez les ID d'adresse e-mail de l'identité à laquelle vous souhaitez accorder l'accès.

  7. Dans le menu Sélectionner un rôle, sélectionnez Analytics Hub, puis l'un des rôles IAM (Identity and Access Management) suivants :

    • Administrateur Analytics Hub
    • Administrateur de fiches Analytics Hub
    • Éditeur Analytics Hub
    • Abonné Analytics Hub
    • Propriétaire de l'abonnement Analytics Hub
    • Lecteur Analytics Hub
  8. Cliquez sur Enregistrer.

API

  1. Consultez la stratégie existante à l'aide de la méthode projects.locations.dataExchanges.listings.getIamPolicy, qui exploite la méthode de création de liste getIamPolicy :

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:getIamPolicy
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet, par exemple my-project-1
    • LOCATION: emplacement de l'échange de données contenant la liste Utilisez des lettres minuscules.
    • DATAEXCHANGE_ID : ID de l'échange de données
    • LISTING_ID : ID de la liste.

    Sharing renvoie la stratégie actuelle.

  2. Pour ajouter ou supprimer des membres et les rôles IAM qui leur sont associés, modifiez la stratégie à l'aide d'un éditeur de texte. Utilisez le format suivant pour ajouter des membres :

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    Par exemple, pour accorder le rôle roles/analyticshub.publisher à group:publishers@example.com, ajoutez la liaison suivante à la stratégie :

    {
     "members": [
       "group:publishers@example.com"
     ],
     "role":"roles/analyticshub.publisher"
    }
    
  3. Écrivez la stratégie mise à jour à l'aide de la méthode projects.locations.dataExchanges.listings.setIamPolicy. Dans le corps de la requête, indiquez la stratégie IAM mise à jour de l'étape précédente.

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING-ID:setIamPolicy
    

    Dans le corps de la requête, indiquez les informations détaillées relatives à la liste demandée. Si la requête aboutit, le corps de la réponse contient le détail de la liste.

Lorsque vous accordez des autorisations au niveau de la ressource, par exemple sur une fiche, vous devez utiliser des lettres minuscules pour la partie de l'emplacement du nom de la ressource. L'utilisation de valeurs en majuscules ou mixtes peut entraîner des erreurs Permission Denied.

  • Utilisez projects/myproject/locations/us/dataExchanges/123/listings/456.
  • Évitez projects/myproject/locations/US/dataExchanges/123/listings/456.
  • Évitez projects/myproject/locations/Eu/dataExchanges/123/listings/456.

Vous pouvez supprimer et mettre à jour les rôles de fiche à l'aide du même panneau IAM.

Étape suivante