Control de acceso con IAM

En esta página, se describen las funciones y los permisos de Identity and Access Management (IAM) que necesitas para comprar y administrar soluciones 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 de Cloud Marketplace, los usuarios de tu organización de Google Cloud necesitan funciones de IAM para registrarse en los planes de Cloud Marketplace y realizar cambios en los planes de facturación.

Antes de comenzar

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

Funciones de IAM para la compra y la administración de productos

Te recomendamos que asignes la función de administrador de facturación (roles/billing.admin) de Cloud IAM a los usuarios que compran servicios desde Cloud Marketplace.

Los usuarios que quieran acceder a los servicios deben tener la función de lector de proyectos (roles/viewer), como mínimo.

Si necesitas un control más detallado sobre los permisos de los usuarios, puedes crear funciones personalizadas con los permisos que deseas otorgar.

Lista de funciones y permisos de IAM

Puedes otorgar a los usuarios una o más de las siguientes funciones de IAM. Según la función que les otorgues a los usuarios, también debes asignarla a un proyecto, organización cuenta de Facturación de Google Cloud. Para obtener más detalles, consulta la sección sobre Otorga funciones de IAM a los usuarios.

Función Permisos

(roles/commercebusinessenablement.admin)

Puede administrar varios recursos de configuración del proveedor

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)

Administración del recurso de configuración de pago

commercebusinessenablement.paymentConfig.*

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

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commercebusinessenablement.paymentConfigViewer)

Puede visualizar los recursos de configuración de pagos.

commercebusinessenablement.paymentConfig.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commercebusinessenablement.resellerDiscountAdmin)

Proporciona acceso de administrador a las ofertas de descuento de revendedores.

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)

Proporciona acceso de solo lectura a ofertas de descuentos de revendedores.

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)

Puede ver varios recursos de la configuración del proveedor

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)

Permite ver ofertas

commerceoffercatalog.*

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

(roles/commerceorggovernance.admin)

Acceso completo a las API de administración de la organización

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)

Acceso completo a las API de solo lectura de la administración de la organización.

commerceorggovernance.collections.get

commerceorggovernance.collections.list

commerceorggovernance.consumerSharingPolicies.get

commerceorggovernance.organizationSettings.get

commerceorggovernance.services.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commercepricemanagement.eventsViewer)

Permite ver los eventos clave de una oferta

commerceprice.events.*

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

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commercepricemanagement.privateOffersAdmin)

Permite administrar ofertas privadas

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)

Permite ver ofertas, pruebas gratuitas y SKU

commerceprice.privateoffers.get

commerceprice.privateoffers.list

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.services.get

serviceusage.services.list

(roles/commerceproducer.admin)

Otorga acceso completo a todos los recursos de la API de Cloud Commerce Producer.

commercebusinessenablement.partnerInfo.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commerceproducer.viewer)

Otorga acceso de lectura a todos los recursos de la API de Cloud Commerce Producer.

commercebusinessenablement.partnerInfo.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/consumerprocurement.entitlementManager)

Permite administrar autorizaciones y habilitar, inhabilitar e inspeccionar estados de servicio para un proyecto de consumidor.

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)

Permite inspeccionar autorizaciones y estados de servicio para un proyecto de consumidor.

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)

Permite ver los eventos clave de una oferta

consumerprocurement.events.*

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

(roles/consumerprocurement.orderAdmin)

Permite administrar las compras.

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)

Permite inspeccionar las compras.

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)

Permite administrar compras y consentimientos a nivel de la cuenta de facturación y del proyecto.

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)

Permite inspeccionar compras, consentimientos y autorizaciones, y estados de servicio para un proyecto de consumidor.

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

Otorga funciones de IAM a los usuarios

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

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

Organización

Debes tener la función resourcemanager.organizationAdmin para asignar funciones a nivel de 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 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.

Cuenta de facturación

Debes tener la función billing.admin para asignar funciones a nivel de 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 funciones 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 vas a crear una función personalizada destinada a usuarios que compran servicios en Cloud Marketplace, la función debe incluir estos permisos en 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)

Ciertos productos de Marketplace admiten el inicio de sesión único (SSO) en el sitio web externo de un socio. Los usuarios autorizados dentro de la organización tienen acceso al botón "ADMINISTRAR EN 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 "Acceder con Google". En otros casos, los usuarios acceden a un contexto de cuenta compartida.

Para acceder a la función de SSO, los usuarios navegan a la página de detalles del producto y seleccionan 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 Marketplace, consulta Administra planes de facturación.

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

Permisos mínimos para productos específicos

Los siguientes productos pueden funcionar con un conjunto diferente de permisos para acceder a las funciones 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.