Permissões do IAM para comandos de armazenamento da gcloud

Nesta tabela, descrevemos as permissões do Identity and Access Management (IAM) necessárias para executar comandos do gcloud storage. As permissões do IAM são agrupadas para criar papéis. Você concede papéis aos principais.

Para mais informações sobre como usar caracteres curinga e as sinalizações --recursive e --billing-project, consulte as seções abaixo da tabela.

Comando Flag Permissões de IAM obrigatórias
buckets add-iam-policy-binding storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
buckets create storage.buckets.create
storage.buckets.setIpFilter16
buckets delete storage.buckets.delete
buckets describe storage.buckets.get
storage.buckets.getIamPolicy1
storage.buckets.getIpFilter17
buckets get-iam-policy storage.buckets.get
storage.buckets.getIamPolicy
buckets list storage.buckets.list
storage.buckets.getIamPolicy1
buckets notifications create storage.buckets.get
storage.buckets.update
pubsub.topics.get (para o projeto que contém o tópico do Pub/Sub)
pubsub.topics.create3 (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.setIamPolicy3 (para o tópico do Pub/Sub que recebe notificações)
buckets notifications create --skip-topic-setup storage.buckets.get
storage.buckets.update
buckets notifications delete storage.buckets.get
storage.buckets.update
buckets notifications describe storage.buckets.get
buckets notifications list storage.buckets.get
buckets remove-iam-policy-binding storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
buckets set-iam-policy storage.buckets.setIamPolicy
storage.buckets.update
buckets update storage.buckets.update
storage.buckets.setIpFilter16
buckets update --no-requester-pays storage.buckets.update
resourcemanager.projects.createBillingAssignment2
buckets update --recovery-point-objective
--rpo
--[no-]uniform-bucket-level-access
storage.buckets.get
storage.buckets.update
buckets update --clear-pap
--clear-public-access-prevention
--[no-]pap
--[no-]public-access-prevention
storage.buckets.get
storage.buckets.update
storage.buckets.setIamPolicy
cat storage.objects.get
storage.objects.list13
cp storage.objects.get (para os objetos de origem)
storage.buckets.get12 (para o bucket de destino)
storage.objects.list4 (para o bucket de destino)
storage.objects.create (para o bucket de destino)
storage.objects.delete5 (para o bucket de destino)
storageinsights.reportDetails.get15
du storage.objects.list
folders create storage.folders.create
folders delete storage.folders.delete
folders describe storage.folders.get
folders list storage.folders.list
folders rename storage.folders.rename (para o bucket de origem)
storage.folders.create (para o bucket de destino)
hash storage.objects.get
hmac create storage.hmacKeys.create
hmac delete storage.hmacKeys.delete
hmac describe storage.hmacKeys.get
hmac list storage.hmacKeys.list
hmac update storage.hmacKeys.update
insights inventory-reports create storageinsights.reportConfigs.create
insights inventory-reports delete storageinsights.reportConfigs.delete
insights inventory-reports details list storageinsights.reportDetails.list
insights inventory-reports details describe storageinsights.reportDetails.get
insights inventory-reports list storageinsights.reportConfigs.list
insights inventory-reports update storageinsights.reportConfigs.get
storageinsights.reportConfigs.update
ls (para a listagem de buckets) storage.buckets.list
storage.buckets.getIamPolicy6
ls (para a listagem de objetos) storage.objects.get7
storage.objects.list
storage.objects.getIamPolicy8
ls --buckets storage.buckets.get
storage.buckets.getIamPolicy6
mv storage.objects.list4 (para o bucket de destino)
storage.objects.get (para os objetos de origem)
storage.objects.create (para o bucket de destino)
storage.objects.delete (para o bucket de origem)
storage.objects.delete5 (para o bucket de destino)
objects compose storage.objects.get
storage.objects.create
storage.objects.delete9
objects describe storage.objects.get
storage.objects.getIamPolicy8
objects list storage.objects.list
storage.objects.getIamPolicy8
objects update storage.objects.get
storage.objects.list
storage.objects.update
objects update --storage-class
--encryption-key
--clear-encryption-key
storage.objects.get
storage.objects.list
storage.objects.create
storage.objects.delete
objects update --retention-mode
--retain-until
--clear-retention
storage.objects.get
storage.objects.list
storage.objects.update
storage.objects.setRetention
storage.objects.overrideUnlockedRetention11
operations cancel storage.bucketOperations.cancel
operations describe storage.bucketOperations.get
operations list storage.bucketOperations.list
restore storage.objects.create
storage.objects.delete9
storage.objects.restore
restore --async storage.objects.create
storage.objects.delete14
storage.objects.restore
storage.buckets.restore
rm storage.buckets.delete
storage.objects.delete
storage.objects.list
rsync storage.objects.get (para os objetos de origem e o bucket de destino)
storage.objects.create (para o bucket de destino)
storage.objects.delete10 (para o bucket de destino)
storage.objects.list (para os buckets de origem e destino)
rsync --dry-run storage.objects.list (para os buckets de origem e destino)
service-agent resourceManager.projects.get
sign-url Nenhum. No entanto, a conta de serviço cuja chave é usada como parte deste comando precisa ter permissão para executar a solicitação codificada no URL assinado.

1Essa permissão é obrigatória somente se você quiser incluir as políticas de IAM nos detalhes.

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

3Essas 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.

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

5Essa permissão é obrigatória somente se você usa uploads compostos paralelos ou se não usa a sinalização --no-clobber, mas insere um objeto que tem o mesmo nome de um objeto que já existe no bucket.

6Essa permissão é obrigatória somente se você quiser incluir as políticas de IAM nos detalhes.

7Essa permissão só será obrigatória se você usar a flag --fetch-encrypted-object-hashes.

8Essa permissão é obrigatória somente se você quiser incluir as políticas de IAM nos detalhes e não se aplica a buckets com o acesso uniforme no nível do bucket ativado.

9Essa permissão só será obrigatória se a operação criar um objeto com o mesmo nome de um objeto atual no bucket.

10Essa permissão é obrigatória somente se você usar a sinalização --delete-unmatched-destination-objects ou se inserir um objeto com o mesmo nome de dados diferentes que Um objeto que já existe no bucket.

11Essa permissão só será obrigatória se a solicitação também exigir que você use a sinalização --override-unlocked-retention.

12Essa permissão será necessária para fazer uploads compostos paralelos se a property storage/parallel_composite_upload_compatibility_check da gcloud CLI estiver definida como True.

13Essa permissão só será obrigatória se você quiser usar expressões regulares para extrair objetos.

14Essa permissão só será obrigatória se a solicitação incluir a flag --allow-overwrite e a operação criar um objeto com o mesmo nome de um objeto que já existe no bucket.

15Essa permissão só é necessária para fazer o download de relatórios de inventário.

16Essa permissão só será obrigatória se a solicitação incluir a flag --ip-filter-file para criar, atualizar ou excluir as regras de filtragem de IP em um bucket.

17 Essa permissão só é necessária se você quiser receber a configuração do filtro de IP do bucket como parte da resposta.

Sinalização de nível superior --billing-project

Se você usar a sinalização global --billing-project 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 --billing-project é usada, por exemplo, ao acessar um bucket 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 bucket que contém os objetos. Da mesma forma, se usar caracteres curinga de URI para selecionar vários buckets em um comando, será necessário ter a permissão storage.buckets.list nos projetos que contêm os buckets.

Se você usar a sinalização --recursive, será necessário ter a permissão storage.objects.list para o bucket relevante, além das permissões necessárias para o comando específico que você está usando.

A seguir