Control de acceso con la IAM

En esta página, se describen las funciones y los permisos de Identity and Access Management (IAM) que necesitas para comprar y administrar productos comerciales en Cloud Marketplace.

Para administrar el control de acceso con la IAM, define quién (identidad) tiene qué acceso (función) a qué recurso. En el caso de las apps comerciales en Cloud Marketplace, los usuarios de tu organización Google Cloud necesitan roles de IAM para registrarse en los planes de Cloud Marketplace y realizar cambios en los planes de facturación.

Antes de comenzar

  • Para otorgar roles y permisos de Cloud Marketplace con gcloud, instala la CLI de gcloud. De lo contrario, puedes otorgar roles con la consola Google Cloud .

Compra y administración de roles

Te recomendamos que asignes el rol de IAM de administrador de la cuenta de facturación a los usuarios que compran servicios en Cloud Marketplace.

Los usuarios que quieran acceder a los servicios deben tener, como mínimo, el rol de lector.

Para obtener un control más detallado sobre los permisos de los usuarios, puedes crear roles personalizados con los permisos que deseas otorgar.

Requisitos específicos del producto

Para usar los siguientes servicios en un proyecto de Google Cloud , debes tener el rol de Editor del proyecto:

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

Lista de funciones y permisos de IAM

Puedes otorgar a los usuarios una o más de las siguientes funciones de IAM. Según el rol que les otorgues a los usuarios, también debes asignarlo a una Google Cloud cuenta de facturación, organización o proyecto. Para obtener más detalles, consulta la sección sobre cómo otorgar roles de IAM a usuarios.

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

Otorga funciones de IAM a los usuarios

De las funciones en la tabla anterior, las funciones consumerprocurement.orderAdmin y consumerprocurement.orderViewer se deben asignar a nivel de la cuenta de facturación o de la organización, y las funciones consumerprocurement.entitlementManager y consumerprocurement.entitlementViewer se deben asignar a nivel del proyecto o de la organización.

Para otorgar funciones a los usuarios con gcloud, ejecuta uno de los siguientes comandos:

Organización

Debes tener el rol de resourcemanager.organizationAdmin para asignar roles a nivel de la organización.

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

Los valores de marcador de posición son los siguientes:

  • organization-id: Es el ID numérico de la organización a la que le otorgas el rol.
  • member: es el usuario al que le otorgas el acceso.
  • role-id: es el ID de la función, que se encuentra en la siguiente tabla.

Cuenta de facturación

Debes tener el rol de billing.admin para asignar roles a nivel de la cuenta de facturación.

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

Los valores de marcador de posición son los siguientes:

Proyecto

Debes tener la función resourcemanager.folderAdmin para asignar funciones a nivel de proyecto.

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

Los valores de marcador de posición son los siguientes:

  • project-id: es el proyecto al que le otorgas la función.
  • member: es el usuario al que le otorgas el acceso.
  • role-id: es el ID de la función, que se encuentra en la siguiente tabla.

Para otorgar roles a los usuarios con la consola de Google Cloud , consulta la documentación de IAM sobre cómo otorgar, cambiar y revocar el acceso a los usuarios.

Usa funciones personalizadas con Cloud Marketplace

Si deseas tener un control detallado de los permisos que otorgas a los usuarios, puedes crear funciones personalizadas con los permisos que deseas otorgar.

Si creas un rol personalizado para los usuarios que compran servicios en Cloud Marketplace, este debe incluir los siguientes permisos para la cuenta de facturación que usan para comprar servicios:

Cómo acceder a sitios web de socios con el inicio de sesión único (SSO)

Algunos productos de la API de Cloud Marketplace admiten el inicio de sesión único (SSO) en el sitio web externo de un socio. Los usuarios autorizados de la organización tienen acceso a un botón "ADMINISTRAR EN EL PROVEEDOR" en la página de detalles del producto. Este botón dirige a los usuarios al sitio web del socio. En algunos casos, se les solicita a los usuarios que accedan con Google. En otros casos, los usuarios acceden en un contexto de cuenta compartida.

Para acceder a la función de SSO, los usuarios deben navegar a la página de detalles del producto y seleccionar un proyecto adecuado. El proyecto debe estar vinculado a una cuenta de facturación en la que se haya comprado el plan. Para obtener detalles sobre la administración de planes de la API de Cloud Marketplace, consulta Administra planes de facturación.

Además, el usuario debe tener los permisos de IAM suficientes en el proyecto seleccionado. Para la mayoría de los productos, se requiere el rol roles/consumerprocurement.entitlementManager (o el roles/editor rol básico).

Permisos mínimos para productos específicos

Los siguientes productos pueden operar con un conjunto diferente de permisos para acceder a las capacidades de SSO:

  • Apache Kafka en Confluent Cloud
  • DataStax Astra para Apache Cassandra
  • Elastic Cloud
  • Neo4j Aura Professional
  • Redis Enterprise Cloud

Para estos productos, puedes usar los siguientes permisos mínimos:

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

Por lo general, estos permisos se otorgan con los roles roles/consumerprocurement.entitlementManager o roles/consumerprocurement.entitlementViewer.