Permisos de Cloud IAM para comandos de gsutil

La siguiente tabla enumera 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 ver las 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.getIamPolicy
acl set o ch Objetos storage.objects.get
storage.objects.getIamPolicy
storage.objects.setIamPolicy
storage.objects.update
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.delete1 (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.list2 (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.delete1 (para el depósito de destino)
storage.objects.getIamPolicy3 (para los objetos de origen)
storage.objects.setIamPolicy3 (para el depósito de destino)
cp -n Objetos storage.objects.list2 (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 (para los objetos de origen)
storage.objects.setIamPolicy3 (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
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.getIamPolicy
iam set o ch Objetos storage.objects.get
storage.objects.getIamPolicy
storage.objects.setIamPolicy
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, Proyectos7 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
ls -b Depósitos storage.buckets.get
storage.buckets.getIamPolicy6
mb Depósitos storage.buckets.create
mv Objetos storage.objects.list2 (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.delete1 (para el depósito de destino)
storage.objects.getIamPolicy3 (para los objetos de origen)
storage.objects.setIamPolicy3 (para el depósito de destino)
mv -n Objetos storage.objects.list2 (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 (para los objetos de origen)
storage.objects.setIamPolicy3 (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 tema Pub/Sub que recibe notificaciones)
pubsub.topics.setIamPolicy8 (para tema 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 o set 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.delete1 (para el depósito de destino)
storage.objects.list (para los depósitos de origen y de destino)
storage.objects.getIamPolicy3 (para los objetos de origen)
storage.objects.setIamPolicy3 (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 (para los objetos de origen)
storage.objects.setIamPolicy3 (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 asociada 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

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

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

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

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

5 Este permiso solo es necesario cuando se usan las marcas -L o -l en el comando.

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

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

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

9 Este permiso solo es necesario si no incluyes un proyecto de facturación en tu solicitud. Para obtener más información, consulta los Requisitos de uso y acceso de pagos del solicitante.

La marca de nivel superior -u

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

Comodines y marcas recurrentes

Si usas comodines URI a fin de seleccionar varios objetos en un comando, debes tener permiso storage.objects.list para el depósito que contiene los objetos. De manera similar, si usas comodines URI a fin de seleccionar varios depósitos en un comando, debes tener el permiso storage.buckets.list para los proyectos que contienen los depósitos.

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

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 marca de nivel superior -m, 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 los objetos. 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 intenta aplicar una LCA a un objeto al que no tienes permiso, pero, por lo demás, continúa con la operación.

Pasos siguientes

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.