Papéis de IAM para o Cloud Storage

Papéis predefinidos

Na tabela a seguir, descrevemos os papéis de gerenciamento de identidade e acesso (IAM) associados ao Cloud Storage e listamos as permissões contidas em cada papel. Esses papéis podem ser aplicados a projetos inteiros ou buckets específicos, exceto se indicado de outra forma.

Papel Descrição Permissões
Criador de objetos do Storage (roles/storage.objectCreator) Permite que usuários criem objetos. Não concede permissões para visualizar, excluir ou substituir objetos. resourcemanager.projects.get
resourcemanager.projects.list
storage.objects.create
Leitor de objetos do Storage (roles/storage.objectViewer) Dá acesso para visualizar objetos e metadados, exceto ACLs.

Também pode listar os objetos em um bucket.

resourcemanager.projects.get
resourcemanager.projects.list
storage.objects.get
storage.objects.list
Administrador de objetos do Storage (roles/storage.objectAdmin) Concede controle total dos objetos, incluindo listagem, criação, visualização e exclusão. resourcemanager.projects.get
resourcemanager.projects.list
storage.objects.*
Administrador de chaves HMAC do armazenamento (roles/storage.hmacKeyAdmin) Controle total das chaves HMAC em um projeto. Esse papel pode ser aplicado somente a um projeto. storage.hmacKeys.*
Administrador do Storage (roles/storage.admin) Concede controle total de buckets e objetos.

Quando aplicado a um bucket individual, o controle se aplica apenas ao bucket e aos objetos especificados nele.

firebase.projects.get
resourcemanager.projects.get
resourcemanager.projects.list
storage.buckets.*
storage.objects.*

Papéis básicos

Papéis básicos são aqueles que existiam antes do IAM. Eles têm características únicas:

  • Esses papéis só podem ser concedidos para um projeto inteiro, não para buckets individuais dentro do projeto. Assim como outros papéis que você concede em um projeto, os papéis básicos se aplicam a todos os buckets e objetos do projeto.

  • Os papéis básicos contêm permissões extras para outros serviços do Google Cloud que não são abordados nesta seção. Consulte papéis básicos para ver uma discussão geral sobre as permissões que eles concedem.

  • Em alguns casos, os papéis básicos podem ser usados como se fossem grupos. Assim, qualquer membro que tenha um papel básico terá acesso adicional a alguns recursos.

    • O papel básico pode ser usado como um grupo ao conceder papéis para buckets.

    • O papel básico pode ser usado como se fosse um grupo ao definir ACLs nos objetos.

    Para conhecer o acesso adicional que os membros de papéis básicos normalmente recebem devido a esse comportamento, consulte comportamento modificável.

Permissões intrínsecas

A tabela a seguir descreve as permissões do Cloud Storage que estão sempre associadas a cada papel básico.

Papel Descrição Permissões do Cloud Storage
Leitor (roles/viewer) Concede permissão para listar buckets no projeto, visualizar metadados do buckets ao listar (excluindo ACLs) e listar e receber chaves HMAC no projeto. storage.buckets.list
storage.hmacKeys.get
storage.hmacKeys.list
Editor (roles/editor) Concede permissão para criar, listar e excluir buckets no projeto, visualizar metadados do bucket ao listar (excluindo ACLs) e controlar chaves HMAC no projeto. storage.buckets.create
storage.buckets.delete
storage.buckets.list
storage.hmacKeys.*
Proprietário (roles/owner)

Concede permissão para criar, listar e excluir buckets no projeto, visualizar metadados do bucket ao listar (excluindo ACLs) e controlar chaves HMAC no projeto.

No Google Cloud, normalmente os membros com este papel podem realizar tarefas administrativas, como alterar papéis de membros do projeto ou alterar o faturamento.

storage.buckets.create
storage.buckets.delete
storage.buckets.list
storage.hmacKeys.*

Comportamento modificável

Os membros que receberam um papel básico geralmente recebem acesso adicional além das permissões intrínsecas associadas ao papel. Isso ocorre porque os próprios papéis básicos podem receber acesso a buckets e objetos. A tabela a seguir descreve o acesso adicional do Cloud Storage normalmente associado a cada papel básico. É possível modificar ou remover esse acesso adicional concedido a papéis básicos.

Papel Acesso adicional adquirido pelos membros que têm o papel
Leitor (roles/viewer)
Editor (roles/editor)
Proprietário (roles/owner)

Papéis legados predefinidos

A tabela a seguir descreve os papéis de IAM que são equivalentes às permissões da Lista de Controle de Acesso (ACL). É possível conceder papéis legados somente para buckets específicos, não para projetos.

Papel Descrição Permissões
Leitor de objeto legado do Storage (roles/storage.legacyObjectReader) Concede permissão para ver objetos e os respectivos metadados, exceto ACLs. storage.objects.get
Proprietário de objeto legado do Storage (roles/storage.legacyObjectOwner) Concede permissão para ver e editar objetos e os respectivos metadados, incluindo ACLs. storage.objects.get
storage.objects.update
storage.objects.setIamPolicy
storage.objects.getIamPolicy
Leitor de bucket legado do Storage (roles/storage.legacyBucketReader) Concede permissão para listar o conteúdo de um bucket e ler os respectivos metadados, exceto políticas do IAM. Também concede permissão para ler metadados de objetos ao listar os objetos (exceto políticas do IAM).

O uso desse papel também se reflete nas ACLs do bucket. Consulte Relação de IAM com ACLs para mais informações.

storage.buckets.get
storage.objects.list
Gravador de bucket legado do Storage (roles/storage.legacyBucketWriter) Concede permissão para criar, substituir e excluir objetos, listar objetos em um bucket, ler metadados de objetos ao listar (exceto políticas do IAM) e ler metadados do bucket, exceto políticas do IAM.

O uso desse papel também se reflete nas ACLs do bucket. Consulte Relação de IAM com ACLs para mais informações.

storage.buckets.get
storage.objects.list
storage.objects.create
storage.objects.delete
Proprietário de bucket legado do Storage (roles/storage.legacyBucketOwner) Concede permissão para criar, substituir e excluir objetos, listar objetos em um bucket, ler metadados de objetos ao listar (exceto políticas do IAM), além de ler e editar metadados do bucket, incluindo as políticas do IAM.

O uso desse papel também se reflete nas ACLs do bucket. Consulte Relação de IAM com ACLs para mais informações.

storage.buckets.get
storage.buckets.update
storage.buckets.setIamPolicy
storage.buckets.getIamPolicy
storage.objects.list
storage.objects.create
storage.objects.delete

Papéis personalizados

É possível definir papéis que contêm os pacotes de permissões que você especificar. Para isso, o IAM oferece papéis personalizados.

A seguir