Prepárate para la transferencia en línea

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_NUMBER por 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:

  1. 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.

    Habilitar las API

    1. Confirma el proyecto para el que habilitarás las APIs y, luego, haz clic en Siguiente.

    2. 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

  1. 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.

  2. 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:

  1. 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.

  2. Cambia el nombre de la clave a key.json y guárdala en una ubicación segura.

  3. Una vez que recibas el dispositivo, sube key.json al directorio /tmp en el dispositivo.