Contrôle des accès avec IAM

Cette page décrit les rôles et les autorisations de gestion de l'authentification et des accès (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.

Rôles IAM pour l'achat et la gestion de produits

Nous vous recommandons d'attribuer le rôle IAM d'administrateur de la facturation (roles/billing.admin) 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 de lecteur de projet (roles/viewer).

Si vous avez besoin d'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.

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.

Rôle Autorisations

(roles/commercebusinessenablement.admin)

Administrateur de diverses ressources de configuration du fournisseur

commercebusinessenablement.leadgenConfig.*

  • commercebusinessenablement.leadgenConfig.get
  • commercebusinessenablement.leadgenConfig.update

commercebusinessenablement.partnerAccounts.*

  • commercebusinessenablement.partnerAccounts.get
  • commercebusinessenablement.partnerAccounts.list

commercebusinessenablement.partnerInfo.get

commercebusinessenablement.resellerConfig.get

resourcemanager.organizations.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commercebusinessenablement.paymentConfigAdmin)

Administration des ressources de configuration de paiement

commercebusinessenablement.paymentConfig.*

  • commercebusinessenablement.paymentConfig.get
  • commercebusinessenablement.paymentConfig.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commercebusinessenablement.paymentConfigViewer)

Lecteur de ressources de configuration de paiement

commercebusinessenablement.paymentConfig.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commercebusinessenablement.resellerDiscountAdmin)

Fournit un accès administrateur aux offres de remise revendeur

commercebusinessenablement.partnerAccounts.*

  • commercebusinessenablement.partnerAccounts.get
  • commercebusinessenablement.partnerAccounts.list

commercebusinessenablement.partnerInfo.get

commercebusinessenablement.resellerConfig.get

commercebusinessenablement.resellerDiscountOffers.*

  • commercebusinessenablement.resellerDiscountOffers.cancel
  • commercebusinessenablement.resellerDiscountOffers.create
  • commercebusinessenablement.resellerDiscountOffers.list

resourcemanager.organizations.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commercebusinessenablement.resellerDiscountViewer)

Fournit un accès en lecture seule aux offres de remise revendeur

commercebusinessenablement.partnerAccounts.*

  • commercebusinessenablement.partnerAccounts.get
  • commercebusinessenablement.partnerAccounts.list

commercebusinessenablement.partnerInfo.get

commercebusinessenablement.resellerConfig.get

commercebusinessenablement.resellerDiscountOffers.list

resourcemanager.organizations.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commercebusinessenablement.viewer)

Lecteur de diverses ressources de configuration du fournisseur

commercebusinessenablement.leadgenConfig.get

commercebusinessenablement.partnerAccounts.*

  • commercebusinessenablement.partnerAccounts.get
  • commercebusinessenablement.partnerAccounts.list

commercebusinessenablement.partnerInfo.get

commercebusinessenablement.resellerConfig.get

resourcemanager.organizations.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commerceoffercatalog.offersViewer)

Autorise l'affichage des offres

commerceoffercatalog.*

  • commerceoffercatalog.documents.get
  • commerceoffercatalog.offers.get

(roles/commerceorggovernance.admin)

Accès complet aux API Organization Governance

commerceorggovernance.*

  • commerceorggovernance.collections.create
  • commerceorggovernance.collections.delete
  • commerceorggovernance.collections.get
  • commerceorggovernance.collections.list
  • commerceorggovernance.collections.update
  • commerceorggovernance.consumerSharingPolicies.get
  • commerceorggovernance.consumerSharingPolicies.update
  • commerceorggovernance.organizationSettings.get
  • commerceorggovernance.organizationSettings.update
  • commerceorggovernance.services.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commerceorggovernance.viewer)

Accès complet aux API Organization Governance en lecture seule.

commerceorggovernance.collections.get

commerceorggovernance.collections.list

commerceorggovernance.consumerSharingPolicies.get

commerceorggovernance.organizationSettings.get

commerceorggovernance.services.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commercepricemanagement.eventsViewer)

Permet d'afficher les événements clés d'une offre

commerceprice.events.*

  • commerceprice.events.get
  • commerceprice.events.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commercepricemanagement.privateOffersAdmin)

Permet de gérer les offres privées

commerceprice.*

  • commerceprice.events.get
  • commerceprice.events.list
  • commerceprice.privateoffers.cancel
  • commerceprice.privateoffers.create
  • commerceprice.privateoffers.delete
  • commerceprice.privateoffers.get
  • commerceprice.privateoffers.list
  • commerceprice.privateoffers.publish
  • commerceprice.privateoffers.update

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.services.get

serviceusage.services.list

(roles/commercepricemanagement.viewer)

Permet d'afficher des offres, des essais gratuits, des codes SKU

commerceprice.privateoffers.get

commerceprice.privateoffers.list

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.services.get

serviceusage.services.list

(roles/commerceproducer.admin)

Accorde un accès complet à toutes les ressources de l'API Cloud Commerce Producer.

commercebusinessenablement.partnerInfo.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commerceproducer.viewer)

Accorde un accès en lecture à toutes les ressources de l'API Cloud Commerce Producer.

commercebusinessenablement.partnerInfo.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/consumerprocurement.entitlementManager)

Permet de gérer les droits et d'activer, de désactiver et d'inspecter les états de service pour un projet destiné à un consommateur.

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.operations.get

serviceusage.services.disable

serviceusage.services.enable

serviceusage.services.get

serviceusage.services.list

(roles/consumerprocurement.entitlementViewer)

Permet d'inspecter les droits et les états de service pour un projet destiné à un consommateur.

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.services.get

serviceusage.services.list

(roles/consumerprocurement.eventsViewer)

Permet d'afficher les événements clés d'une offre

consumerprocurement.events.*

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

(roles/consumerprocurement.orderAdmin)

Permet de gérer les achats.

billing.accounts.get

billing.accounts.getiamPolicy

billing.accounts.list

billing.accounts.redeemPromotion

billing.credits.list

billing.resourceAssociations.create

commerceoffercatalog.*

  • commerceoffercatalog.documents.get
  • 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.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

(roles/consumerprocurement.orderViewer)

Permet d'inspecter les achats.

billing.accounts.get

billing.accounts.getiamPolicy

billing.accounts.list

billing.credits.list

commerceoffercatalog.*

  • commerceoffercatalog.documents.get
  • commerceoffercatalog.offers.get

consumerprocurement.accounts.get

consumerprocurement.accounts.list

consumerprocurement.consents.check

consumerprocurement.consents.list

consumerprocurement.orderAttributions.get

consumerprocurement.orderAttributions.list

consumerprocurement.orders.get

consumerprocurement.orders.list

(roles/consumerprocurement.procurementAdmin)

Permet de gérer les achats et les autorisations au niveau du compte de facturation et du projet.

billing.accounts.get

billing.accounts.getiamPolicy

billing.accounts.list

billing.accounts.redeemPromotion

billing.credits.list

billing.resourceAssociations.create

commerceoffercatalog.*

  • commerceoffercatalog.documents.get
  • 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.orderAttributions.get
  • consumerprocurement.orderAttributions.list
  • consumerprocurement.orderAttributions.update
  • consumerprocurement.orders.cancel
  • consumerprocurement.orders.get
  • consumerprocurement.orders.list
  • consumerprocurement.orders.modify
  • consumerprocurement.orders.place

orgpolicy.policy.get

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.operations.get

serviceusage.services.disable

serviceusage.services.enable

serviceusage.services.get

serviceusage.services.list

(roles/consumerprocurement.procurementViewer)

Permet d'inspecter les achats, autorisations, droits et états de service pour un projet destiné à un consommateur.

billing.accounts.get

billing.accounts.getiamPolicy

billing.accounts.list

billing.credits.list

commerceoffercatalog.*

  • commerceoffercatalog.documents.get
  • 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.orderAttributions.get

consumerprocurement.orderAttributions.list

consumerprocurement.orders.get

consumerprocurement.orders.list

orgpolicy.policy.get

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.services.get

serviceusage.services.list

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 : 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 auprès de 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 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 Marketplace, consultez la page 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 actuellement 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 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.