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 2storage.buckets.getIpFilter 13 |
Buckets |
getIamPolicy |
storage.buckets.getIamPolicy |
Buckets |
insert |
storage.buckets.create storage.buckets.enableObjectRetention 3storage.buckets.setIpFilter 14 |
Buckets |
list |
storage.buckets.list storage.buckets.getIamPolicy 2storage.buckets.getIpFilter 13 |
Buckets |
listChannels |
storage.buckets.get |
Buckets |
lockRetentionPolicy |
storage.buckets.update |
Buckets |
patch |
storage.buckets.update storage.buckets.getIamPolicy 4storage.buckets.setIamPolicy 5storage.buckets.setIpFilter 14storage.buckets.getIpFilter 13 |
Buckets |
setIamPolicy |
storage.buckets.setIamPolicy |
Buckets |
testIamPermissions |
Ninguno |
Buckets |
update |
storage.buckets.update storage.buckets.getIamPolicy 4storage.buckets.setIamPolicy 5storage.buckets.setIpFilter 14storage.buckets.getIpFilter 13 |
Channels |
stop |
Ninguno |
Folders |
get |
storage.folders.get |
Folders |
insert |
storage.folders.create |
Folders |
list |
storage.folders.list |
Folders |
rename |
storage.folders.rename storage.folders.create |
Folders |
delete |
storage.folders.delete |
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
.
13 Este permiso solo es necesario si deseas incluir reglas de filtrado de IP del bucket 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. Si deseas excluir las reglas de filtrado de IP del bucket en tu respuesta, puedes solicitar una proyección noAcl
.
14 Este permiso solo es necesario si deseas crear, enumerar, borrar y actualizar reglas de filtrado de IP de bucket.
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.