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. Salvo indicação em contrário, esses papéis podem ser aplicados a projetos, buckets ou pastas gerenciadas.

Para saber como controlar o acesso a buckets, pastas gerenciadas e objetos, consulte Usar permissões do IAM.

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. Não concede permissões para acessar ACLs de objetos nem definir ACLs de objetos como parte de uma solicitação de atualização de objeto. orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.objects.create
storage.managedFolders.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 e as pastas gerenciadas em um bucket.

resourcemanager.projects.get2
resourcemanager.projects.list2
storage.managedFolders.get
storage.managedFolders.list
storage.objects.get
storage.objects.list
Usuário do objeto de armazenamento (roles/storage.objectUser) Concede acesso para criar, visualizar, listar, atualizar e excluir objetos e pastas gerenciadas, além dos respectivos metadados. Não concede permissão para receber ou definir ACLs ou políticas do IAM. orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.managedFolders.create
storage.managedFolders.delete
storage.managedFolders.list
storage.managedFolders.get
storage.multipartUploads.*
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
storage.objects.update
Administrador de objetos do Storage (roles/storage.objectAdmin) Concede controle total dos objetos, incluindo listagem, criação, visualização e exclusão, além de recebimento e definição de ACLs de objetos. Também concede acesso para criar, excluir, receber e listar pastas gerenciadas. orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.managedFolders.create
storage.managedFolders.delete
storage.managedFolders.get
storage.managedFolders.list
storage.objects.*
storage.multipartUploads.*
Administrador de pastas de armazenamento (roles/storage.folderAdmin) Concede controle total de objetos e pastas gerenciadas, incluindo listagem, criação, visualização, exclusão e gerenciamento de permissões do IAM. orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.managedFolders.*
storage.multipartUploads.*
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. orgpolicy.policy.get1
storage.hmacKeys.*
Administrador do Storage (roles/storage.admin) Concede controle total de buckets, pastas gerenciadas e objetos, incluindo acesso e definição de ACLs de objetos ou políticas do IAM.

Quando aplicado a um bucket individual, o controle se aplica apenas ao bucket especificado e às pastas e objetos gerenciados nele.

firebase.projects.get
orgpolicy.policy.get1
resourcemanager.projects.get2
resourcemanager.projects.list2
storage.buckets.*
storage.managedFolders.*
storage.objects.*
storage.multipartUploads.*
Administrador do Storage Insights (roles/storageinsights.admin) Concede controle total de relatórios de inventário e configurações do Storage Insights. cloudresourcemanager.projects.get
cloudresourcemanager.projects.list
storageinsights.reportConfigs.*
storageinsights.reportDetails.*
Leitor do Storage Insights (roles/storageinsights.viewer) Concede acesso somente leitura a relatórios de inventário e configurações do Storage Insights. cloudresourcemanager.projects.get
cloudresourcemanager.projects.list
storageinsights.reportConfigs.list
storageinsights.reportConfigs.get
storageinsights.reportDetails.list
storageinsights.reportDetails.get
Serviço de coletor do Storage Insights (roles/storage.insightsCollectorService) Concede acesso de leitura a metadados de objetos em relatórios de inventário. resourcemanager.projects.get
resourcemanager.projects.list
storage.buckets.getObjectInsights
storage.buckets.get

1 A permissão orgpolicy.policy.get permite que os principais saibam as restrições da política da organização a que um projeto está sujeito. No momento, essa permissão só é eficaz se o papel for concedido no nível do projeto ou acima.

2 Para mais informações sobre as permissões resourcemanager.projects.*, consulte Controle de acesso para projetos com o IAM.

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. ver metadados do bucket ao listar (excluindo ACLs); criar, excluir e listar vinculações de tags 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.buckets.createTagBinding
storage.buckets.deleteTagBinding
storage.buckets.listEffectiveTags
storage.buckets.listTagBindings
storage.hmacKeys.*

Comportamento modificável

Os principais que receberam papéis básicos geralmente têm acesso adicional aos buckets e objetos de um projeto devido aos valores de conveniência. Quando um bucket é criado, os valores de conveniência recebem acesso específico no nível do bucket, mas é possível editar posteriormente as políticas do IAM com relação ao bucket e as ACLs de objeto para remover ou alterar esse acesso.

Quando você cria um bucket com acesso uniforme no nível do bucket ativado, o seguinte acesso é concedido por meio de valores de conveniência:

  • Os principais que receberam roles/viewer recebem os papéis roles/storage.legacyBucketReader e roles/storage.legacyObjectReader para o bucket.

  • Os principais que receberam roles/editor recebem os papéis roles/storage.legacyBucketOwner e roles/storage.legacyObjectOwner para o bucket.

  • Os principais que receberam roles/owner recebem os papéis roles/storage.legacyBucketOwner e roles/storage.legacyObjectOwner para o bucket.

Quando você cria um bucket sem acesso uniforme no nível do bucket ativado, o seguinte acesso é concedido por meio de valores de conveniência:

  • Os principais que receberam roles/viewer recebem o papel roles/storage.legacyBucketReader para o bucket.

  • Os principais que receberam roles/editor recebem o papel roles/storage.legacyBucketOwner para o bucket.

  • Os principais que receberam roles/owner recebem o papel roles/storage.legacyBucketOwner para o bucket.

  • Além disso, o bucket tem uma lista de controle de acesso (ACL) de objeto padrão. Essa ACL padrão normalmente é aplicada a novos objetos no bucket e, geralmente, concede acesso adicional a valores de conveniência.

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.setRetention
storage.objects.overrideUnlockedRetention
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 objetos e pastas gerenciadas (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.managedFolders.get
storage.managedFolders.list
storage.multipartUploads.list
Gravador de bucket legado do Storage (roles/storage.legacyBucketWriter) Concede permissão para criar, substituir, listar e excluir objetos e pastas gerenciadas; criar objetos com uma configuração de retenção; ler metadados de objetos e pastas gerenciadas ao listar (exceto políticas do IAM); além de ler metadados do bucket, exceto 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.objects.list
storage.objects.create
storage.objects.delete
storage.objects.setRetention
storage.managedFolders.create
storage.managedFolders.delete
storage.managedFolders.get
storage.managedFolders.list
storage.multipartUploads.*
Proprietário de bucket legado do Storage (roles/storage.legacyBucketOwner) Concede permissão para criar, substituir, listar e excluir objetos e pastas gerenciadas; criar objetos com uma configuração de retenção; criar, excluir e listar vinculações de tags; ler metadados do objeto ao listar (excluindo políticas do IAM); ler metadados da pasta gerenciada ao listar (incluindo políticas do IAM); além de ler e editar metadados do bucket (incluindo 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.createTagBinding
storage.buckets.deleteTagBinding
storage.buckets.listEffectiveTags
storage.buckets.listTagBindings
storage.buckets.update
storage.buckets.enableObjectRetention
storage.buckets.setIamPolicy
storage.buckets.getIamPolicy
storage.managedFolders.*
storage.objects.list
storage.objects.create
storage.objects.delete
storage.objects.setRetention
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