Controllo dell'accesso con IAM

Questa pagina descrive i ruoli e le autorizzazioni di 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) per quale risorsa. Per le app commerciali su Cloud Marketplace, gli utenti della tua organizzazione Google Cloud devono disporre di ruoli IAM per registrarsi ai piani di Cloud Marketplace e apportare modifiche ai piani di fatturazione.

Prima di iniziare

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

Ruoli di acquisto e gestione

Ti consigliamo di assegnare il ruolo IAM Billing Account Administrator agli utenti che acquistano servizi da Cloud Marketplace.

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

Accesso amministrativo per OAuth 2.0 e verifica del dominio

Se la tua soluzione Marketplace richiede la verifica OAuth 2.0 o la configurazione a livello di dominio (ad esempio per l'integrazione SaaS), devi disporre delle autorizzazioni amministrative per gestire le impostazioni di identità e sicurezza del progetto.

Scenario Autorizzazione o ruolo obbligatorio Azione
Recupera l'accesso amministrativo roles/resourcemanager.organizationAdmin Concedi questo ruolo a livello di organizzazione per gestire i Project Owner.
Verifica i domini autorizzati roles/cloudsecurityscanner.editor Utilizza questo ruolo per gestire la sicurezza web e le configurazioni relative ai domini.
Gestisci la verifica OAuth roles/owner o roles/editor Configura la schermata per il consenso OAuth e invia il branding per la revisione.

Per risolvere i problemi di verifica comuni, come "Dominio non trovato" o URL della home page che non rispondono, assicurati che il tuo dominio sia verificato in Search Console e che le tue norme sulla privacy siano accessibili pubblicamente. Per saperne di più sulla verifica dell'identità, consulta l'articolo Verifica l'identità.

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

Requisiti specifici dei prodotti

Per utilizzare i seguenti servizi in un progetto Google Cloud , devi disporre del ruolo Project Editor:

  • 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 account di fatturazione, un'organizzazione o un progetto Google Cloud . Per maggiori dettagli, consulta la sezione Concedi i 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.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

Concedi 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 di organizzazione, mentre i ruoli consumerprocurement.entitlementManager e consumerprocurement.entitlementViewer devono essere assegnati a livello di progetto o di organizzazione.

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

Organizzazione

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

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

I valori 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 ruolo della tabella precedente.

Account di fatturazione

Devi disporre del ruolo billing.admin per assegnare i ruoli a livello di account di fatturazione.

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

I valori segnaposto sono:

Progetto

Devi disporre del ruolo resourcemanager.folderAdmin per assegnare ruoli a livello di progetto.

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

I valori 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 ruolo della tabella precedente.

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

Utilizzo di 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 queste autorizzazioni per l'account di fatturazione che utilizzano per acquistare i servizi:

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

Alcuni prodotti API Marketplace Cloud supportano il Single Sign-On (SSO) per un sito web esterno di un partner. Gli utenti autorizzati all'interno dell'organizzazione hanno accesso a un pulsante "GESTISCI SUL PROVIDER" 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 hanno eseguito l'accesso in un contesto di account condiviso.

Per accedere alla funzionalità SSO, gli utenti devono andare alla pagina dei dettagli del prodotto e selezionare un progetto appropriato. Il progetto deve essere collegato a un account di fatturazione in cui è stato acquistato il piano. Per informazioni dettagliate sulla gestione dei piani API di Cloud Marketplace, consulta Gestione dei piani di fatturazione.

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

Autorizzazioni minime per prodotti specifici

I seguenti prodotti possono operare con 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.