Transfiere datos de Amazon S3 a Cloud Storage mediante los Controles del servicio de VPC y el Servicio de transferencia de almacenamiento


En este instructivo se describe cómo endurecer las transferencias de datos desde Amazon Simple Storage Service (Amazon S3) a Cloud Storage mediante el Servicio de transferencia de almacenamiento con los Controles del servicio de VPC. Este instructivo está dirigido a los propietarios de datos cuyos datos residen en Amazon S3 y desean procesarlos o migrarlos de forma segura a Google Cloud.

En este instructivo se supone que estás familiarizado con Amazon Web Services (AWS) y la información básica sobre el trabajo con datos en almacenes de objetos. En este instructivo se aplica un método basado en cuentas de servicio para controlar el acceso mediante Access Context Manager . Para niveles de acceso más avanzados más allá del método basado en la cuenta de servicio, consulta esta página sobre cómo crear un nivel de acceso.

Arquitectura

En el siguiente diagrama, se describe la arquitectura de los Controles del servicio de VPC.

Arquitectura de los Controles del servicio de VPC en la que se niega la comunicación entre los servicios de Google Cloud fuera del perímetro controlado.

En el diagrama anterior, los Controles del servicio de VPC niegan de manera explícita la comunicación entre los servicios de Google Cloud, a menos que ambos proyectos estén en el perímetro controlado.

Objetivos

  • Configura el acceso a AWS.
  • Crea el perímetro de los Controles del servicio de VPC.
  • Crea una política y un nivel de acceso mediante Access Context Manager.
  • Usa el Servicio de transferencia de almacenamiento para mover datos entre Amazon S3 y Cloud Storage
  • Programa el Servicio de transferencia de almacenamiento para recuperar los datos en un programa.

Costos

En este documento, usarás los siguientes componentes facturables de Google Cloud:

No se aplican costos adicionales por usar el Servicio de transferencia de almacenamiento. Sin embargo, se aplican los precios de Cloud Storage y los costos del proveedor externo cuando se usa el Servicio de transferencia de almacenamiento.

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios. Es posible que los usuarios nuevos de Google Cloud califiquen para obtener una prueba gratuita.

Cuando finalices las tareas que se describen en este documento, puedes borrar los recursos que creaste para evitar que continúe la facturación. Para obtener más información, consulta Cómo realizar una limpieza.

Además de los recursos de Google Cloud, en este instructivo se usan los siguientes recursos de Amazon Web Services (AWS), que pueden tener costos:

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. Habilita las API de Access Context Manager, Cloud Storage, and Storage Transfer Service.

    Habilita las API

  5. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  6. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  7. Habilita las API de Access Context Manager, Cloud Storage, and Storage Transfer Service.

    Habilita las API

  8. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

    En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  9. En la consola de Google Cloud, ve a la página IAM y Administración para otorgar a tu cuenta las funciones Administrador de Almacenamiento y Administrador de Access Control Manager.
    Ir a la página IAM y Administración
  10. La función Administrador de Almacenamiento tiene los siguientes permisos:

    • firebase.projects.get
    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • storage.buckets.*
    • storage.objects.*

    La función Administrador de Access Context Manager tiene los siguientes permisos:

    • accesscontextmanager.accessLevels.*
    • accesscontextmanager.accessPolicies.*
    • accesscontextmanager.accessPolicies.setIamPolicy
    • accesscontextmanager.accessPolicies.update
    • accesscontextmanager.accessZones.*
    • accesscontextmanager.policies.*
    • accesscontextmanager.servicePerimeters.*
    • resourcemanager.organizations.get

Configura el acceso a AWS

En este instructivo trabajas con usuarios existentes de la administración de identidades y accesos de AWS (IAM de AWS) a fin de crear una política de IAM de AWS para interactuar con el servicio StorageTransfer. Estas políticas y usuarios son necesarios para autenticar tu conexión a Google Cloud y ayudarte a proteger tus datos en tránsito. En este instructivo se requiere que tengas un bucket de Amazon S3 desde el que puedas transferir datos; puedes usar un bucket de Amazon S3 existente o crear uno nuevo. Puedes usar una cuenta de AWS de prueba o de zona de pruebas para evitar que se afecten los recursos de producción en la misma cuenta.

Crea una política de IAM de AWS para el Servicio de transferencia de almacenamiento y aplícala a tu bucket

  1. En la consola de administración de AWS, ve a la página IAM.
  2. Haz clic en Políticas y, luego, en Crear política.
  3. En el editor visual, haz clic en Política de IAM.
  4. Haz clic en S3.
  5. Selecciona las siguientes casillas de verificación en Nivel de acceso:

    • Lista
    • Lectura
    • Escritura
  6. En el panel Recursos, selecciona Específicos.

  7. En el panel Bucket , haz clic en Agregar ARN.

  8. En el campo Nombre del bucket , ingresa el nombre del bucket desde el que transfieres datos.

  9. Haz clic en Revisar política y, luego, ingresa un nombre como transfer-user-policy.

  10. Haz clic en Crear política.

Agrega usuarios de IAM de AWS a tu política de IAM de AWS

  1. En la consola de administración de AWS, ve a la página IAM.
  2. Haz clic en Usuarios y, luego, en Agregar usuario.
  3. En el campo Nombre, ingresa transfer-user.
  4. Para Tipo de acceso, haz clic en Acceso programático y adjunta la transfer-user-policy que creaste para ese usuario.
  5. Después de crear el usuario, anota el ID de acceso y el par de claves secretas, ya que se usarán más adelante en el instructivo.
  6. Haz clic en Guardar.

Crea un bucket de Cloud Storage

Antes de que puedas habilitar el perímetro de los Controles del servicio de VPC, debes crear un bucket de Cloud Storage.

  1. En la consola de Google Cloud, ve a la página Navegador de Cloud Storage.

    Ir a la página Navegador de Cloud Storage

  2. Haz clic en Crear bucket .

  3. En el campo Nombre, ingresa un nombre, como project-id-destination-bucket en el que project-id represente tu ID del proyecto de Google Cloud.

  4. En Clase de almacenamiento predeterminada del bucket, haz clic en Almacenamiento regional.

  5. En la lista desplegable Ubicación, haz clic en una región en la que se almacenan los datos del bucket.

  6. Haz clic en Crear.

Encuentra el nombre de tu cuenta de servicio de operaciones de transferencia

El Servicio de transferencia de almacenamiento usa una cuenta de servicio administrada por Google para comunicarse con los recursos de Cloud Storage y Pub/Sub dentro de tu proyecto. Debes determinar el nombre de tu cuenta de servicio porque se usará más adelante en este instructivo. Si nunca usaste el Servicio de transferencia de almacenamiento, se creará la cuenta de servicio correspondiente. Para obtener más información sobre las cuentas de servicio administradas por Google, consulta la sección Cuentas de servicio administradas por Google.

  1. Para determinar el nombre de tu cuenta de servicio, ve a esta página sobre la API de Servicio de transferencia de almacenamiento.
  2. En el campo String, ingresa el ID del proyecto de Google Cloud.

    El nombre de la cuenta de servicio suele tener el siguiente formato: project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com

Crea tu política de acceso en Access Context Manager

Una política de acceso recopila los perímetros de servicio y los niveles de acceso que creas para tu organización. Una organización solo puede tener una política de acceso.

  1. En la consola de Google Cloud, ve a la página Configuración.

    Ir a la página Configuración

  2. Anota el ID del proyecto de Google Cloud y el nombre de la organización.

  3. En Cloud Shell, crea una política:

    gcloud access-context-manager policies create \
        --organization organization-id --title policy-title
    
    • organization-id es el ID de la organización que encontraste con anterioridad.
    • policy-title es el título del perímetro. Por ejemplo, Example-Company-Access-Policy.

    Este es el resultado:

    Create request issued
    Waiting for operation [accessPolicies/policy-title/create/policy-number] to complete...done.
    Created.
    

    policy-number representa un ID único asignado al título de la política.

Crea el perímetro de los Controles del servicio de VPC

Cuando creas el perímetro de los Controles del servicio de VPC, el tráfico no está permitido. Luego, creas un nivel de acceso explícito para permitir que la operación de transferencia envíe datos al perímetro controlado.

  1. En la consola de Google Cloud, ve a la página Controles del servicio de VPC.

    Ir a la página Controles del servicio de VPC

  2. Haz clic en Perímetro nuevo.

  3. En el campo Nombre, ingresa un nombre para el perímetro, como data-transfer-perimeter.

  4. Deja seleccionado Perímetro regular.

  5. Haz clic en Agregar proyecto y agrega el proyecto que creaste en este instructivo a la lista de proyectos para proteger.

  6. Haz clic en API de Cloud Storage.

  7. Deja Niveles de acceso en el valor predeterminado.

  8. Haz clic en Guardar.

Crea un nivel de acceso en la política de acceso

En esta sección limitas el acceso a la VPC mediante la cuenta de servicio.

  1. En Cloud Shell, crea un archivo YAML llamado conditions.yaml que enumere las principales a las que deseas proporcionar acceso:

     - members:
         - serviceAccount:project-project-number@storage-transfer-service.iam.gserviceaccount.com
         - user:sysadmin@example.com
     

  2. Crea el nivel de acceso:

    gcloud access-context-manager levels create name \
        --title title \
        --basic-level-spec ~./conditions.yaml \
        --combine-function=OR \
        --policy=policy-id
    
    • name es el nombre único para el nivel de acceso. Debe comenzar con una letra y, además, incluir solo letras, números y guiones bajos.
    • title es un título exclusivo de la política, como trusted-identity-ingest
    • policy-id es el ID (número) de la política de acceso de tu organización
    • combine-function se configura como OR. El valor predeterminado AND requiere que se cumplan todas las condiciones antes de que se otorgue un nivel de acceso. Con el valor OR se da acceso a las principales incluso si no se cumplen otras condiciones, como la dirección IP o las heredadas de otros niveles de acceso requeridos.

    El resultado es similar a este:

    Create request issued for: name
    Waiting for operation [accessPolicies/policy-id/accessLevels/name/create/access-level-number] to complete...done.
    Created level name.
    

    access-level-number representa un ID único asignado al nivel de acceso.

Vincula el nivel de acceso a los Controles del servicio de VPC

  1. En la consola de Google Cloud, ve a Controles del servicio de VPC.

    Ir a la página Controles del servicio de VPC

  2. Haz clic en Editar en el Control del servicio de VPC.

  3. Haz clic en Nivel de acceso y selecciona el nivel de acceso trusted-identity-ingest.

  4. Haz clic en Guardar.

Ahora, las únicas operaciones permitidas en el perímetro controlado provienen de la cuenta de servicio que definiste.

Inicia la transferencia

  1. En la consola de Google Cloud, ve a la página Transferencia.

    Ir a la página Transferencia

  2. Haz clic en Crear transferencia.

  3. Haz clic en Depósito de Amazon S3.

  4. En el campo Bucket de Amazon S3, ingresa el nombre del bucket de origen de Amazon S3 como aparece en la consola de administración de AWS.

  5. Ingresa el ID de clave de acceso y laClave secreta asociada con el bucket de Amazon S3. Copiaste estos valores al comienzo de este instructivo.

  6. En Seleccionar destino, ingresa el nombre del bucket que creaste en tu perímetro, como project-id-destination-bucket.

  7. En Configurar transferencia, programa el trabajo de transferencia en Ejecutar ahora.

  8. Opcional: edita el nombre del trabajo de transferencia.

  9. En Descripción usa un nombre descriptivo único para ayudarte a identificar el trabajo de transferencia más adelante.

  10. Haz clic en Crear.

Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.

Borra el proyecto

  1. En la consola de Google Cloud, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

¿Qué sigue?