Permissões do Cloud IAM para comandos da gsutil

A tabela a seguir contém a lista de permissões do Cloud Identity and Access Management (Cloud IAM) obrigatórias para executar cada comando do gsutil do Cloud Storage em um determinado recurso. Para saber mais sobre como usar caracteres curinga, bem como os sinalizadores -r e -m, consulte as seções abaixo.

Comando Subcomando Recurso afetado Permissões obrigatórias do Cloud IAM
acl get Intervalos storage.buckets.get
storage.buckets.getIamPolicy
acl set ou ch Intervalos storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
acl get Objetos storage.objects.get
storage.objects.getIamPolicy10
acl set ou ch Objetos storage.objects.get
storage.objects.getIamPolicy10
storage.objects.setIamPolicy10
storage.objects.update
bucketpolicyonly set Intervalos storage.buckets.setIamPolicy2
bucketpolicyonly get Intervalos storage.buckets.get
cat Objetos storage.objects.get
compose Objetos storage.objects.get (para os objetos de origem)
storage.objects.create (para o intervalo de destino)
storage.objects.delete1 (para o intervalo de destino)
config Nenhuma
cors get Intervalos storage.buckets.get
cors set Intervalos storage.buckets.update
cp Objetos storage.objects.list2 (para o intervalo de destino)
storage.objects.get (para os objetos de origem)
storage.objects.create (para o intervalo de destino)
storage.objects.delete1 (para o intervalo de destino)
storage.objects.getIamPolicy3,10 (para os objetos de origem)
storage.objects.setIamPolicy3,10 (para o intervalo de destino)
cp -n Objetos storage.objects.list2 (para o intervalo de destino)
storage.objects.get (para os objetos de origem e o intervalo de destino)
storage.objects.create (para o intervalo de destino)
storage.objects.getIamPolicy3,10 (para os objetos de origem)
storage.objects.setIamPolicy3,10 (para o intervalo de destino)
defacl get Intervalos storage.buckets.get
storage.buckets.getIamPolicy
defacl set ou ch Intervalos storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
defstorageclass get Intervalos storage.buckets.get
defstorageclass set Intervalos storage.buckets.update
du Objetos storage.objects.get
hash Objetos storage.objects.get
help Nenhuma
iam get Intervalos storage.buckets.get
storage.buckets.getIamPolicy
iam set ou ch Intervalos storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
iam get Objetos storage.objects.get
storage.objects.getIamPolicy10
iam set ou ch Objetos storage.objects.get
storage.objects.getIamPolicy10
storage.objects.setIamPolicy10
storage.objects.update
kms authorize Projetos resourceManager.projects.get
iam.serviceAccounts.create4
cloudkms.cryptoKey.setIamPolicy (para a chave do Cloud KMS sendo autorizada)
kms encryption Intervalos storage.buckets.get
kms encryption -d Intervalos storage.buckets.get
storage.buckets.update
kms encryption -k Intervalos, projetos7 storage.buckets.get
storage.buckets.update
resourceManager.projects.get7
cloudkms.cryptoKey.setIamPolicy7
kms serviceaccount Projetos resourceManager.projects.get
label get Intervalos storage.buckets.get
label set/ch Intervalos storage.buckets.update
lifecycle get Intervalos storage.buckets.get
lifecycle set/ch Intervalos storage.buckets.update
logging get Intervalos storage.buckets.get
logging set Intervalos storage.buckets.update
ls Projetos storage.buckets.list
storage.buckets.get5
storage.buckets.getIamPolicy6
ls Intervalos, objetos storage.objects.list
storage.objects.get5
storage.objects.getIamPolicy6,10
ls -b Intervalos storage.buckets.get
storage.buckets.getIamPolicy6
mb Intervalos storage.buckets.create
mv Objetos storage.objects.list2 (para o intervalo de destino)
storage.objects.get (para os objetos de origem)
storage.objects.create (para o intervalo de destino)
storage.objects.delete (para o intervalo de origem)
storage.objects.delete1 (para o intervalo de destino)
storage.objects.getIamPolicy3,10 (para os objetos de origem)
storage.objects.setIamPolicy3,10 (para o intervalo de destino)
mv -n Objetos storage.objects.list2 (para o intervalo de destino)
storage.objects.get (para os objetos de origem e o intervalo de destino)
storage.objects.create (para o intervalo de destino)
storage.objects.delete (para o intervalo de origem)
storage.objects.getIamPolicy3,10 (para os objetos de origem)
storage.objects.setIamPolicy3,10 (para o intervalo de destino)
notification create Intervalos storage.buckets.update
pubsub.topics.get (para o projeto que contém o tópico do Pub/Sub)
pubsub.topics.create8 (para o projeto que contém o tópico do Pub/Sub)
pubsub.topics.getIamPolicy (para o tópico do Pub/Sub que recebe notificações)
pubsub.topics.setIamPolicy8 (para o tópico do Pub/Sub que recebe notificações)
notification create -s Intervalos storage.buckets.update
notification delete Intervalos storage.buckets.update
notification list Intervalos storage.buckets.get
notification watchbucket Intervalos storage.buckets.update
notification stopchannel Intervalos storage.buckets.update
perfdiag Intervalos storage.buckets.get
storage.objects.create
storage.objects.delete
storage.objects.list
storage.objects.get
rb Intervalos storage.buckets.delete
requesterpays get Intervalos storage.buckets.get
requesterpays set on Intervalos storage.buckets.get
storage.buckets.update
requesterpays set off Intervalos storage.buckets.get
storage.buckets.update
resourcemanager.projects.createBillingAssignment9
retention clear, event-default, lock ou set Intervalos storage.buckets.update
retention event ou temp Objetos storage.objects.get
storage.objects.list
storage.objects.update
retention get Intervalos storage.buckets.get
rewrite -k Objetos storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
rewrite -s Objetos storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
storage.objects.update
rm Intervalos storage.buckets.delete
storage.objects.delete
storage.objects.list
rm Objetos storage.objects.delete
rsync Objetos storage.objects.get (para os objetos de origem e o intervalo de destino)
storage.objects.create (para o intervalo de destino)
storage.objects.delete1 (para o intervalo de destino)
storage.objects.list (para os intervalos de origem e de destino)
storage.objects.getIamPolicy3,10 (para os objetos de origem)
storage.objects.setIamPolicy3,10 (para o intervalo de destino)
rsync -d Objetos storage.objects.get (para os objetos de origem e o intervalo de destino)
storage.objects.create (para o intervalo de destino)
storage.objects.delete (para o intervalo de destino)
storage.objects.list (para os intervalos de origem e de destino)
storage.objects.getIamPolicy3,10 (para os objetos de origem)
storage.objects.setIamPolicy3,10 (para o intervalo de destino)
rsync -n Objetos storage.objects.list (para os intervalos de origem e de destino)
setmeta Objetos storage.objects.get
storage.objects.list
storage.objects.update
signurl Nenhuma. No entanto, a conta de serviço afiliada à solicitação precisa ter a permissão storage.objects.get.
stat Objetos storage.objects.get
test Nenhuma
update Nenhuma
version Nenhuma
versioning get Intervalos storage.buckets.get
versioning set Intervalos storage.buckets.update
web get Intervalos storage.buckets.get
web set Intervalos storage.buckets.update

1Essa permissão é obrigatória somente quando o objeto inserido tem o mesmo nome que um objeto existente no intervalo.

2Essa permissão é obrigatória somente quando o destino no comando contém um caminho de objeto.

3Essa permissão é obrigatória somente quando as sinalizações -a ou -p são usadas no comando.

4Essa permissão é obrigatória somente se você não tem uma conta de serviço do Cloud Storage associada ao projeto.

5Essa permissão é obrigatória somente quando as sinalizações -L ou -l são usadas no comando.

6Essa permissão é obrigatória somente para incluir as políticas de Cloud IAM nos detalhes.

7Se você usa gsutil kms encryption -k e a conta de serviço do projeto não tem permissão para acessar a chave do Cloud KMS solicitada, o gsutil executará gsutil kms authorize para conceder à conta de serviço a permissão necessária.

8Essas permissões não são obrigatórias se o tópico já existe e a conta de serviço relevante tem acesso a ele.

9Essa permissão só será obrigatória se você não incluir um projeto de faturamento na solicitação. Consulte Requisitos de uso e acesso de Pagamentos do solicitante para mais informações.

10Essa permissão não se aplica a intervalos com a opção Somente política de intervalo ativada.

Sinalizador de nível superior -u

Se você usar a sinalização de nível superior -u para especificar um projeto que precisa ser faturado na solicitação, será necessário ter a permissão serviceusage.services.use no projeto especificado. Por exemplo, a sinalização -u é usada para acessar um intervalo com a opção Pagamentos do solicitante ativada.

Caracteres curinga e sinalizadores recursivos

Se você usar caracteres curinga de URI para selecionar vários objetos em um comando, será necessário ter a permissão storage.objects.list no intervalo que contém os objetos. Da mesma forma, se você usar caracteres curinga de URI para selecionar vários intervalos em um comando, precisará ter a permissão storage.buckets.list para os projetos que contêm os intervalos.

Se você usar os sinalizadores recursivos (-r e -R), precisará ter a permissão storage.objects.list para o intervalo pertinente, além das permissões obrigatórias para o comando específico que você estiver executando.

O sinalizador de nível superior -m

Normalmente, ao executar um comando da gsutil que afeta vários objetos ou intervalos, esse comando falha no primeiro erro. No entanto, ao usar a sinalização de nível superior -m, o gsutil registra todos os erros encontrados e continua a operação.

Por exemplo, imagine que você está tentando executar uma comando acl set em uma série de objetos, mas tem permissão para fazê-lo apenas em alguns dos objetos. Se você não usar o sinalizador -m, o gsutil aplicará as Access Control Lists (ACLs) com sucesso até chegar a um objeto que não tenha permissão para aplicar uma ACL. Nesse momento, a gsutil falha. Se você usar a sinalização -m, a gsutil registrará os erros que ocorrem ao tentar aplicar uma ACL a um objeto que não tenha permissão, mas continua a operação.

Próximas etapas

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.