En la siguiente tabla, se enumeran los permisos de administración de identidades y accesos (IAM) necesarios para ejecutar cada método de JSON de Cloud Storage en un recurso dado. Los permisos de IAM se agrupan para crear funciones. Las funciones se les otorgan a usuarios y grupos.
Para conocer los métodos adicionales que solo se aplican a los depósitos con el acceso uniforme a nivel de depósito inhabilitado, consulta la tabla de métodos de LCA.
Recurso | Método | Permisos de IAM obligatorios1 |
---|---|---|
Buckets |
delete |
storage.buckets.delete |
Buckets |
get |
storage.buckets.get storage.buckets.getIamPolicy 2 |
Buckets |
getIamPolicy |
storage.buckets.getIamPolicy |
Buckets |
insert |
storage.buckets.create storage.buckets.enableObjectRetention 3 |
Buckets |
list |
storage.buckets.list storage.buckets.getIamPolicy 2 |
Buckets |
listChannels |
storage.buckets.get |
Buckets |
lockRetentionPolicy |
storage.buckets.update |
Buckets |
patch |
storage.buckets.update storage.buckets.getIamPolicy 4storage.buckets.setIamPolicy 5 |
Buckets |
setIamPolicy |
storage.buckets.setIamPolicy |
Buckets |
testIamPermissions |
Ninguno |
Buckets |
update |
storage.buckets.update storage.buckets.getIamPolicy 4storage.buckets.setIamPolicy 5 |
Channels |
stop |
Ninguno |
ManagedFolders |
delete |
storage.managedfolders.delete storage.managedfolders.setIamPolicy 10 |
ManagedFolders |
get |
storage.managedfolders.get |
ManagedFolders |
getIamPolicy |
storage.managedfolders.getIamPolicy |
ManagedFolders |
insert |
storage.managedfolders.create |
ManagedFolders |
list |
storage.managedfolders.list |
ManagedFolders |
update |
storage.managedfolders.update |
ManagedFolders |
setIamPolicy |
storage.managedfolders.setIamPolicy |
Notifications |
delete |
storage.buckets.update |
Notifications |
get |
storage.buckets.get |
Notifications |
insert |
storage.buckets.update |
Notifications |
list |
storage.buckets.get |
Objects |
bulkRestore |
storage.buckets.restore storage.objects.create storage.objects.delete 11storage.objects.restore storage.objects.setIamPolicy 6,12 |
Objects |
compose |
storage.objects.get storage.objects.create storage.objects.delete 7storage.objects.getIamPolicy 2,6storage.objects.setRetention 8 |
Objects |
copy |
storage.objects.get storage.objects.create storage.objects.delete storage.objects.setRetention |
Objects |
delete |
storage.objects.delete |
Objects |
get |
storage.objects.get storage.objects.getIamPolicy 2, 6 |
Objects |
insert |
storage.objects.create storage.objects.delete 7storage.objects.setRetention 8 |
Objects |
list |
storage.objects.list storage.objects.getIamPolicy 2, 6 |
Objects |
patch |
storage.objects.update storage.objects.setRetention 8storage.objects.overrideUnlockedRetention 9storage.objects.getIamPolicy 4,6storage.objects.setIamPolicy 5,6 |
Objects |
restore |
storage.objects.create storage.objects.delete 7storage.objects.restore storage.objects.getIamPolicy 2,6storage.objects.setIamPolicy 6,12 |
Objects |
rewrite |
storage.objects.get storage.objects.create storage.objects.delete storage.objects.setRetention |
Objects |
update |
storage.objects.update storage.objects.setRetention 8storage.objects.overrideUnlockedRetention 9storage.objects.getIamPolicy 4,6storage.objects.setIamPolicy 5,6 |
Objects |
watchAll |
storage.buckets.update |
Projects.hmacKeys |
create |
storage.hmacKeys.create |
Projects.hmacKeys |
delete |
storage.hmacKeys.delete |
Projects.hmacKeys |
get |
storage.hmacKeys.get |
Projects.hmacKeys |
list |
storage.hmacKeys.list |
Projects.hmacKeys |
update |
storage.hmacKeys.update |
Projects.serviceAccount |
get |
resourceManager.projects.get |
ReportConfigs |
delete |
storageinsights.reportConfigs.delete |
ReportConfigs |
get |
storageinsights.reportConfigs.get |
ReportConfigs |
list |
storageinsights.reportConfigs.list |
ReportConfigs |
insert |
storageinsights.reportConfigs.create |
ReportConfigs |
update |
storageinsights.reportConfigs.update |
ReportDetails |
get |
storageinsights.reportDetails.get |
ReportDetails |
list |
storageinsights.reportDetails.list |
1 Si usas el parámetro userProject
o el encabezado x-goog-user-project
en tu solicitud, debes tener el permiso serviceusage.services.use
para el ID del proyecto que especificas, además de los permisos normales de IAM necesarios a fin de hacer una solicitud.
2 Este permiso solo es necesario si deseas incluir LCA o políticas de IAM como parte de una proyección full
. Si no tienes este permiso y solicitas una proyección full
, solo recibirás una proyección parcial.
3 Este permiso solo es necesario cuando la solicitud incluye el parámetro de búsqueda enableObjectRetention
.
4 Este permiso solo es necesario si deseas incluir al LCA como parte de la respuesta.
5 Este permiso solo es necesario si deseas incluir LCAs o cambios en la configuración de la prevención del acceso público como parte de la solicitud.
6 Este permiso no se aplica a los buckets que tengan el acceso uniforme a nivel de depósito habilitado.
7 Este permiso solo es necesario si la solicitud hace que se reemplace un objeto con el mismo nombre.
8 Este permiso es obligatorio cuando el cuerpo de la solicitud incluye la propiedad retention
o cuando se hace una solicitud UPDATE
para un objeto que tiene una configuración de retención existente.
9 Este permiso solo es necesario cuando la solicitud incluye el parámetro de búsqueda overrideUnlockedRetention=true
.
10 Este permiso solo es necesario cuando la solicitud incluye el parámetro de búsqueda allowNonEmpty=true
.
11 Este permiso solo es necesario cuando la solicitud incluye el parámetro de búsqueda allowOverwrite=true
y la solicitud hace que se reemplace un objeto con el mismo nombre.
12 Este permiso solo es necesario cuando la solicitud incluye el parámetro de búsqueda copySourceAcl=true
.
Métodos relacionados con las LCA
En la siguiente tabla, se enumeran los permisos de IAM necesarios para ejecutar métodos de JSON que se aplican específicamente a la administración de las LCA. Estos métodos solo se aplican a los depósitos que tienen inhabilitado el acceso uniforme a nivel del depósito.
Recurso | Método | Permisos de IAM obligatorios1 |
---|---|---|
BucketAccessControls |
delete |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
BucketAccessControls |
get |
storage.buckets.get storage.buckets.getIamPolicy |
BucketAccessControls |
insert |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
BucketAccessControls |
list |
storage.buckets.get storage.buckets.getIamPolicy |
BucketAccessControls |
patch |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
BucketAccessControls |
update |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
DefaultObjectAccessControls |
delete |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
DefaultObjectAccessControls |
get |
storage.buckets.get storage.buckets.getIamPolicy |
DefaultObjectAccessControls |
insert |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
DefaultObjectAccessControls |
list |
storage.buckets.get storage.buckets.getIamPolicy |
DefaultObjectAccessControls |
patch |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
DefaultObjectAccessControls |
update |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
ObjectAccessControls |
delete |
storage.objects.get storage.objects.getIamPolicy storage.objects.setIamPolicy storage.objects.update |
ObjectAccessControls |
get |
storage.objects.get storage.objects.getIamPolicy |
ObjectAccessControls |
insert |
storage.objects.get storage.objects.getIamPolicy storage.objects.setIamPolicy storage.objects.update |
ObjectAccessControls |
list |
storage.objects.get storage.objects.getIamPolicy |
ObjectAccessControls |
patch |
storage.objects.get storage.objects.getIamPolicy storage.objects.setIamPolicy storage.objects.update |
ObjectAccessControls |
update |
storage.objects.get storage.objects.getIamPolicy storage.objects.setIamPolicy storage.objects.update |
1 Si usas el parámetro userProject
o el encabezado x-goog-user-project
en tu solicitud, debes tener el permiso serviceusage.services.use
para el ID del proyecto que especificas, además de los permisos normales de IAM necesarios a fin de hacer una solicitud.
¿Qué sigue?
A fin de obtener una lista de las funciones y los permisos que contienen, consulta Funciones de IAM para Cloud Storage.
Asigna funciones de IAM a nivel de proyecto y de bucket.