Controle de acesso com o IAM

Nesta página, descrevemos os papéis e permissões de gerenciamento de identidade e acesso (IAM) necessários para comprar e gerenciar produtos comerciais no Cloud Marketplace.

O IAM permite gerenciar o controle de acesso ao definir quem (identidade) tem qual acesso (papel) a que recurso. Para aplicativos comerciais no Cloud Marketplace, os usuários na sua organização do Google Cloud precisam de papéis do IAM para se inscrever em planos do Cloud Marketplace e fazer alterações nos planos de faturamento.

Antes de começar

  • Para conceder papéis e permissões do Cloud Marketplace usando gcloud, instale a CLI gcloud. Caso contrário, é possível conceder papéis usando o console do Google Cloud.

Papéis do IAM para compra e gerenciamento de produtos

Recomendamos que você atribua o papel do IAM de administrador de faturamento (roles/billing.admin) aos usuários que estão comprando serviços do Cloud Marketplace.

Os usuários que querem acessar os serviços precisam ter, no mínimo, o papel de Leitor do projeto (roles/viewer).

Se precisar de um controle mais granular sobre as permissões dos usuários, crie papéis personalizados com as permissões que você quer conceder.

Lista de papéis e permissões do IAM

É possível conceder aos usuários um ou mais dos papéis do IAM a seguir. Dependendo do papel que você está concedendo aos usuários, é necessário atribuir o papel a uma conta, organização ou projeto de faturamento do Google Cloud. Para detalhes, consulte a seção Como conceder papéis do IAM aos usuários.

Papel Permissões

(roles/commercebusinessenablement.admin)

Administrador de vários recursos de configuração do provedor

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)

Administração do recurso de configuração de pagamento

commercebusinessenablement.paymentConfig.*

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

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commercebusinessenablement.paymentConfigViewer)

Visualizador do recurso de configuração de pagamento

commercebusinessenablement.paymentConfig.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commercebusinessenablement.resellerDiscountAdmin)

Concede acesso de administrador às ofertas de desconto para 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)

Concede acesso somente leitura às ofertas de desconto para 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)

Leitor de vários recursos de configuração do provedor

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 visualizar ofertas

commerceoffercatalog.*

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

(roles/commerceorggovernance.admin)

Acesso total às APIs de governança da organização

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)

Acesso total às APIs somente leitura de governança da organização.

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 ler os principais eventos de uma oferta

commerceprice.events.*

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

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commercepricemanagement.privateOffersAdmin)

Permite gerenciar 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 visualizar ofertas, avaliações gratuitas e SKUs.

commerceprice.privateoffers.get

commerceprice.privateoffers.list

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.services.get

serviceusage.services.list

(roles/commerceproducer.admin)

Concede acesso total a todos os recursos na API Cloud Commerce Producer.

commercebusinessenablement.partnerInfo.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/commerceproducer.viewer)

Concede acesso de leitura a todos os recursos na API Cloud Commerce Producer.

commercebusinessenablement.partnerInfo.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/consumerprocurement.entitlementManager)

Permite gerenciar direitos e ativar, desativar e inspecionar estados de serviço em um projeto 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 inspecionar direitos e estados de serviço para um projeto 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 ler os principais eventos de uma oferta

consumerprocurement.events.*

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

(roles/consumerprocurement.orderAdmin)

Permite gerenciar 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 inspecionar 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 gerenciar compras e consentimentos no nível da conta de faturamento e do projeto.

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 inspecionar compras, consentimentos e direitos, bem como estados de serviço em um projeto 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

Como conceder papéis do IAM aos usuários

Com base nas funções na tabela acima, os papéis consumerprocurement.orderAdmin e consumerprocurement.orderViewer precisam ser atribuídos no nível da conta de faturamento ou da organização, e os papéis consumerprocurement.entitlementManager e consumerprocurement.entitlementViewer precisam ser atribuídos no nível do projeto ou da organização.

Para conceder papéis a usuários usando gcloud, execute um dos seguintes comandos:

Organização

Você precisa ter o papel resourcemanager.organizationAdmin para atribuir papéis no nível da organização.

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

Os valores do marcador são:

  • organization-id: o ID numérico da organização para a qual você está concedendo o papel.
  • member: o usuário a que você está concedendo acesso.
  • role-id: o ID do papel da tabela anterior.

Conta de faturamento

Você precisa ter o papel billing.admin para atribuir papéis no nível da conta de faturamento.

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

Os valores do marcador são:

Projeto

Você precisa ter o papel resourcemanager.folderAdmin para atribuir papéis no nível do projeto.

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

Os valores do marcador são:

  • project-id: o projeto que você está concedendo ao papel.
  • member: o usuário a que você está concedendo acesso.
  • role-id: o ID do papel da tabela anterior.

Para conceder papéis a usuários usando o console do Google Cloud, consulte a documentação do IAM sobre Como conceder, alterar e revogar o acesso de usuários.

Como usar papéis personalizados com o Cloud Marketplace

Para ter um controle granular sobre as permissões que você concede aos usuários, crie papéis personalizados com as permissões que você quer conceder.

Se você estiver criando um papel personalizado para usuários que compram serviços do Cloud Marketplace, o papel precisa incluir estas permissões para a conta de faturamento que eles usam para comprar serviços:

Como acessar sites de parceiros com Logon único (SSO)

Alguns produtos do Marketplace são compatíveis com o SSO para o site externo de um parceiro. Os usuários autorizados da organização têm acesso a um botão "GERENCIAR NO PROVEDOR" na página de detalhes do produto. Esse botão direciona os usuários ao site do parceiro. Em alguns casos, os usuários são solicitados a "Fazer login com o Google". Em outros casos, os usuários acessam um contexto de conta compartilhada.

Para acessar o recurso de SSO, os usuários acessam a página de detalhes do produto e selecionam um projeto apropriado. O projeto precisa estar vinculado a uma conta de faturamento em que o plano foi comprado. Para detalhes sobre o gerenciamento de planos do Marketplace, consulte Como gerenciar planos de faturamento.

Além disso, o usuário precisa ter permissões de IAM suficientes no projeto selecionado. Para a maioria dos produtos, o papel básico roles/consumerprocurement.entitlementManager ou roles/editor é obrigatório.

Permissões mínimas para produtos específicos

Os produtos a seguir podem operar com um conjunto diferente de permissões para acessar os recursos de SSO:

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

Para esses produtos, use as seguintes permissões mínimas:

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

Essas permissões geralmente são concedidas com os papéis roles/consumerprocurement.entitlementManager ou roles/consumerprocurement.entitlementViewer.