Permissões do Cloud IAM para comandos gsutil

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

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 Nenhum
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 Nenhum
hmacKeys create Chaves HMAC storage.hmacKeys.create
hmacKeys delete Chaves HMAC storage.hmacKeys.delete
hmacKeys get Chaves HMAC storage.hmacKeys.get
hmacKeys list Chaves HMAC storage.hmacKeys.list
hmacKeys update Chaves HMAC storage.hmacKeys.update
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 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 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 destino)
setmeta Objetos storage.objects.get
storage.objects.list
storage.objects.update
signurl Nenhum, no entanto, a conta de serviço afiliada à solicitação precisa ter storage.objects.get.
stat Objetos storage.objects.get
test Nenhum
update Nenhum
version Nenhum
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 atual 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 do 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, a 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. Para mais informações, consulte Requisitos de uso e acesso de Pagamentos do solicitante.

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

Sinalização de nível superior -u

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

Caracteres curinga e sinalizações recursivas

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 para o intervalo que contém os objetos. Da mesma forma, se usar caracteres curinga de URI para selecionar vários intervalos em um comando, será necessário ter a permissão storage.buckets.list nos projetos que contêm os intervalos.

Se você usar as sinalizações recursivas (-r e -R), será necessário ter a permissão storage.objects.list no intervalo pertinente, além das permissões obrigatórias do comando específico usado.

Sinalização de nível superior -m

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

Por exemplo, você tenta executar um comando acl set em uma série de objetos, mas só tem permissão para fazer isso em alguns dos objetos. Se você não usar a sinalização -m, a gsutil aplicará as ACLs até alcançar um objeto sem permissão de aplicação de ACL. Nesse momento, a gsutil falhará. Se você usar a sinalização -m, a gsutil registrará os erros que surgirem quando tentar aplicar uma ACL a um objeto sem permissão, mas continuará a operação.

A seguir

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

Enviar comentários sobre…

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