Configurar acceso a fuentes de datos y receptores

En esta página, se explica cómo configurar el acceso al receptor y a la fuente de datos para una transferencia de datos realizada con el Servicio de transferencia de almacenamiento.

El Servicio de transferencia de almacenamiento usa una cuenta de servicio administrada por Google para trasladar tus datos. Si creas una transferencia desde Google Cloud Console y tienes permisos para actualizar las políticas de IAM para los recursos de Cloud Storage, las transferencias creadas desde Google Cloud Console otorgan automáticamente a la cuenta de servicio administrada por Google que usa el Servicio de transferencia de almacenamiento los permisos necesarios para la transferencia.

El acceso a fuentes de datos y transferencias que no son de Google Cloud creadas con la API del Servicio de transferencia de almacenamiento requiere una configuración adicional.

Requisitos previos

Los permisos de la cuenta de servicio se otorgan a nivel del bucket. Debes tener la capacidad de otorgar estos permisos, como la función de Administrador de almacenamiento. Para obtener más información, consulta Identity and Access Management.

Si planeas usar Pub/Sub para transferencias, asegúrate de otorgar a la cuenta de servicio la función de IAM Publicador de Pub/Sub (roles/pubsub.publisher) para el tema de Pub/Sub que desees. Puede haber un retraso de varios segundos entre la asignación de la función y su aplicación a tu cuenta de servicio. Si otorgas este permiso de forma programática, espera 30 segundos antes de configurar el Servicio de transferencia de almacenamiento.

Si Cloud Key Management Service está habilitado en tus buckets de origen o destino de Cloud Storage, verifica que las cuotas enumeradas para Cloud KMS en la página Cuotas de tu proyecto sean compatibles con las cuotas de lectura y escritura del Servicio de transferencia de almacenamiento. Si no es así, solicita un aumento de la cuota desde la página Cuotas de tu proyecto.

Para obtener más información, consulta lo siguiente:

Configura el acceso a la fuente de datos

Cloud Storage

El Servicio de transferencia de almacenamiento usa una cuenta de servicio administrada por Google para mover datos desde un bucket de origen de Cloud Storage, que se crea la primera vez que llamas a googleServiceAccounts.get

El formato de la cuenta de servicio suele ser project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. Para encontrar el formato de tu cuenta de servicio, usa la llamada a la API de googleServiceAccounts.get.

Si deseas configurar el Servicio de transferencia de almacenamiento para usar Cloud Storage como fuente de datos, asigna las siguientes funciones, o permisos equivalentes, a la cuenta de servicio administrada por Google que muestra la llamada a la API de googleServiceAccounts.get:

Función Qué hace Notas
Visualizador de objetos de almacenamiento (roles/storage.objectViewer) Permite que la cuenta de servicio lea el contenido del bucket y lea los datos y metadatos de los objetos.
Lector de buckets heredados de almacenamiento (roles/storage.legacyBucketReader) Permite que la cuenta de servicio lea el contenido y los metadatos de un bucket y lea los metadatos de los objetos. Si no quieres borrar objetos de origen en Cloud Storage, asigna Lector de buckets heredados de almacenamiento (roles/storage.legacyBucketReader) a la cuenta de servicio.
Escritor de buckets heredados de almacenamiento (roles/storage.legacyBucketWriter) Permite que la cuenta de servicio cree, reemplace y borre objetos, enumere objetos en un bucket. lea los metadatos de los objetos cuando se enumeran y lea los metadatos de los buckets, excepto las políticas de IAM. Si deseas borrar objetos de origen de Cloud Storage, asigna Escritor de buckets heredados de almacenamiento (roles/storage.legacyBucketWriter) a la cuenta de servicio.

Si deseas realizar transferencias de datos avanzadas, consulta los permisos de IAM para el Servicio de transferencia de almacenamiento.

Amazon S3

Sigue estos pasos para configurar el acceso a un bucket de Amazon S3:

  1. Configura el acceso al bucket de Amazon S3 mediante uno de los siguientes métodos:

    Credenciales de acceso

    1. Crea un usuario de administración de identidades y accesos de AWS (IAM de AWS) con un nombre que puedas reconocer fácilmente, como transfer-user. Asegúrate de que el nombre siga los lineamientos para nombres de usuarios de IAM de AWS (consulta las Limitaciones de entidades y objetos de IAM).
    2. Otorga al usuario IAM de AWS la capacidad de hacer lo siguiente:
      • Enumera el bucket de Amazon S3.
      • Obtén la ubicación del bucket.
      • Lee los objetos del bucket.
      • Si planeas borrar objetos del origen después de que estos se hayan transferido, otorga al usuario permiso para borrar objetos.
    3. Crea al menos un par de claves secretas, o de acceso, para el trabajo de transferencia que deseas configurar. También puedes crear un par de claves secretas, o de acceso, para cada trabajo de transferencia.

    Identidad federada

    1. El Servicio de transferencia de almacenamiento usa una cuenta de servicio administrada por Google para mover tus datos desde un bucket de origen de Amazon S3. El formato de la cuenta de servicio suele ser project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. Para encontrar el formato de tu cuenta de servicio y crear la cuenta de servicio si aún no existe, usa la llamada a la API de googleServiceAccounts.get. Toma nota de la cuenta de servicio para los siguientes pasos.
    2. Para permitir que el servicio autentique solicitudes salientes con la cuenta de servicio, agrega la función Creador de tokens de cuenta de servicio a la cuenta de servicio que anotaste antes.
    3. Crea la siguiente función de IAM llamada Nombre de recurso de Amazon (ARN) con permisos AssumeRoleWithWebIdentity:
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Federated": "accounts.google.com"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
              "StringEquals": {
                "accounts.google.com:sub": "Service_account_subject_identifier"
              }
            }
          }
        ]
      }
                        
      Para obtener más información sobre los ARN, consulta ARN de IAM.
    4. Agrega permisos para que el Servicio de transferencia de almacenamiento pueda acceder a los recursos de Amazon S3. Para ello, adjunta la siguiente política a la función de ARN de IAM, que se puede hacer a través de la consola de IAM de AWS:
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*",
                "s3:Delete*",
             ],
            "Resource": "*"
          }
        ]
      }
                        
  2. Restablece los objetos que estén archivados en Amazon Glacier. No se podrá acceder a los objetos en Amazon S3 que estén archivados en Amazon Glacier hasta que se los restablezca. Para obtener más información, consulta el informe de migración a Cloud Storage desde Amazon Glacier.

Microsoft Azure Blob Storage

Siga 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 Conceder acceso limitado a los recursos de Azure Storage mediante firmas de acceso compartido.

    El tiempo de vencimiento predeterminado para los tokens SAS es de 8 horas. Cuando cree su token SAS, asegúrese de establecer un tiempo de vencimiento razonable que le permita completar con éxito su transferencia.

Lista de URL

Si tu fuente de datos es una lista de URL, asegúrate de que cada objeto de ella sea de acceso público.

Configura el acceso al receptor de datos

El Servicio de transferencia de almacenamiento usa una cuenta de servicio administrada por Google para mover datos desde un bucket de origen de Cloud Storage, que se crea la primera vez que llamas a googleServiceAccounts.get

El formato de la cuenta de servicio suele ser project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. Para encontrar el formato de tu cuenta de servicio, usa la llamada a la API de googleServiceAccounts.get.

El receptor de datos, de tu transferencia de datos, siempre es un bucket de Cloud Storage.

Si deseas configurar el Servicio de transferencia de almacenamiento para usar Cloud Storage como receptor de datos, asigna las siguientes funciones, o permisos equivalentes, a la cuenta de servicio administrada por Google que muestra la llamada a la API de googleServiceAccounts.get:

Función Qué hace
Escritor de buckets heredados de almacenamiento (roles/storage.legacyBucketWriter) Permite que la cuenta de servicioadministrada por Google cree, reemplace y borre objetos, enumere objetos en el bucket de destino y lea los metadatos de un bucket.
Visualizador de objetos de almacenamiento (roles/storage.objectViewer) Habilita la cuenta de servicio administrada por Google para enumerar y obtener objetos en el bucket de destino.

Si deseas obtener más información sobre los permisos obligatorios, consulta los permisos de IAM para el Servicio de transferencia de almacenamiento.

¿Qué sigue?