Antes de transferir datos de un segmento de Azure Storage, debe configurar el acceso a ese segmento para que el Servicio de transferencia de Storage pueda recuperar sus objetos.
El Servicio de transferencia de Storage admite los siguientes métodos de autenticación de Azure:
Tokens de firma de acceso compartido (SAS). Los tokens de SAS se pueden especificar directamente al crear un trabajo de transferencia o se pueden almacenar en Secret Manager.
Las claves compartidas de Azure se pueden almacenar en Secret Manager y el secreto se puede transferir al crear un trabajo de transferencia.
Las credenciales federadas se transfieren en un objeto
federatedIdentityConfigdurante la creación de la tarea de transferencia.
Este documento también incluye información sobre cómo añadir direcciones IP de trabajadores del Servicio de transferencia de Storage a tu firewall de Azure Storage para permitir el acceso. Consulta los detalles en Restricciones de IP.
Regiones disponibles
El Servicio de transferencia de Storage puede transferir datos de las siguientes regiones de almacenamiento de Microsoft Azure:- América: este de EE. UU., este de EE. UU. 2, oeste de EE. UU., oeste de EE. UU. 2, oeste de EE. UU. 3, centro de EE. UU., centro-norte de EE. UU., centro-sur de EE. UU., centro-oeste de EE. UU., centro de Canadá, este de Canadá y sur de Brasil
- Asia-Pacífico: Australia Central, Australia Este, Australia Sudeste, Centro de la India, Sur de la India, Oeste de la India, Sudeste Asiático, Este de Asia, Japón Este, Japón Oeste, Corea del Sur y Corea Central
- Europa, Oriente Medio y África (EMEA): Centro de Francia, Centro-oeste de Alemania, Este de Noruega, Centro de Suecia, Norte de Suiza, Norte de Europa, Oeste de Europa, Sur del Reino Unido, Oeste del Reino Unido, Centro de Catar, Norte de Emiratos Árabes Unidos, Norte de Sudáfrica
Opción 1: Autenticarse mediante un token de SAS
Sigue estos pasos para configurar el acceso a un contenedor de Microsoft Azure Storage mediante un token de SAS. También puedes guardar tu token de SAS en Secret Manager. Para ello, sigue las instrucciones que se indican en Autenticar con una clave compartida de Azure o un token de SAS en Secret Manager.
Crea o usa un usuario de Microsoft Azure Storage para acceder a la cuenta de almacenamiento del contenedor de blobs de Microsoft Azure Storage.
Crea un token de SAS a nivel de contenedor. Consulta las instrucciones en Conceder acceso limitado a recursos de Azure Storage mediante firmas de acceso compartido.
En Servicios permitidos debe incluirse Blob.
En Tipos de recursos permitidos, selecciona Contenedor y Objeto.
En Permisos permitidos deben incluirse Leer y Mostrar. Si la transferencia está configurada para eliminar objetos del origen, también debe incluir el permiso Eliminar.
El tiempo de expiración predeterminado de los tokens de SAS es de 8 horas. Define un tiempo de vencimiento razonable que te permita completar la transferencia correctamente.
No especifiques ninguna dirección IP en el campo Direcciones IP permitidas. Storage Transfer Service usa varias direcciones IP y no admite restricciones de direcciones IP.
En Protocolos permitidos, debe seleccionar Solo HTTPS.
Una vez creado el token, anota el valor del token de SAS que se devuelve. Necesitará este valor al configurar la transferencia con el Servicio de transferencia de Storage.
Opción 2: Autenticar con una clave compartida o un token SAS de Azure en Secret Manager
Secret Manager es un servicio seguro que almacena y gestiona datos sensibles, como contraseñas. Utiliza un cifrado sólido, un control de acceso basado en roles y un registro de auditoría para proteger tus secretos.
El Servicio de transferencia de Storage admite nombres de recursos de Secret Manager que hacen referencia a tus credenciales de Azure almacenadas de forma segura.
Para usar una clave compartida de Azure, debes guardar la clave en Secret Manager. Los tokens de SAS se pueden guardar en Secret Manager o transferir directamente.
Cuando especifica una clave compartida, el Servicio de transferencia de Storage usa esa clave para generar una SAS de servicio cuyo ámbito se limita al contenedor de Azure especificado en el trabajo de transferencia.
Activar la API
Enable the Secret Manager API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin), which
contains the serviceusage.services.enable permission. Learn how to grant
roles.
Configurar permisos adicionales
Permisos de usuario
El usuario que cree el secreto debe tener el siguiente rol:
- Administrador de Secret Manager (
roles/secretmanager.admin)
Consulta cómo conceder un rol.
Permisos de agente de servicio
El agente de servicio del Servicio de transferencia de Storage requiere el siguiente rol de gestión de identidades y accesos:
- Lector de recursos de Secret Manager (
roles/secretmanager.secretAccessor)
Para conceder el rol a tu agente de servicio, sigue estos pasos:
consola de Cloud
Sigue las instrucciones para recuperar el correo de tu agente de servicio.
Ve a la página Gestión de identidades y accesos de la Google Cloud consola.
Haz clic en Conceder acceso.
En el cuadro de texto Nuevos principales, introduce el correo del agente de servicio.
En el menú desplegable Selecciona un rol, busca y selecciona Permiso para acceder a los recursos de Secret Manager.
Haz clic en Guardar.
gcloud
Usa el comando gcloud projects add-iam-policy-binding para añadir el rol de gestión de identidades y accesos a tu agente de servicio.
Sigue las instrucciones para recuperar el correo de tu agente de servicio.
En la línea de comandos, introduce el siguiente comando:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:SERVICE_AGENT_EMAIL' \ --role='roles/secretmanager.secretAccessor'
Crear un secreto
Crea un secreto con Secret Manager:
consola de Cloud
Ve a la página Secret Manager en la Google Cloud consola.
Haz clic en Crear secreto.
Escribe un nombre.
En el cuadro de texto Valor del secreto, introduce tus credenciales en uno de los siguientes formatos.
{ "sas_token" : "SAS_TOKEN_VALUE" }O:
{ "access_key" : "ACCESS_KEY" }Haz clic en Crear secreto.
Una vez creado el secreto, anota el nombre completo del recurso:
Selecciona la pestaña Resumen.
Copia el valor de Nombre de recurso. Utiliza el siguiente formato:
projects/1234567890/secrets/SECRET_NAME
gcloud
Para crear un secreto con la herramienta de línea de comandos gcloud, envía las credenciales en formato JSON al comando gcloud secrets create:
printf '{
"sas_token" : "SAS_TOKEN_VALUE"
}' | gcloud secrets create SECRET_NAME --data-file=-
O:
printf '{
"access_key" : "ACCESS_KEY"
}' | gcloud secrets create SECRET_NAME --data-file=-
Recupera el nombre completo del recurso del secreto:
gcloud secrets describe SECRET_NAME
Anota el valor de name en la respuesta. Utiliza el siguiente formato:
projects/1234567890/secrets/SECRET_NAME
Para obtener más información sobre cómo crear y gestionar secretos, consulta la documentación de Secret Manager.
Transfiere tu secreto al comando de creación de trabajos
Para usar Secret Manager con Storage Transfer Service, debe usar la API REST para crear un trabajo de transferencia.
Envía el nombre del recurso de Secret Manager como valor del campo transferSpec.azureBlobStorageDataSource.credentialsSecret:
POST https://storagetransfer.googleapis.com/v1/transferJobs
{
"description": "Transfer with Secret Manager",
"status": "ENABLED",
"projectId": "PROJECT_ID",
"transferSpec":