Controle de acesso com o IAM

Nesta página, descrevemos os papéis e permissões do Identity and Access Management (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 apps comerciais no Cloud Marketplace, os usuários na sua Google Cloud organização precisam de papéis do IAM para se inscrever em planos do Cloud Marketplace e fazer mudanças 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, conceda papéis usando o console do Google Cloud .

Comprar e gerenciar funções

Recomendamos que você atribua o papel do IAM de administrador da conta de faturamento 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.

Para ter um controle mais granular sobre as permissões dos usuários, você pode criar papéis personalizados com as permissões que quer conceder.

Requisitos específicos do produto

Para usar os seguintes serviços em um projeto Google Cloud , é necessário ter a função Editor de projetos:

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

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 Google Cloud conta de faturamento, organização ou projeto. Para detalhes, consulte a seção Como conceder papéis do IAM aos usuários.

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

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 Google Cloud , consulte a documentação do IAM sobre Como conceder, alterar e revogar acesso a 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 precisará incluir estas permissões para a conta de faturamento usada para comprar serviços:

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

Alguns produtos da API Cloud Marketplace são compatíveis com o logon único (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 da API do Cloud 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 roles/consumerprocurement.entitlementManager (ou roles/editor papel básico) é obrigatório.

Permissões mínimas para produtos específicos

Os seguintes produtos podem operar em um conjunto diferente de permissões para acessar os recursos do 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.