La transferencia en línea requiere una configuración la primera vez que la uses. Las transferencias posteriores a la configuración inicial no requieren estos pasos.
La forma más sencilla de completar esta configuración es usar la lista de tareas de configuración en la consola deGoogle Cloud , como se describe en Configuración del proyecto y descarga de claves. La lista de tareas solo habilita las APIs de Transfer Appliance, Pub/Sub y Storage Transfer, crea la cuenta de servicio del dispositivo y otorga roles a las cuentas de servicio.
Sigue las instrucciones de esta página si quieres configurar la transferencia en línea de forma manual, por ejemplo, para otorgar solo los roles mínimos requeridos o usar una cuenta de servicio que pertenezca a un proyecto diferente.
Cuentas de servicio que se usan para la transferencia en línea
La transferencia en línea usa las siguientes dos identidades:
Cuenta de servicio del dispositivo: Es una cuenta de servicio administrada por el usuario cuya clave (
key.json) subes al dispositivo. El dispositivo usa esta cuenta de servicio para crear y ejecutar trabajos del Servicio de transferencia de almacenamiento, publicar y recibir mensajes de Pub/Sub, y subir tus datos al bucket de destino. La lista de tareas de configuración crea esta cuenta de servicio cuando haces clic en Crear cuenta de servicio. También puedes crearlo por tu cuenta.Agente de servicio del Servicio de transferencia de almacenamiento de tu proyecto: Es un agente de servicio administrado por Google con el siguiente formato:
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
Reemplaza
PROJECT_NUMBERpor el número del proyecto que contiene el bucket de destino.
Habilita las APIs
Para completar la configuración inicial de la transferencia en línea, un administrador de Google Cloud debe habilitar las siguientes APIs:
- API de Google Storage Transfer (
storagetransfer.googleapis.com) - API de Pub/Sub (
pubsub.googleapis.com) - API de Cloud Storage (
storage.googleapis.com)
De manera opcional, si habilitarás Cloud Monitoring, también habilita
la API de Cloud Monitoring (monitoring.googleapis.com).
Habilita las APIs en los siguientes proyectos:
- El proyecto desde el que solicitaste el dispositivo, que contiene el bucket de destino.
- Si la cuenta de servicio del dispositivo pertenece a un proyecto diferente, también el
proyecto que contiene la cuenta de servicio del dispositivo. Las solicitudes a la API del
dispositivo se verifican con el proyecto propietario de la cuenta de servicio.
Si las APIs no están habilitadas en ese proyecto, la transferencia en línea falla con un
error similar a
Storage Transfer API has not been used in project PROJECT_NUMBER before or it is disabled.
Para habilitar las APIs en un proyecto, haz lo siguiente:
Habilita las APIs de Storage Transfer, Pub/Sub y Cloud Storage, si aún no están habilitadas.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtenerlo a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.Confirma el proyecto para el que habilitarás las APIs y, luego, haz clic en Siguiente.
Haz clic en Habilitar.
Como alternativa, ejecuta el siguiente comando:
gcloud services enable storagetransfer.googleapis.com pubsub.googleapis.com storage.googleapis.com --project=PROJECT_ID
Reemplaza PROJECT_ID por el ID del proyecto en el que
habilitarás las APIs.
Configura el agente de servicio del Servicio de transferencia de almacenamiento
Otorga el siguiente rol al agente de servicio del Servicio de transferencia de almacenamiento de tu proyecto en el proyecto desde el que pediste el dispositivo:
-
Pub/Sub Editor(roles/pubsub.editor)
Otorga uno de los siguientes roles al agente de servicio del Servicio de transferencia de almacenamiento para el bucket de destino:
Storage Object Admin(roles/storage.objectAdmin), el rol mínimo requerido.Storage Admin(roles/storage.admin), el rol que otorga la lista de tareas de configuración
Crea y configura una cuenta de servicio administrada por el usuario
Crea una cuenta de servicio administrada por el usuario. Esta es la cuenta de servicio del dispositivo.
La cuenta de servicio puede estar en el proyecto desde el que pediste el dispositivo o en otro, por ejemplo, si tu organización no permite que se creen claves de cuenta de servicio en el proyecto del pedido. Si usas un proyecto diferente, habilita las APIs también en ese proyecto.
Otorga roles a la cuenta de servicio administrada por el usuario en el proyecto desde el que solicitaste el dispositivo y para el bucket de destino. Otorga estos roles en el proyecto de pedido y el bucket de destino, incluso si la cuenta de servicio pertenece a un proyecto diferente.
En la siguiente tabla, se enumeran los roles mínimos que requiere la transferencia en línea y los roles más amplios que otorga la lista de tareas de configuración:
Dónde otorgar Roles mínimos Roles otorgados por la lista de tareas de configuración Proyecto Storage Transfer Agent(roles/storagetransfer.transferAgent)Storage Transfer User(roles/storagetransfer.user)Pub/Sub Editor(roles/pubsub.editor)Monitoring Metric Writer(roles/monitoring.metricWriter)
Storage Transfer Admin(roles/storagetransfer.admin)Pub/Sub Editor(roles/pubsub.editor)Monitoring Metric Writer(roles/monitoring.metricWriter)Storage Admin(roles/storage.admin)
Bucket de destino Storage Object Admin(roles/storage.objectAdmin)Storage Legacy Bucket Reader(roles/storage.legacyBucketReader)
Ninguno El rol Storage Admin(roles/storage.admin) a nivel de proyecto abarca el bucket.
Una vez que se haya configurado la cuenta de servicio, prepara una clave para ella:
Crea una clave de cuenta de servicio para la cuenta de servicio administrada por el usuario. La clave se descarga cuando la creas y no puedes volver a descargarla.
Cambia el nombre de la clave a
key.jsony guárdala en una ubicación segura.Una vez que recibas el dispositivo, sube
key.jsonal directorio/tmpen el dispositivo.