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 |
||
buckets delete |
storage.buckets.delete |
||
buckets describe |
storage.buckets.get storage.buckets.getIamPolicy 1 |
||
buckets get-iam-policy |
storage.buckets.get storage.buckets.getIamPolicy |
||
buckets list |
storage.buckets.list storage.buckets.getIamPolicy 1 |
||
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.create 3 (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.setIamPolicy 3 (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 |
||
buckets update |
--no-requester-pays |
storage.buckets.update resourcemanager.projects.createBillingAssignment 2 |
|
buckets update |
--recovery-point-objective --rpo --[no-]uniform-bucket-level-access |
--[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.list 13 |
||
cp |
storage.objects.get storage.buckets.get 12storage.objects.list 4 (para o bucket de destino)
storage.objects.create storage.objects.delete 5 |
||
du |
storage.objects.list |
||
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 |
||
ls (para a listagem de buckets) |
storage.buckets.list storage.buckets.getIamPolicy 6 |
||
ls (para a listagem de objetos) |
storage.objects.get 7storage.objects.list storage.objects.getIamPolicy 8 |
||
ls |
--buckets |
storage.buckets.get storage.buckets.getIamPolicy 6 |
|
mv |
storage.objects.list 4 (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.delete 5 (para o bucket de destino) |
||
objects compose |
storage.objects.get storage.objects.create storage.objects.delete 9 |
||
objects describe |
storage.objects.get storage.objects.getIamPolicy 8 |
||
objects list |
storage.objects.list storage.objects.getIamPolicy 8 |
||
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.overrideUnlockedRetention 11 |
|
restore |
storage.objects.create storage.objects.delete 9storage.objects.restore |
||
restore |
--async |
storage.objects.create storage.objects.delete 14storage.objects.restore storage.buckets.restore |
|
rm |
storage.buckets.delete storage.objects.delete storage.objects.list |
||
rsync |
storage.objects.get storage.objects.create storage.objects.delete 10storage.objects.list |
||
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.
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
- Atribua papéis do IAM no nível do projeto e do bucket.
- Consulte os papéis do IAM que contêm permissões do Cloud Storage.