Las carpetas administradas de Cloud Storage proporcionan un control de acceso detallado a los objetos en los buckets de Cloud Storage. Los permisos se pueden establecer a nivel de la carpeta dentro de los buckets que usan el acceso universal a nivel de bucket. Cuando se transfieren objetos entre los buckets de Cloud Storage Servicio de transferencia de almacenamiento, se podrán conservar estos permisos de carpetas administradas.
Limitaciones
Las siguientes limitaciones se aplican a las transferencias de carpetas administradas:
- Debes usar la API de REST para crear la transferencia.
- El bucket de destino debe usar el acceso uniforme a nivel de bucket.
- Las transferencias de carpetas administradas no admiten
deleteObjectsUniqueInSink
. odeleteObjectsFromSourceAfterTransfer
. - No debe haber Condiciones de IAM en el bucket de destino ni en su proyecto que usen el tipo de recurso bucket (
storage.googleapis.com/Bucket
) o el tipo de recurso object (storage.googleapis.com/Object
). Si algún bucket dentro de un proyecto tiene una Condición de IAM que usa cualquiera de estos tipos de recursos, las carpetas administradas no se pueden transferir a ninguno de los buckets de ese proyecto, incluso si se quita la condición más adelante. - No se admiten las transferencias controladas por eventos.
- No se admiten las transferencias de manifiestos.
- Cloud Logging no registra las operaciones de las carpetas administradas. Registro de los objetos de Kubernetes.
Permisos de IAM
Lo siguiente de Google Cloud Identity and Access Management (IAM) se requieren permisos para la cuenta de servicio administrada por Google.
En el bucket de origen, sigue estos pasos:
storage.managedFolders.getIamPolicy
storage.managedFolders.list
storage.managedFolders.get
En el bucket de destino, haz lo siguiente:
storage.managedFolders.setIamPolicy
storage.managedFolders.list
storage.managedFolders.create
Estos se suman a los permisos estándar que requiere el Servicio de transferencia de almacenamiento:
Para otorgar los permisos necesarios de las carpetas administradas, crear un rol personalizado solo con el los permisos necesarios y asignarlos a la cuenta de servicio administrada por Google, ya sea a nivel de bucket (recomendado) o a nivel de proyecto. Consulta Consideraciones de seguridad para obtener más información.
Crea una transferencia de carpeta administrada
Para crear una transferencia que contenga una carpeta administrada, especifica managedFolderTransferEnabled: true
en tu transferSpec
:
POST https://storagetransfer.googleapis.com/v1/transferJobs
{
"name": "transferjobs/NAME",
"projectId": "PROJECT_ID",
"transferSpec": {
"gcsDataSource": {
"bucketName": "SOURCE_BUCKET",
"managedFolderTransferEnabled": true
},
"gcsDataSink": {
"bucketName": "DESTINATION_BUCKET"
}
},
"status": "ENABLED"
}
Consulta Crea transferencias.
para obtener detalles sobre cómo crear una transferencia con la API de REST, o consulta el
Referencia de transferJobs.create
.
Consideraciones de seguridad
Otorgar permisos de carpeta administrada a una cuenta de servicio administrada por Google la cuenta para modificar las políticas de IAM en las carpetas de destino o en todas las carpetas si el rol se otorga a nivel de proyecto. Esto plantea un riesgo de seguridad: un usuario con permisos para editar trabajos podría aprovechar esto para otorgar privilegios a un o de un agente malicioso. Para mitigar este riesgo, considera aislar las transferencias de carpetas administradas dentro de un proyecto de Google Cloud dedicado.
Soluciona problemas
Si necesitas ayuda para crear y gestionar carpetas administradas, consulta el Solución de problemas.