Contrôle des accès avec IAM

Cette page décrit les rôles et les autorisations Identity and Access Management (IAM) dont vous avez besoin pour acheter et gérer des produits commerciaux sur Cloud Marketplace.

Avec Cloud IAM, vous gérez le contrôle des accès en définissant qui (identité) dispose de quel type d'accès (rôle) pour quelle ressource. Pour les applications commerciales sur Cloud Marketplace, les utilisateurs de votre organisation Google Cloud ont besoin de rôles IAM pour s'abonner aux forfaits Cloud Marketplace et modifier les forfaits de facturation.

Avant de commencer

  • Pour attribuer des rôles et des autorisations Cloud Marketplace à l'aide de gcloud, installez la gcloud CLI. Sinon, vous pouvez attribuer des rôles à l'aide de la console Google Cloud .

Acheter et gérer des rôles

Nous vous recommandons d'attribuer le rôle IAM Administrateur de compte de facturation aux utilisateurs qui achètent des services sur Cloud Marketplace.

Les utilisateurs qui souhaitent accéder aux services doivent disposer au minimum du rôle Lecteur.

Accès administrateur pour OAuth 2.0 et la validation du domaine

Si votre solution Marketplace nécessite une validation OAuth 2.0 ou une configuration au niveau du domaine (par exemple, pour l'intégration SaaS), vous devez disposer d'autorisations d'administrateur pour gérer les paramètres d'identité et de sécurité du projet.

Scénario Autorisation ou rôle requis Action
Récupérer l'accès administrateur roles/resourcemanager.organizationAdmin Attribuez ce rôle au niveau de l'organisation pour gérer les propriétaires de projets.
Valider les domaines autorisés roles/cloudsecurityscanner.editor Utilisez ce rôle pour gérer la sécurité Web et les configurations liées au domaine.
Gérer la validation OAuth roles/owner ou roles/editor Configurez l'écran de consentement OAuth et envoyez les éléments de branding pour examen.

Pour résoudre les problèmes de validation courants, tels que "Domaine introuvable" ou des URL de page d'accueil qui ne répondent pas, assurez-vous que votre domaine est validé dans la Search Console et que vos règles de confidentialité sont accessibles au public. Pour en savoir plus sur la validation de l'identité, consultez Valider votre identité.

Pour un contrôle plus précis des autorisations des utilisateurs, vous pouvez créer des rôles personnalisés avec les autorisations que vous souhaitez accorder.

Exigences spécifiques aux produits

Pour utiliser les services suivants dans un projet Google Cloud , vous devez disposer du rôle Éditeur de projet :

  • Google Cloud Dataprep by Trifacta
  • Neo4j Aura Professional
  • Cloud Redis Enterprise

Liste des autorisations et des rôles IAM

Vous pouvez attribuer aux utilisateurs un ou plusieurs des rôles IAM suivants. Selon le rôle que vous attribuez aux utilisateurs, vous devez également l'attribuer à un compte de facturation, une organisation ou un projet Google Cloud . Pour en savoir plus, consultez la section Attribuer des rôles IAM aux utilisateurs.

Role Permissions

(roles/consumerprocurement.entitlementManager)

Allows managing entitlements and enabling, disabling, and inspecting service states for a consumer project.

commerceoffercatalog.offers.get

consumerprocurement.consents.check

consumerprocurement.consents.grant

consumerprocurement.consents.list

consumerprocurement.consents.revoke

consumerprocurement.entitlements.*

  • consumerprocurement.entitlements.get
  • consumerprocurement.entitlements.list

consumerprocurement.freeTrials.*

  • consumerprocurement.freeTrials.create
  • consumerprocurement.freeTrials.get
  • consumerprocurement.freeTrials.list

orgpolicy.policy.get

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.catalogs.listMembers

serviceusage.consumerpolicy.*

  • serviceusage.consumerpolicy.analyze
  • serviceusage.consumerpolicy.get
  • serviceusage.consumerpolicy.update

serviceusage.effectivepolicy.get

serviceusage.groups.*

  • serviceusage.groups.list
  • serviceusage.groups.listExpandedMembers
  • serviceusage.groups.listMembers

serviceusage.operations.get

serviceusage.services.disable

serviceusage.services.enable

serviceusage.services.get

serviceusage.services.list

serviceusage.services.listApis

serviceusage.services.listDependentServices

serviceusage.values.test

(roles/consumerprocurement.entitlementViewer)

Allows inspecting entitlements and service states for a consumer project.

commerceoffercatalog.offers.get

consumerprocurement.consents.check

consumerprocurement.consents.list

consumerprocurement.entitlements.*

  • consumerprocurement.entitlements.get
  • consumerprocurement.entitlements.list

consumerprocurement.freeTrials.get

consumerprocurement.freeTrials.list

orgpolicy.policy.get

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.catalogs.listMembers

serviceusage.consumerpolicy.analyze

serviceusage.consumerpolicy.get

serviceusage.effectivepolicy.get

serviceusage.groups.*

  • serviceusage.groups.list
  • serviceusage.groups.listExpandedMembers
  • serviceusage.groups.listMembers

serviceusage.services.get

serviceusage.services.list

serviceusage.services.listApis

serviceusage.services.listDependentServices

serviceusage.values.test

(roles/consumerprocurement.eventsViewer)

Allows viewing key events for an offer

consumerprocurement.events.*

  • consumerprocurement.events.get
  • consumerprocurement.events.list

(roles/consumerprocurement.licensePoolEditor)

Allows managing license pools and license assignments.

consumerprocurement.licensePools.*

  • consumerprocurement.licensePools.assign
  • consumerprocurement.licensePools.enumerateLicensedUsers
  • consumerprocurement.licensePools.get
  • consumerprocurement.licensePools.unassign
  • consumerprocurement.licensePools.update

(roles/consumerprocurement.licensePoolViewer)

Allows viewing license pools and license assignments.

consumerprocurement.licensePools.enumerateLicensedUsers

consumerprocurement.licensePools.get

(roles/consumerprocurement.orderAdmin)

Allows managing purchases.

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.list

billing.accounts.redeemPromotion

billing.credits.list

billing.resourceAssociations.create

commerceoffercatalog.*

  • commerceoffercatalog.agreements.get
  • commerceoffercatalog.agreements.list
  • commerceoffercatalog.documents.get
  • commerceoffercatalog.documents.list
  • commerceoffercatalog.offers.get

consumerprocurement.accounts.*

  • consumerprocurement.accounts.create
  • consumerprocurement.accounts.delete
  • consumerprocurement.accounts.get
  • consumerprocurement.accounts.list

consumerprocurement.consents.check

consumerprocurement.consents.grant

consumerprocurement.consents.list

consumerprocurement.consents.revoke

consumerprocurement.events.*

  • consumerprocurement.events.get
  • consumerprocurement.events.list

consumerprocurement.licensePools.*

  • consumerprocurement.licensePools.assign
  • consumerprocurement.licensePools.enumerateLicensedUsers
  • consumerprocurement.licensePools.get
  • consumerprocurement.licensePools.unassign
  • consumerprocurement.licensePools.update

consumerprocurement.orderAttributions.*

  • consumerprocurement.orderAttributions.get
  • consumerprocurement.orderAttributions.list
  • consumerprocurement.orderAttributions.update

consumerprocurement.orders.*

  • consumerprocurement.orders.cancel
  • consumerprocurement.orders.get
  • consumerprocurement.orders.list
  • consumerprocurement.orders.modify
  • consumerprocurement.orders.place

discoveryengine.billingAccountLicenseConfigs.*

  • discoveryengine.billingAccountLicenseConfigs.distribute
  • discoveryengine.billingAccountLicenseConfigs.get
  • discoveryengine.billingAccountLicenseConfigs.list
  • discoveryengine.billingAccountLicenseConfigs.retract

(roles/consumerprocurement.orderViewer)

Allows inspecting purchases.

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.list

billing.credits.list

commerceoffercatalog.*

  • commerceoffercatalog.agreements.get
  • commerceoffercatalog.agreements.list
  • commerceoffercatalog.documents.get
  • commerceoffercatalog.documents.list
  • commerceoffercatalog.offers.get

consumerprocurement.accounts.get

consumerprocurement.accounts.list

consumerprocurement.consents.check

consumerprocurement.consents.list

consumerprocurement.licensePools.enumerateLicensedUsers

consumerprocurement.licensePools.get

consumerprocurement.orderAttributions.get

consumerprocurement.orderAttributions.list

consumerprocurement.orders.get

consumerprocurement.orders.list

discoveryengine.billingAccountLicenseConfigs.get

discoveryengine.billingAccountLicenseConfigs.list

(roles/consumerprocurement.procurementAdmin)

Allows managing purchases, consents at both billing account and project level.

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.list

billing.accounts.redeemPromotion

billing.credits.list

billing.resourceAssociations.create

commerceoffercatalog.*

  • commerceoffercatalog.agreements.get
  • commerceoffercatalog.agreements.list
  • commerceoffercatalog.documents.get
  • commerceoffercatalog.documents.list
  • commerceoffercatalog.offers.get

consumerprocurement.*

  • consumerprocurement.accounts.create
  • consumerprocurement.accounts.delete
  • consumerprocurement.accounts.get
  • consumerprocurement.accounts.list
  • consumerprocurement.consents.allowProjectGrant
  • consumerprocurement.consents.check
  • consumerprocurement.consents.grant
  • consumerprocurement.consents.list
  • consumerprocurement.consents.revoke
  • consumerprocurement.entitlements.get
  • consumerprocurement.entitlements.list
  • consumerprocurement.events.get
  • consumerprocurement.events.list
  • consumerprocurement.freeTrials.create
  • consumerprocurement.freeTrials.get
  • consumerprocurement.freeTrials.list
  • consumerprocurement.licensePools.assign
  • consumerprocurement.licensePools.enumerateLicensedUsers
  • consumerprocurement.licensePools.get
  • consumerprocurement.licensePools.unassign
  • consumerprocurement.licensePools.update
  • consumerprocurement.orderAttributions.get
  • consumerprocurement.orderAttributions.list
  • consumerprocurement.orderAttributions.update
  • consumerprocurement.orders.cancel
  • consumerprocurement.orders.get
  • consumerprocurement.orders.list
  • consumerprocurement.orders.modify
  • consumerprocurement.orders.place

discoveryengine.billingAccountLicenseConfigs.*

  • discoveryengine.billingAccountLicenseConfigs.distribute
  • discoveryengine.billingAccountLicenseConfigs.get
  • discoveryengine.billingAccountLicenseConfigs.list
  • discoveryengine.billingAccountLicenseConfigs.retract

orgpolicy.policy.get

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.catalogs.listMembers

serviceusage.consumerpolicy.*

  • serviceusage.consumerpolicy.analyze
  • serviceusage.consumerpolicy.get
  • serviceusage.consumerpolicy.update

serviceusage.effectivepolicy.get

serviceusage.groups.*

  • serviceusage.groups.list
  • serviceusage.groups.listExpandedMembers
  • serviceusage.groups.listMembers

serviceusage.operations.get

serviceusage.services.disable

serviceusage.services.enable

serviceusage.services.get

serviceusage.services.list

serviceusage.services.listApis

serviceusage.services.listDependentServices

serviceusage.values.test

(roles/consumerprocurement.procurementViewer)

Allows inspecting purchases, consents and entitlements and service states for a consumer project.

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.list

billing.credits.list

commerceoffercatalog.*

  • commerceoffercatalog.agreements.get
  • commerceoffercatalog.agreements.list
  • commerceoffercatalog.documents.get
  • commerceoffercatalog.documents.list
  • commerceoffercatalog.offers.get

consumerprocurement.accounts.get

consumerprocurement.accounts.list

consumerprocurement.consents.check

consumerprocurement.consents.list

consumerprocurement.entitlements.*

  • consumerprocurement.entitlements.get
  • consumerprocurement.entitlements.list

consumerprocurement.freeTrials.get

consumerprocurement.freeTrials.list

consumerprocurement.licensePools.enumerateLicensedUsers

consumerprocurement.licensePools.get

consumerprocurement.orderAttributions.get

consumerprocurement.orderAttributions.list

consumerprocurement.orders.get

consumerprocurement.orders.list

discoveryengine.billingAccountLicenseConfigs.get

discoveryengine.billingAccountLicenseConfigs.list

orgpolicy.policy.get

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.catalogs.listMembers

serviceusage.consumerpolicy.analyze

serviceusage.consumerpolicy.get

serviceusage.effectivepolicy.get

serviceusage.groups.*

  • serviceusage.groups.list
  • serviceusage.groups.listExpandedMembers
  • serviceusage.groups.listMembers

serviceusage.services.get

serviceusage.services.list

serviceusage.services.listApis

serviceusage.services.listDependentServices

serviceusage.values.test

Attribuer des rôles IAM aux utilisateurs

Parmi les rôles du tableau précédent, les rôles consumerprocurement.orderAdmin et consumerprocurement.orderViewer doivent être attribués au niveau du compte de facturation ou de l'organisation, et les rôles consumerprocurement.entitlementManager et consumerprocurement.entitlementViewer doivent être attribués au niveau du projet ou de l'organisation.

Pour attribuer des rôles aux utilisateurs à l'aide de gcloud, exécutez l'une des commandes suivantes :

Organisation

Vous devez disposer du rôle resourcemanager.organizationAdmin pour attribuer des rôles au niveau de l'organisation.

gcloud organizations add-iam-policy-binding organization-id \
--member=member --role=role-id

Les valeurs d'espaces réservés sont les suivantes :

  • organization-id : ID numérique de l'organisation pour laquelle vous accordez le rôle.
  • member : utilisateur auquel vous accordez l'accès.
  • role-id : ID du rôle dans le tableau précédent.

Compte de facturation

Vous devez disposer du rôle billing.admin pour attribuer des rôles au niveau du compte de facturation.

gcloud beta billing accounts set-iam-policy account-id \
policy-file

Les valeurs d'espaces réservés sont les suivantes :

  • account-id : ID de votre compte de facturation, que vous pouvez obtenir sur la page Gérer les comptes de facturation.
  • policy-file : fichier de stratégie IAM, au format JSON ou YAML. Le fichier de stratégie doit contenir les ID des rôles du tableau précédent et les utilisateurs auxquels vous attribuez ces rôles.

Projet

Vous devez disposer du rôle resourcemanager.folderAdmin pour attribuer des rôles au niveau du projet.

gcloud projects add-iam-policy-binding project-id \
--member=member --role=role-id

Les valeurs d'espaces réservés sont les suivantes :

  • project-id : projet pour lequel vous attribuez le rôle.
  • member : utilisateur auquel vous accordez l'accès.
  • role-id : ID du rôle dans le tableau précédent.

Pour savoir comment attribuer des rôles aux utilisateurs à l'aide de la console Google Cloud , consultez la documentation IAM sur l'attribution, la modification et la révocation des accès pour les utilisateurs.

Utiliser des rôles personnalisés avec Cloud Marketplace

Si vous souhaitez contrôler avec précision les autorisations que vous accordez aux utilisateurs, vous pouvez créer des rôles personnalisés avec les autorisations que vous souhaitez accorder.

Si vous créez un rôle personnalisé pour les utilisateurs qui achètent des services sur Cloud Marketplace, le rôle doit inclure ces autorisations pour le compte de facturation qu'ils utilisent pour acheter des services :

Accéder aux sites Web des partenaires avec l'authentification unique (SSO)

Certains produits de l'API Cloud Marketplace sont compatibles avec l'authentification unique (SSO) sur le site Web externe d'un partenaire. Les utilisateurs autorisés au sein de l'organisation ont accès au bouton "GÉRER SUR LE FOURNISSEUR" sur la page produit détaillée. Ce bouton redirige les utilisateurs vers le site Web du partenaire. Dans certains cas, les utilisateurs sont invités à se connecter avec Google. Dans d'autres cas, les utilisateurs sont connectés dans le contexte d'un compte partagé.

Pour accéder à la fonctionnalité SSO, les utilisateurs doivent accéder à la page d'informations du produit et sélectionner un projet approprié. Le projet doit être associé au compte de facturation dans lequel le forfait a été souscrit. Pour en savoir plus sur la gestion des forfaits de l'API Cloud Marketplace, consultez Gérer les forfaits de facturation.

De plus, l'utilisateur doit disposer des autorisations IAM suffisantes dans le projet sélectionné. Pour la plupart des produits, le rôle roles/consumerprocurement.entitlementManager (ou le rôle de base roles/editor) est requis.

Autorisations minimales pour des produits spécifiques

Les produits suivants peuvent fonctionner avec un ensemble d'autorisations différent pour accéder aux fonctionnalités d'authentification unique :

  • Apache Kafka sur Confluent Cloud
  • DataStax Astra pour Apache Cassandra
  • Elastic Cloud
  • Neo4j Aura Professional
  • Cloud Redis Enterprise

Pour ces produits, vous pouvez utiliser les autorisations minimales suivantes :

  • consumerprocurement.entitlements.get
  • consumerprocurement.entitlements.list
  • serviceusage.services.get
  • serviceusage.services.list
  • resourcemanager.projects.get

Ces autorisations sont généralement accordées avec les rôles roles/consumerprocurement.entitlementManager ou roles/consumerprocurement.entitlementViewer.