Configura el acceso a una fuente: Microsoft Azure Storage

Puedes configurar el acceso a los datos de origen en Microsoft Azure Storage con el acceso compartido de estado (SAS).

Regiones admitidas

El Servicio de transferencia de almacenamiento puede transferir datos desde las siguientes regiones de Microsoft Azure Storage:
  • 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., norte central de EE.UU., sur central de EE.UU., oeste central de EE.UU., Centro de Canadá, Este de Canadá, Sur de Brasil
  • Asia-Pacífico: Australia Central, Australia Este, Australia Sudeste, India Central, India Meridional, India Occidental, Sudeste Asiático, Asia Oriental, Japón Este, Japón Oeste, Corea del Sur, Corea Central
  • Europa, Oriente Medio y África (EMEA): Francia Central, Alemania Central Occidental, Noruega Oriental, Suecia Central, Norte de Suiza, Europa del Norte, Europa Occidental, Sur del Reino Unido, Reino Unido oeste, Catar Central, Norte de los Emiratos Árabes Unidos, Sudáfrica del Norte

Configura el acceso

Sigue estos pasos para configurar el acceso a un contenedor de almacenamiento de Microsoft Azure:

  1. Crea un usuario de Microsoft Azure Storage o usa uno existente para acceder a la cuenta de almacenamiento de tu contenedor de Microsoft Azure Storage Blob.

  2. Cree un token SAS a nivel de contenedor. Consulta Otorga acceso limitado a los recursos de Azure Storage mediante firmas de acceso compartido para obtener instrucciones.

    1. Los servicios permitidos deben incluir Blob.

    2. En Tipos de recursos permitidos, selecciona Contenedor y Objeto.

    3. Los permisos permitidos deben incluir Lectura y Lista. Si el botón transferencia está configurada para borrar objetos de la fuente, también debes incluir el permiso Borrar.

    4. El tiempo de vencimiento predeterminado para los tokens SAS es de 8 horas. Establece una cantidad razonable una fecha y hora de vencimiento que te permite completar correctamente tu transferencia.

    5. No especifiques ninguna dirección IP en el campo Direcciones IP permitidas. El Servicio de transferencia de almacenamiento usa varias direcciones IP y no es compatible con IP restricción de direcciones.

    6. Los Protocolos permitidos deben ser solo HTTPS.

  3. Una vez que se cree el token, anota el valor del token de SAS que se muestra. Necesitas este valor para configurar tu transferencia con el Servicio de transferencia de almacenamiento.

Guarda tus credenciales de Microsoft en Secret Manager

Secret Manager es un servicio seguro que almacena y administra datos sensibles, como contraseñas. Cuenta con encriptación sólida, acceso basado en roles de control y registros de auditoría para proteger los Secrets.

El Servicio de transferencia de almacenamiento puede aprovechar Secret Manager para proteger Azure credenciales. Servicio de transferencia de almacenamientoo admite tanto firma de acceso compartido (SAS) y Claves compartidas de Azure en Secret Manager.

Cuando especificas una clave compartida, el Servicio de transferencia de almacenamiento usa esa clave para generar una servicio SAS que está restringido en el permiso del contenedor de Azure especificado en la transferencia el trabajo.

Habilitar la API

Habilita la API de Secret Manager.

Habilita la API

Configura permisos adicionales

Permisos de usuario

El usuario que crea el secreto necesita el siguiente rol:

  • Administrador de Secret Manager (roles/secretmanager.admin)

Aprende a hacer lo siguiente: otorgar un rol.

Permisos del agente de servicio

El agente de servicio del Servicio de transferencia de almacenamiento requiere el siguiente rol de IAM:

  • Acceso a secretos de Secret Manager (roles/secretmanager.secretAccessor)

Para otorgar la función a tu agente de servicio, sigue estos pasos:

Consola de Cloud

  1. Sigue las instrucciones para recuperar el correo electrónico del agente de servicio

  2. Ve a la página de IAM en la consola de Google Cloud.

    Ir a IAM

  3. Haz clic en Otorgar acceso.

  4. En el cuadro de texto Principales nuevas, ingresa el correo electrónico del agente de servicio.

  5. En el menú desplegable Selecciona un rol, busca y selecciona Secret Manager. Acceso a Secrets.

  6. Haz clic en Guardar.

gcloud

Usa el comando gcloud projects add-iam-policy-binding para agregar la IAM a tu agente de servicio.

  1. Sigue las instrucciones para recuperar el correo electrónico del agente de servicio

  2. En la línea de comandos, ingresa el siguiente comando:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member='serviceAccount:SERVICE_AGENT_EMAIL' \
      --role='roles/secretmanager.secretAccessor'
    

Crea un secreto

Crea un secreto con Secret Manager:

Consola de Cloud

  1. Ve a la página Secret Manager en la consola de Google Cloud.

    Ir a Secret Manager

  2. Haz clic en Crear secreto.

  3. Ingresa un nombre.

  4. En el cuadro de texto Valor del secreto, ingresa tus credenciales en una de las los siguientes formatos.

    {
      "sas_token" : "SAS_TOKEN_VALUE"
    }
    

    Como alternativa, puedes hacer lo siguiente:

    {
      "access_key" : "ACCESS_KEY"
    }
    
  5. Haz clic en Crear secreto.

  6. Una vez que se haya creado el secreto, anota el nombre completo del recurso del secreto:

    1. Selecciona la pestaña Descripción general.

    2. Copia el valor del ID de recurso. Usa el siguiente formato:

      projects/1234567890/secrets/SECRET_NAME

gcloud

Para crear un secreto nuevo con la herramienta de línea de comandos de gcloud, pasa el Credenciales con formato JSON para el comando gcloud secrets create:

printf '{
  "sas_token" : "SAS_TOKEN_VALUE"
}' | gcloud secrets create SECRET_NAME --data-file=-

Como alternativa, puedes hacer lo siguiente:

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

Observa el valor de name en la respuesta. Usa el siguiente formato:

projects/1234567890/secrets/SECRET_NAME

Para obtener más información sobre cómo crear y administrar Secrets, consulta el Documentación de Secret Manager.

Pasa tu secreto al comando de creación de trabajos

Usa Secret Manager con El Servicio de transferencia de almacenamiento requiere el uso de la API de REST para crear un trabajo de transferencia.

Pasa el nombre del recurso de Secret Manager como el valor del Campo transferSpec.azureBlobStorageDataSource.credentialsSecret:

POST https://storagetransfer.googleapis.com/v1/transferJobs

{
  "description": "Transfer with Secret Manager",
  "status": "ENABLED",
  "projectId": "PROJECT_ID",
  "transferSpec": {
    "azureBlobStorageDataSource": {
      "storageAccount": "AZURE_SOURCE_NAME",
      "container": "AZURE_CONTAINER",
      "credentialsSecret": "SECRET_RESOURCE_ID",
    },
    "gcsDataSink": {
      "bucketName": "CLOUD_STORAGE_BUCKET_NAME"
    }
  }
}

Restricciones de IP

Si restringes el acceso a tus recursos de Azure con un firewall de Azure Storage, debes agregar los rangos de IP que usan los trabajadores del Servicio de transferencia de almacenamiento IP permitidas.

Dado que estos rangos de IP pueden cambiar, publicamos los valores actuales como un archivo JSON en una dirección permanente:

https://www.gstatic.com/storage-transfer-service/ipranges.json

Cuando se agregue un rango nuevo al archivo, esperaremos al menos 7 días antes usando ese rango para las solicitudes del Servicio de transferencia de almacenamiento.

Te recomendamos que extraigas los datos de este documento al menos una vez por semana para mantener de que tu configuración de seguridad esté actualizada. Para una secuencia de comandos de Python de muestra que recupera Rangos de IP de un archivo JSON, consulta este artículo de la Oficina documentación.

Para agregar estos rangos como IP permitidas, sigue las instrucciones de la consola de Microsoft Artículo de Azure: Configura firewalls y redes virtuales de Azure Storage.