Autorizações de IAM para comandos gcloud storage

A tabela seguinte lista as autorizações da gestão de identidade e de acesso (IAM) necessárias para executar gcloud storage comandos. As autorizações de IAM são agrupadas para criar funções. Concede funções a principais.

Consulte as secções abaixo da tabela para ver notas sobre a utilização de carateres universais, a flag --recursive e a flag --billing-project.

Comando Bandeira Autorizações de IAM necessárias
batch-operations jobs create storagebatchoperations.jobs.create
batch-operations jobs cancel storagebatchoperations.jobs.cancel
batch-operations jobs delete storagebatchoperations.jobs.delete
batch-operations jobs get storagebatchoperations.jobs.get
batch-operations jobs list storagebatchoperations.jobs.list
buckets add-iam-policy-binding storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
buckets anywhere-caches create storage.anywhereCaches.create
buckets anywhere-caches describe storage.anywhereCaches.get
buckets anywhere-caches list storage.anywhereCaches.list
buckets anywhere-caches update storage.anywhereCaches.update
buckets anywhere-caches pause storage.anywhereCaches.pause
buckets anywhere-caches resume storage.anywhereCaches.resume
buckets anywhere-caches disable storage.anywhereCaches.disable
buckets create storage.buckets.create
storage.buckets.setIpFilter15
buckets delete storage.buckets.delete
buckets describe storage.buckets.get
storage.buckets.getIamPolicy1
storage.buckets.getIpFilter16
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 relocate storage.buckets.relocate
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.setIpFilter15
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.objects.create (para o contentor de destino)
storage.objects.list4 (para o contentor de destino)
storage.objects.delete5 (para o contentor de destino)
storage.buckets.get12 (para o contentor de destino)
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 contentor de origem)
storage.folders.create (para o contentor 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 dataset-configs create storageinsights.datasetConfigs.create
insights dataset-configs create-link storageinsights.datasetConfigs.linkDataset
insights dataset-configs delete storageinsights.datasetConfigs.delete
insights dataset-configs delete-link storageinsights.datasetConfigs.unlinkDataset
insights dataset-configs describe storageinsights.datasetConfigs.get
insights dataset-configs list storageinsights.datasetConfigs.list
insights dataset-configs update storageinsights.datasetConfigs.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 ficha de contentor) storage.buckets.list
storage.buckets.getIamPolicy6
ls (para a ficha de objetos) storage.objects.get7
storage.objects.list
storage.objects.getIamPolicy8
ls --buckets storage.buckets.get
storage.buckets.getIamPolicy6
storage intelligence-config enable storage.intelligenceConfigs.update
storage-intelligence disable storage.intelligenceConfigs.update
storage-intelligence describe storage.intelligenceConfigs.get
storage-intelligence update storage.intelligenceConfigs.update
mv storage.objects.get (para os objetos de origem)
storage.objects.delete (para o contentor de origem)
storage.objects.create (para o contentor de destino)
storage.objects.list4 (para o contentor de destino)
storage.objects.delete5 (para o contentor de destino)
storage.buckets.get12 (para o contentor 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.list (para o contentor de origem)
storage.objects.get (para os objetos de origem)
storage.objects.list (para o contentor de destino)
storage.objects.get (para o contentor de destino)
storage.objects.create (para o contentor de destino)
storage.objects.delete10 (para o contentor de destino)
storage.buckets.get12 (para o contentor de destino)
rsync --dry-run storage.objects.list (para os contentores de origem e destino)
service-agent resourceManager.projects.get
sign-url Nenhuma; no entanto, a conta de serviço cuja chave é usada como parte deste comando tem de ter autorização para executar o pedido que está a ser codificado no URL assinado.

1Esta autorização só é necessária se quiser incluir políticas do IAM nos detalhes.

2Esta autorização só é necessária se não incluir um projeto de faturação no seu pedido. Consulte os requisitos de utilização e acesso do Requester Pays para mais informações.

3Estas autorizações não são necessárias se o tópico já existir e a conta de serviço relevante tiver acesso ao mesmo.

4Esta autorização só é necessária quando o destino no comando contém um caminho de objeto.

5Esta autorização só é necessária se usar carregamentos compostos paralelos ou se não usar a flag --no-clobber, mas inserir um objeto com o mesmo nome de um objeto que já existe no contentor.

6Esta autorização só é necessária se quiser que as políticas do IAM sejam incluídas nos detalhes.

7Esta autorização só é necessária se usar a flag --fetch-encrypted-object-hashes.

8Esta autorização só é necessária se quiser que as políticas de IAM sejam incluídas nos detalhes e não se aplica a contentores com o acesso uniforme ao nível do contentor ativado.

9Esta autorização só é necessária se a operação criar um objeto com o mesmo nome de um objeto que já existe no contentor.

10Esta autorização só é necessária se usar a flag --delete-unmatched-destination-objects ou se inserir um objeto que tenha o mesmo nome, mas dados diferentes de um objeto que já exista no contentor.

11Esta autorização só é necessária se o pedido também exigir que use a flag --override-unlocked-retention.

12Esta autorização é necessária para realizar carregamentos compostos paralelos se a propriedade da CLI gcloud storage/parallel_composite_upload_compatibility_check estiver definida como True.

13Esta autorização só é necessária se quiser usar expressões regulares para obter objetos.

14Esta autorização só é necessária se o pedido incluir a flag --allow-overwrite e a operação criar um objeto com o mesmo nome que um objeto que já existe no contentor.

15Esta autorização só é necessária se o pedido incluir a flag --ip-filter-file para criar, atualizar ou eliminar as regras de filtragem de IP num contentor.

16 Esta autorização só é necessária se quiser obter a configuração do filtro de IP do contentor como parte da resposta.

A bandeira de nível superior --billing-project

Se usar a --billing-project flag global para especificar um projeto que deve ser faturado pelo seu pedido, tem de ter serviceusage.services.use autorização para o projeto que especificar. A flag --billing-project é usada, por exemplo, quando acede a um contentor com a opção Requester Pays ativada.

Carateres universais e flags recursivas

Se usar carateres universais de URI para selecionar vários objetos num comando, tem de ter autorização storage.objects.list para o contentor que contém os objetos. Da mesma forma, se usar carateres universais URI para selecionar vários contentores num comando, tem de ter a autorização storage.buckets.list para os projetos que contêm os contentores.

Se usar a flag --recursive, tem de ter autorização para o contentor relevante, além das autorizações necessárias para o comando específico que está a usar.storage.objects.list

O que se segue?