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
storage.multipartUploads.create
storage.multipartUploads.abort
storage.multipartUploads.listParts
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.*
storage.multipartUploads.create
storage.multipartUploads.abort
storage.multipartUploads.listParts
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.*
storage.multipartUploads.*

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.

  • Cada papel básico tem um valor de conveniência que permite usar o papel básico como se fosse um grupo. Quando usado dessa maneira, qualquer participante que tenha o papel básico é considerado parte do grupo. Todos no grupo recebem acesso adicional aos recursos com base no valor de conveniência.

    • Os valores de conveniência podem ser usados ao conceder papéis para buckets.

    • Os valores de conveniência podem ser usados ao definir ACLs em objetos.

  • Os papéis básicos não concedem intrinsecamente todo o acesso que os nomes sugerem aos recursos do Cloud Storage. Em vez disso, eles fornecem uma parte do acesso esperado intrinsecamente e o restante do acesso esperado usando valores de conveniência. Como os valores de conveniência podem ser adicionados ou removidos manualmente como qualquer outro participante do IAM, é possível revogar o acesso que os participantes esperavam ter.

    Para conhecer o acesso adicional que os participantes 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 participantes com este papel podem realizar tarefas administrativas, como alterar papéis de participantes do projeto ou alterar o faturamento.

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

Comportamento modificável

A tabela a seguir descreve o acesso adicional do Cloud Storage, normalmente associado a cada papel básico devido aos valores de conveniência. Esse acesso extra é concedido no momento da criação do bucket, mas é possível editar as políticas de IAM do bucket e as ACLs de objeto para removê-las ou alterá-las.

Papel Acesso adicional adquirido por valores de conveniência
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
storage.multipartUploads.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
storage.multipartUploads.create
storage.multipartUploads.abort
storage.multipartUploads.listParts
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
storage.multipartUploads.*

Papéis personalizados

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

A seguir