Controllo dell'accesso con IAM

Questa pagina descrive i ruoli e le autorizzazioni Identity and Access Management (IAM) necessari per acquistare e gestire prodotti commerciali su Cloud Marketplace.

Con IAM, gestisci il controllo dell'accesso definendo chi (identità) ha quale accesso (ruolo) a quale risorsa. Per le app commerciali su Cloud Marketplace, gli utenti della tua Google Cloud organizzazione richiedono ruoli IAM per registrarsi ai piani di Cloud Marketplace e per apportare modifiche ai piani di fatturazione.

Prima di iniziare

  • Per concedere ruoli e autorizzazioni di Cloud Marketplace utilizzando gcloud, installa la gcloud CLI. In caso contrario, puoi concedere i ruoli utilizzando la Google Cloud console.

Acquistare e gestire i ruoli

Ti consigliamo di assegnare il ruolo IAM Amministratore account di fatturazione agli utenti che acquistano servizi da Cloud Marketplace.

Gli utenti che vogliono accedere ai servizi devono avere almeno il ruolo Visualizzatore.

Per un controllo più granulare sulle autorizzazioni degli utenti, puoi creare ruoli personalizzati con le autorizzazioni che vuoi concedere.

Requisiti specifici del prodotto

Per utilizzare i seguenti servizi in un Google Cloud progetto, devi avere il ruolo Editor progetto:

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

Elenco di ruoli e autorizzazioni IAM

Puoi concedere agli utenti uno o più dei seguenti ruoli IAM. A seconda del ruolo che concedi agli utenti, devi anche assegnare il ruolo a un Google Cloud account di fatturazione, a un'organizzazione o a un progetto. Per maggiori dettagli, consulta la sezione Concedere ruoli IAM agli utenti.

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

Concedere ruoli IAM agli utenti

Tra i ruoli nella tabella precedente, i ruoli consumerprocurement.orderAdmin e consumerprocurement.orderViewer devono essere assegnati a livello di account di fatturazione o organizzazione, mentre i ruoli consumerprocurement.entitlementManager e consumerprocurement.entitlementViewer devono essere assegnati a livello di progetto o organizzazione.

Per concedere ruoli agli utenti utilizzando gcloud, esegui uno dei seguenti comandi:

Organizzazione

Devi avere il resourcemanager.organizationAdmin ruolo per assegnare ruoli a livello di organizzazione.

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

I valori dei segnaposto sono:

  • organization-id: l'ID numerico dell' organizzazione per cui stai concedendo il ruolo.
  • member: l'utente a cui stai concedendo l'accesso.
  • role-id: l'ID del ruolo, dalla tabella precedente.

Account di fatturazione

Devi avere il billing.admin ruolo per assegnare ruoli a livello di account di fatturazione.

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

I valori dei segnaposto sono:

Progetto

Devi avere il resourcemanager.folderAdmin ruolo per assegnare ruoli a livello di progetto.

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

I valori dei segnaposto sono:

  • project-id: il progetto per cui stai concedendo il ruolo.
  • member: l'utente a cui stai concedendo l'accesso.
  • role-id: l'ID del ruolo, dalla tabella precedente.

Per concedere ruoli agli utenti utilizzando la Google Cloud console, consulta la documentazione IAM su Concessione, modifica e revoca dell'accesso per gli utenti.

Utilizzare ruoli personalizzati con Cloud Marketplace

Se vuoi un controllo granulare sulle autorizzazioni che concedi agli utenti, puoi creare ruoli personalizzati con le autorizzazioni che vuoi concedere.

Se stai creando un ruolo personalizzato per gli utenti che acquistano servizi da Cloud Marketplace, il ruolo deve includere le seguenti autorizzazioni per l'account di fatturazione che utilizzano per acquistare i servizi:

Accedere ai siti web dei partner con il Single Sign-On (SSO)

Alcuni prodotti API di Cloud Marketplace supportano il Single Sign-On (SSO) al sito web esterno di un partner. Gli utenti autorizzati all'interno dell'organizzazione hanno accesso a un pulsante "GESTISCI SUL FORNITORE" nella pagina dei dettagli del prodotto. Questo pulsante indirizza gli utenti al sito web del partner. In alcuni casi, agli utenti viene chiesto di "Accedere con Google". In altri casi, gli utenti accedono a un contesto di account condiviso.

Per accedere alla funzionalità SSO, gli utenti vanno alla pagina dei dettagli del prodotto e selezionano un progetto appropriato. Il progetto deve essere collegato a un account di fatturazione in cui è stato acquistato il piano. Per maggiori dettagli sulla gestione dei piani API di Cloud Marketplace, consulta Gestire i piani di fatturazione.

Inoltre, l'utente deve disporre di autorizzazioni IAM sufficienti all'interno del progetto selezionato. Per la maggior parte dei prodotti è necessario il roles/consumerprocurement.entitlementManager (o il roles/editor ruolo di base).

Autorizzazioni minime per prodotti specifici

I seguenti prodotti possono operare su un insieme diverso di autorizzazioni per accedere alle funzionalità SSO:

  • Apache Kafka su Confluent Cloud
  • DataStax Astra per Apache Cassandra
  • Elastic Cloud
  • Neo4j Aura Professional
  • Redis Enterprise Cloud

Per questi prodotti, puoi utilizzare le seguenti autorizzazioni minime:

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

Queste autorizzazioni vengono in genere concesse con i ruoli roles/consumerprocurement.entitlementManager o roles/consumerprocurement.entitlementViewer.