Caso práctico: control de acceso con cuentas de servicio de espacio de nombres

En esta página se describe el caso práctico en el que se controla el acceso a los recursos a nivel de espacio de nombres al migrar datos de Cloud Storage a BigQuery. Google Cloud

Para controlar el acceso a los recursos, los espacios de nombres de Cloud Data Fusion usan el agente de servicio de la API de Cloud Data Fusion de forma predeterminada. Google Cloud

Para mejorar el aislamiento de los datos, puedes asociar una cuenta de servicio de gestión de identidades y accesos personalizada (conocida como cuenta de servicio por espacio de nombres) a cada espacio de nombres. La cuenta de servicio de gestión de identidades y accesos personalizada, que puede ser diferente para cada espacio de nombres, te permite controlar el acceso a losGoogle Cloud recursos entre espacios de nombres para las operaciones de tiempo de diseño de la canalización en Cloud Data Fusion, como la vista previa de la canalización, Wrangler y la validación de la canalización.

Para obtener más información, consulta Control de acceso con cuentas de servicio de espacio de nombres.

Situación

En este caso práctico, tu departamento de marketing migra datos de Cloud Storage a BigQuery mediante Cloud Data Fusion.

Flujo de datos que muestra una fuente de Cloud Storage, una transformación de Wrangler y un receptor de BigQuery.

El departamento de marketing tiene tres equipos: A, B y C. Tu objetivo es establecer un enfoque estructurado para controlar el acceso a los datos en Cloud Storage a través de los espacios de nombres de Cloud Data Fusion correspondientes a cada equipo (A, B y C, respectivamente).

Solución

En los pasos siguientes se muestra cómo controlar el acceso a los Google Cloud recursos con cuentas de servicio de espacio de nombres para evitar el acceso no autorizado entre los almacenes de datos de diferentes equipos.

Asociar una cuenta de servicio de gestión de identidades y accesos a cada espacio de nombres

Configura una cuenta de servicio de IAM en el espacio de nombres de cada equipo (consulta Configurar una cuenta de servicio de espacio de nombres):

  1. Configura el control de acceso añadiendo una cuenta de servicio personalizada para el equipo A. Por ejemplo, team-a@pipeline-design-time-project.iam.gserviceaccount.com.

    Configura una cuenta de servicio para el equipo A.
    Imagen 1: Añadir una cuenta de servicio personalizada para el equipo A.
  2. Repite los pasos de configuración para los equipos B y C para configurar el control de acceso con cuentas de servicio personalizadas similares.

Limitar el acceso a los segmentos de Cloud Storage

Limita el acceso a los segmentos de Cloud Storage asignando los permisos adecuados:

  1. Concede a la cuenta de servicio de gestión de identidades y accesos el permiso storage.buckets.list, necesario para mostrar los segmentos de Cloud Storage del proyecto. Para obtener más información, consulta Listar segmentos.
  2. Concede a la cuenta de servicio de gestión de identidades y accesos permiso para acceder a los objetos de determinados segmentos.

    Por ejemplo, concede el rol lector de objetos de almacenamiento a la cuenta de servicio de gestión de identidades y accesos asociada al espacio de nombres team_A en el segmento team_a1. Este permiso permite al equipo A ver y enumerar objetos y carpetas gestionadas, junto con sus metadatos, en ese segmento en un entorno de tiempo de diseño aislado.

    Asigna el rol en la página Detalles del segmento.
    Imagen 2: En la página Segmentos de Cloud Storage, añada al equipo como principal y asígnele el rol Usuario de objetos de Storage.

Crea la conexión de Cloud Storage en los espacios de nombres correspondientes

Crea una conexión de Cloud Storage en el espacio de nombres de cada equipo:

  1. En la Google Cloud consola, ve a la página Instancias de Cloud Data Fusion y abre una instancia en la interfaz web de Cloud Data Fusion.

    Ir a Instancias

  2. Haga clic en Administrador del sistema > Configuración > Espacios de nombres.

  3. Haz clic en el espacio de nombres que quieras usar (por ejemplo, el espacio de nombres del equipo A).

  4. Haz clic en la pestaña Conexiones y, a continuación, en Añadir conexión.

  5. Selecciona GCS y configura la conexión.

    Crear la conexión de Cloud Storage en Cloud Data Fusion
    Imagen 3: Configura la conexión de Cloud Storage para el espacio de nombres.
  6. Crea una conexión de Cloud Storage para cada espacio de nombres repitiendo los pasos anteriores. Cada equipo puede interactuar con una copia aislada de ese recurso para sus operaciones de tiempo de diseño.

Validar el aislamiento en tiempo de diseño de cada espacio de nombres

El equipo A puede validar el aislamiento en la fase de diseño accediendo a los segmentos de Cloud Storage de sus respectivos espacios de nombres:

  1. En la Google Cloud consola, ve a la página Instancias de Cloud Data Fusion y abre una instancia en la interfaz web de Cloud Data Fusion.

    Ir a Instancias

  2. Haga clic en Administrador del sistema > Configuración > Espacios de nombres.

  3. Selecciona un espacio de nombres, por ejemplo, el espacio de nombres del equipo A, team_A.

  4. Haz clic en Menú > Wrangler.

  5. Haz clic en GCS.

  6. En la lista de pendientes, haz clic en el icono team_a1.

    • Puedes ver la lista de los contenedores porque el espacio de nombres del equipo A tiene permiso storage.buckets.list.

    • Cuando haces clic en el segmento, puedes ver su contenido porque el espacio de nombres del equipo A tiene el rol Visor de objetos de Storage.

    Valida la conexión de Cloud Storage del equipo A. Valida que el equipo A puede acceder a los contenedores.
    Figuras 4 y 5: comprueba que el equipo A puede acceder al segmento de almacenamiento adecuado.
  7. Vuelve a la lista de segmentos y haz clic en el segmento team_b1 o team_c1. El acceso está restringido, ya que has aislado este recurso de tiempo de diseño para el equipo A mediante su cuenta de servicio de espacio de nombres.

    Valida que el equipo A no puede acceder a los recursos restringidos.
    Figura 6: comprueba que el equipo A no puede acceder a los segmentos de almacenamiento de los equipos B y C.

Siguientes pasos

  • Consulta más información sobre las funciones de seguridad de Cloud Data Fusion.