Antes de comenzar

La primera vez que crees un trabajo del Servicio de transferencia de datos locales, deberás habilitar las API necesarias y asegurarte de que se otorguen los permisos correctos.

Si recibes errores durante la primera configuración, confirma que el usuario con el que accediste tenga los permisos necesarios para realizar los pasos de configuración. En muchos casos, estos permisos no están disponibles para todos los usuarios, por lo que es posible que debas comunicarte con un administrador del proyecto a fin de obtener asistencia.

Habilite API

  1. Habilita Google Storage Transfer API.

    Habilita la API

  2. Habilita Pub/Sub API.

    Habilita la API

Instala Docker

Instala Docker Community Edition en una máquina Linux virtual o física:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo systemctl enable docker

Si se produce un error de instalación, consulta Solución de problemas.

Asignación de permisos

Usa el administrador de proyectos de Google Cloud, un usuario con privilegios resourcemanager.projects.setIamPolicy, para otorgar permisos o roles de Identity and Access Management (IAM) a los usuarios y cuentas de servicio adecuados.

La cuenta de administrador del proyecto de Google Cloud solo es necesaria para otorgar permisos a usuarios y cuentas de servicio. No es necesaria para comenzar a transferir trabajos.

Para obtener más información sobre cómo otorgar roles de IAM, consulta Otorga, cambia y revoca el acceso a los recursos.

Si quieres crear roles personalizados para la transferencia de datos locales, consulta los permisos de IAM para la transferencia de datos locales y la Información sobre los roles personalizados de IAM.

Cuentas de administrador

Las cuentas de administrador del Servicio de transferencia de almacenamiento son cuentas de superusuario que admiten colegas que realizan transferencias. Los administradores gestionan los agentes de transferencia, establecen límites de uso de ancho de banda y pueden borrar trabajos de transferencia.

Para configurar una cuenta de administrador, asigna los siguientes permisos y roles de IAM:

Función / Permiso Qué hace Notas
resourcemanager.projects.getIamPolicy Este permiso se usa a fin de confirmar que la cuenta de servicio de transferencia de datos locales tenga los permisos necesarios para una transferencia.
Administrador de transferencia de almacenamiento (roles/storagetransfer.admin) Habilita las acciones administrativas en el proyecto de transferencia, como la configuración del proyecto y la supervisión de agentes. Para obtener una lista detallada de los permisos otorgados, consulta Roles predefinidos del Servicio de transferencia de almacenamiento.

Cuentas de usuario

Las cuentas de usuario del Servicio de transferencia de almacenamiento se pueden usar para crear y ejecutar transferencias. Por lo general, estas cuentas no tienen acceso para borrar trabajos de transferencia.

Para configurar una cuenta de usuario de transferencia de datos locales, asigna los siguientes permisos y roles a la cuenta:

Función / Permiso Qué hace Notas
resourcemanager.projects.getIamPolicy Se usa con el fin de confirmar que la cuenta de servicio de transferencia de datos locales tenga los permisos de Pub/Sub necesarios para una transferencia.
Usuario de transferencia de almacenamiento (roles/storagetransfer.user) Permite que el usuario cree, obtenga, actualice y enumere las transferencias. Para obtener una lista detallada de los permisos otorgados, consulta Roles predefinidos del Servicio de transferencia de almacenamiento.
Administrador de objetos de almacenamiento (roles/storage.objectAdmin) Permite que el usuario cree, actualice y borre objetos de Cloud Storage como parte de una transferencia. Se debe otorgar a cada bucket de Cloud Storage que usa esta cuenta en las transferencias.

Para obtener una lista detallada de los permisos otorgados, consulta Roles predefinidos de Cloud Storage.

Cuenta de servicio

El Servicio de transferencia de almacenamiento usa una cuenta de servicio administrada por Google para mover tus datos. Esta cuenta de servicio se crea de forma automática la primera vez que creas un trabajo de transferencia, creas un grupo de agentes, llamas a googleServiceAccounts.get o visitas la página de creación de trabajos en Google Cloud Console.

El formato de la cuenta de servicio suele ser project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. Para determinar tu PROJECT_NUMBER específico, usa la llamada a la API googleServiceAccounts.get.

Asigna los siguientes roles, o los permisos equivalentes, a la cuenta de servicio del Servicio de transferencia de almacenamiento a fin de permitir que acceda a los recursos necesarios para completar las transferencias:

Función / Permiso Qué hace Notas
Creador de objetos de almacenamiento (roles/storage.objectCreator) Habilita la Transferencia de datos locales para crear registros de transferencia en el bucket de Cloud Storage conectado a esta transferencia. Otorga acceso a todos los depósitos de Cloud Storage que se usaron en una transferencia. Si es adecuado para tu situación, puedes otorgar el rol a nivel de proyecto al proyecto desde el que se ejecuta la transferencia de datos locales.

Para obtener una lista detallada de los permisos que otorgan estos roles, consulta Roles predefinidos de Cloud Storage.
Visualizador de objetos de almacenamiento (roles/storage.objectViewer) Habilita la transferencia de datos locales para determinar si un archivo ya se transfirió a Cloud Storage o desde este.
Editor de Pub/Sub (roles/pubsub.editor) Habilita la transferencia de datos locales para crear y modificar de forma automática temas de Pub/Sub a fin de comunicarse de Google Cloud a los agentes de transferencia de datos locales. Aplica el rol a nivel de proyecto al proyecto desde el que se ejecuta la transferencia de datos locales.

Para obtener una lista detallada de los permisos que otorga este rol, consulta Roles de Pub/Sub.
Lector de buckets heredados de almacenamiento (roles/storage.legacyBucketReader) Habilita la transferencia de datos locales para leer los metadatos del bucket de Cloud Storage. Se otorga a cada bucket de Cloud Storage que se usa en una transferencia.

Agentes de transferencia

Los agentes de transferencia del Servicio de transferencia de almacenamiento se pueden ejecutar con la cuenta del usuario o con una cuenta de servicio.

Para configurar una cuenta de servicio del agente de transferencia o una cuenta de usuario que ejecute los agentes de transferencia, asigna el siguiente rol:

Función / Permiso Qué hace Notas
Agente de transferencia de almacenamiento (roles/storagetransfer.transferAgent) Otorga a los agentes de transferencia de datos locales los permisos de Pub/Sub y del Servicio de transferencia de almacenamiento necesarios para completar una transferencia. Otorga este rol al usuario o la cuenta de servicio que usan los agentes.

Para obtener una lista detallada de los permisos que otorga este rol, consulta Control de acceso con IAM.

Permisos de origen y destino

También debes asegurarte de que la cuenta del agente tenga los permisos correctos para acceder a los datos de origen y escribir en el destino.

Del sistema de archivos a Cloud Storage

Si el destino de tu transferencia es un bucket de Cloud Storage, el agente de transferencia necesita los siguientes permisos en el bucket de destino. Consulta Agrega una principal a una política de nivel de bucket para obtener instrucciones.

Permiso Descripción
storage.objects.create Permite que la cuenta del agente escriba objetos de Cloud Storage durante la transferencia.
storage.objects.get Permite que la cuenta del agente lea los datos y metadatos de los objetos.
storage.objects.delete Es obligatorio si tu transferencia está configurada para reemplazar o borrar objetos en el receptor. Por ejemplo, si overwriteObjectsAlreadyExistingInSink o deleteObjectsUniqueInSink se establecen en la configuración de transferOptions de tu transferencia.
De Cloud Storage al sistema de archivos

Si la fuente de tu transferencia es un bucket de Cloud Storage, el agente de transferencia necesita el siguiente permiso en el bucket de origen.

Permiso Descripción
storage.objects.get Permite que la cuenta del agente lea los datos y metadatos de los objetos.
De un sistema de archivos a otro

Si tu transferencia está entre dos sistemas de archivos, el agente de transferencia necesita los siguientes permisos en el bucket intermedio.

Permiso Descripción
storage.objects.create Permite que la cuenta del agente escriba objetos de Cloud Storage durante la transferencia.
storage.objects.get Permite que la cuenta del agente lea los datos y metadatos de los objetos.
storage.objects.delete Es obligatorio si tu transferencia está configurada para borrar objetos en el bucket intermedio después de que se complete la transferencia.

Próximos pasos