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'inscrire aux forfaits Cloud Marketplace et pour modifier les forfaits.

Avant de commencer

  • Pour accorder 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 du compte de facturation aux utilisateurs qui achètent des services depuis Cloud Marketplace.

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

Pour un contrôle plus précis sur les 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 attribuer le rôle à 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.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.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.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.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.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.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.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.values.test

Attribuer des rôles IAM aux utilisateurs

À partir des rôles dans le tableau ci-dessus, vous devez attribuer les rôles consumerprocurement.orderAdmin et consumerprocurement.orderViewer au niveau du compte de facturation ou de l'organisation, et 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 attribuez 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 : votre ID de 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 attribuer des rôles aux utilisateurs à l'aide de la console Google Cloud , consultez la documentation IAM sur Accorder, modifier et révoquer les accès des 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 dans Cloud Marketplace, ce rôle doit inclure les autorisations suivantes 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 API Cloud Marketplace sont compatibles avec l'authentification unique (SSO, Single Sign-On) sur le site Web externe d'un partenaire. Les utilisateurs autorisés de l'organisation ont accès à un bouton "GÉRER LE FOURNISSEUR" sur la page des détails du produit. 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 d'API Cloud Marketplace, consultez Gérer les modes de facturation.

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

Autorisations minimales pour des produits spécifiques

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

  • 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.