Permisos de Cloud IAM para comandos de gsutil

En la siguiente tabla se enumeran los permisos de Cloud Identity and Access Management (Cloud IAM) necesarios para ejecutar cada comando de gsutil de Cloud Storage en un recurso dado. Consulta las secciones debajo de la tabla para obtener notas sobre el uso de comodines, la marca -r y la marca -m.

Comando Subcomando Recurso en el que actúa Permisos de Cloud IAM requeridos
acl get Depósitos storage.buckets.get
storage.buckets.getIamPolicy
acl set o ch Depósitos storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
acl get Objetos storage.objects.get
storage.objects.getIamPolicy10
acl set o ch Objetos storage.objects.get
storage.objects.getIamPolicy10
storage.objects.setIamPolicy10
storage.objects.update
bucketpolicyonly set Depósitos storage.buckets.setIamPolicy2
bucketpolicyonly get Depósitos storage.buckets.get
cat Objetos storage.objects.get
compose Objetos storage.objects.get (para los objetos de origen)
storage.objects.create (para el depósito de destino)
storage.objects.delete 1 (para el depósito de destino)
config Ninguno
cors get Depósitos storage.buckets.get
cors set Depósitos storage.buckets.update
cp Objetos storage.objects.list 2 (para el depósito de destino)
storage.objects.get (para los objetos de origen)
storage.objects.create (para el depósito de destino)
storage.objects.delete 1 (para el depósito de destino)
storage.objects.getIamPolicy3,10 (para los objetos de origen)
storage.objects.setIamPolicy 3 ,10 (para el depósito de destino)
cp -n Objetos storage.objects.list 2 (para el depósito de destino)
storage.objects.get (para los objetos de origen y el depósito de destino)
storage.objects.create (para el depósito de destino)
storage.objects.getIamPolicy3,10 (para los objetos de origen)
storage.objects.setIamPolicy 3 ,10 (para el depósito de destino)
defacl get Depósitos storage.buckets.get
storage.buckets.getIamPolicy
defacl set o ch Depósitos storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
defstorageclass get Depósitos storage.buckets.get
defstorageclass set Depósitos storage.buckets.update
du Objetos storage.objects.get
hash Objetos storage.objects.get
help Ninguno
hmacKeys create Claves HMAC storage.hmacKeys.create
hmacKeys delete Claves HMAC storage.hmacKeys.delete
hmacKeys get Claves HMAC storage.hmacKeys.get
hmacKeys list Claves HMAC storage.hmacKeys.list
hmacKeys update Claves HMAC storage.hmacKeys.update
iam get Depósitos storage.buckets.get
storage.buckets.getIamPolicy
iam set o ch Depósitos storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
iam get Objetos storage.objects.get
storage.objects.getIamPolicy10
iam set o ch Objetos storage.objects.get
storage.objects.getIamPolicy10
storage.objects.setIamPolicy10
storage.objects.update
kms authorize Proyectos resourceManager.projects.get
iam.serviceAccounts.create4
cloudkms.cryptoKey.setIamPolicy (para la autorización de la clave de Cloud KMS)
kms encryption Depósitos storage.buckets.get
kms encryption -d Depósitos storage.buckets.get
storage.buckets.update
kms encryption -k Depósitos, Projects7 storage.buckets.get
storage.buckets.update
resourceManager.projects.get7
cloudkms.cryptoKey.setIamPolicy7
kms serviceaccount Proyectos resourceManager.projects.get
label get Depósitos storage.buckets.get
label set/ch Depósitos storage.buckets.update
lifecycle get Depósitos storage.buckets.get
lifecycle set/ch Depósitos storage.buckets.update
logging get Depósitos storage.buckets.get
logging set Depósitos storage.buckets.update
ls Proyectos storage.buckets.list
storage.buckets.get5
storage.buckets.getIamPolicy6
ls Depósitos, Objetos storage.objects.list
storage.objects.get5
storage.objects.getIamPolicy6,10
ls -b Depósitos storage.buckets.get
storage.buckets.getIamPolicy6
mb Depósitos storage.buckets.create
mv Objetos storage.objects.list 2 (para el depósito de destino)
storage.objects.get (para los objetos de origen)
storage.objects.create (para el depósito de destino)
storage.objects.delete (para el depósito de origen)
storage.objects.delete 1 (para el depósito de destino)
storage.objects.getIamPolicy3,10 (para los objetos de origen)
storage.objects.setIamPolicy 3 ,10 (para el depósito de destino)
mv -n Objetos storage.objects.list 2 (para el depósito de destino)
storage.objects.get (para los objetos de origen y el depósito de destino)
storage.objects.create (para el depósito de destino)
storage.objects.delete (para el depósito de origen)
storage.objects.getIamPolicy3,10 (para los objetos de origen)
storage.objects.setIamPolicy 3 ,10 (para el depósito de destino)
notification create Depósitos storage.buckets.update
pubsub.topics.get (para el proyecto que contiene el tema Pub/Sub)
pubsub.topics.create8 (para el proyecto que contiene el tema Pub/Sub)
pubsub.topics.getIamPolicy (para el tema Pub/Sub que recibe notificaciones)
pubsub.topics.setIamPolicy 8 (para el tema de Pub/Sub que recibe notificaciones)
notification create -s Depósitos storage.buckets.update
notification delete Depósitos storage.buckets.update
notification list Depósitos storage.buckets.get
notification watchbucket Depósitos storage.buckets.update
notification stopchannel Depósitos storage.buckets.update
perfdiag Depósitos storage.buckets.get
storage.objects.create
storage.objects.delete
storage.objects.list
storage.objects.get
rb Depósitos storage.buckets.delete
requesterpays get Depósitos storage.buckets.get
requesterpays set on Depósitos storage.buckets.get
storage.buckets.update
requesterpays set off Depósitos storage.buckets.get
storage.buckets.update
resourcemanager.projects.createBillingAssignment9
retention clear, event-default, lock, oset Depósitos storage.buckets.update
retention event o temp Objetos storage.objects.get
storage.objects.list
storage.objects.update
retention get Depósitos 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 Depósitos storage.buckets.delete
storage.objects.delete
storage.objects.list
rm Objetos storage.objects.delete
rsync Objetos storage.objects.get (para los objetos de origen y el depósito de destino)
storage.objects.create (para el depósito de destino)
storage.objects.delete 1 (para el depósito de destino)
storage.objects.list (para los depósitos de origen y de destino)
storage.objects.getIamPolicy3,10 (para los objetos de origen)
storage.objects.setIamPolicy 3 ,10 (para el depósito de destino)
rsync -d Objetos storage.objects.get (para los objetos de origen y el depósito de destino)
storage.objects.create (para el depósito de destino)
storage.objects.delete (para el depósito de destino)
storage.objects.list (para los depósitos de origen y de destino)
storage.objects.getIamPolicy3,10 (para los objetos de origen)
storage.objects.setIamPolicy 3 ,10 (para el depósito de destino)
rsync -n Objetos storage.objects.list (para los depósitos de origen y de destino)
setmeta Objetos storage.objects.get
storage.objects.list
storage.objects.update
signurl Ninguno; sin embargo, la cuenta de servicio afiliada con la solicitud debe tener storage.objects.get.
stat Objetos storage.objects.get
test Ninguno
update Ninguno
version Ninguno
versioning get Depósitos storage.buckets.get
versioning set Depósitos storage.buckets.update
web get Depósitos storage.buckets.get
web set Depósitos storage.buckets.update

1Este permiso solo es necesario cuando el objeto insertado tiene el mismo nombre que un objeto que ya existe en el depósito.

2Este permiso solo es necesario cuando el destino en el comando contiene una ruta de objeto.

3Este permiso solo es necesario cuando se usan las marcas -a o -p en el comando.

4Este permiso solo es necesario si no tienes una cuenta de servicio de Cloud Storage asociada con el proyecto.

5Este permiso solo es necesario cuando se usa la marca -L o -l en el comando.

6Este permiso solo es necesario si deseas que las políticas de Cloud IAM se incluyan en los detalles.

7Si usasgsutil kms encryption -k y la cuenta de servicio de tu proyecto no tiene permiso para acceder a la clave de Cloud KMS solicitada, gsutil ejecuta gsutil kms authorize con el fin de otorgar a su cuenta de servicio el permiso requerido.

8Estos permisos no son necesarios si el tema ya existe y la cuenta de servicio relevante tiene acceso a él.

9Este permiso solo es necesario si no incluyes un proyecto de facturación en la solicitud. Consulta los requisitos de uso y acceso de los pagos del solicitante para obtener más información.

10Este permiso no se aplica a los depósitos con Solo política del depósito habilitado.

La marca de nivel superior -u.

Si usas la -u marca de nivel superior con el fin de especificar que un proyecto debe facturarse por tu solicitud, debes tener el permiso serviceusage.services.use para el proyecto que especifiques. La marca -u se usa, por ejemplo, cuando se accede a un depósito con Pagos del solicitante habilitado.

Comodines y marcas recurrentes

Si usas comodines URI con el fin de seleccionar varios objetos en un comando debes tener el permiso storage.objects.list para el depósito que contiene los objetos. Del mismo modo, si usas comodines URI con el fin de seleccionar varios depósitos en un comando, deber tener el permiso storage.buckets.list para los proyectos que contiene los depósitos.

Si usas las marcas recurrentes (-r y -R), debes tener el permiso storage.objects.list para el depósito correspondiente, además de los permisos necesarios del comando específico que usas.

La marca de nivel superior -m.

Por lo general, si usas un comando de gsutil que actúa sobre varios objetos o depósitos, el comando falla ante el primer error. Sin embargo, cuando usas la -mmarca de nivel superior, gsutil registra los errores que encuentra y continúa con la operación.

Por ejemplo, supongamos que intentas ejecutar un comando acl set en una serie de objetos, pero solo tienes permiso para hacerlo en algunos de estos. Si no usas la marca -m, gsutil aplica las LCA de forma correcta hasta que alcanza un objeto al que no tienes permiso para aplicar una LCA. En ese momento, gsutil falla. Si usas la marca -m, gsutil registra los errores que surgen cuando trata de aplicar una LCA a un objeto para el que no tienes permiso, de lo contrario continúa con la operación.

Próximos pasos

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.