Caso de uso: Control de acceso con cuentas de servicio de espacio de nombres

En esta página, se describe el caso de uso en el que controlas el acceso a los Google Cloud recursos a nivel del espacio de nombres cuando migras datos de Cloud Storage a BigQuery.

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

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

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

Situación

En este caso de uso, tu departamento de marketing migra datos de Cloud Storage a BigQuery con Cloud Data Fusion.

Canalización de datos que muestra la fuente de Cloud Storage, la transformación de Wrangler y el 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 siguientes pasos, se muestra cómo controlar el acceso a los Google Cloud recursos con cuentas de servicio de espacio de nombres, lo que impide el acceso no autorizado entre los almacenes de datos de diferentes equipos.

Asocia una cuenta de servicio de Identity and Access Management a cada espacio de nombres

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

  1. Para configurar el control de acceso, agrega 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.
    Figura 1: Agrega 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.

Limita el acceso a los buckets de Cloud Storage

Para limitar el acceso a los buckets de Cloud Storage, otorga los permisos adecuados:

  1. Otorga a la cuenta de servicio de IAM el permiso storage.buckets.list, que es necesario para enumerar los buckets de Cloud Storage en el proyecto. Para obtener más información, consulta Cómo enumerar buckets.
  2. Otorga permiso a la cuenta de servicio de IAM para acceder a los objetos en buckets específicos.

    Por ejemplo, otorga la función de visualizador de objetos de almacenamiento a la cuenta de servicio de IAM asociada con el espacio de nombres team_A en el bucket team_a1. Este permiso permite que el equipo A vea y enumere objetos y carpetas administradas, junto con sus metadatos, en ese bucket en un entorno de tiempo de diseño aislado.

    Otorga el rol en la página Detalles del bucket.
    Figura 2: En la página Buckets de Cloud Storage, agrega el equipo como principal y asigna la función de usuario de objetos de almacenamiento.

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

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. Haz clic en Administrador del sistema > Configuración > Espacios de nombres.

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

  4. Haz clic en la pestaña Conexiones y, luego, en Agregar conexión.

  5. Selecciona GCS y configura la conexión.

    Crea la conexión de Cloud Storage en Cloud Data Fusion
    Figura 3: Configura la conexión de Cloud Storage para el espacio de nombres.
  6. Para crear una conexión de Cloud Storage para cada espacio de nombres, repite los pasos anteriores. Luego, cada equipo puede interactuar con una copia aislada de ese recurso para sus operaciones de tiempo de diseño.

Valida el aislamiento del tiempo de diseño para cada espacio de nombres

El equipo A puede validar el aislamiento en el diseño accediendo a los buckets de Cloud Storage en 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. Haz 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 el menú Menú > Wrangler.

  5. Haz clic en GCS.

  6. En la lista de buckets, haz clic en el bucket team_a1.

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

    • Cuando haces clic en el bucket, puedes ver su contenido porque el espacio de nombres del equipo A tiene la función de visualizador de objetos de almacenamiento.

    Valida la conexión de Cloud Storage para el equipo A. Valida que el equipo A pueda acceder a los buckets.
    Figuras 4 y 5: Verifica que el equipo A pueda acceder al bucket de almacenamiento adecuado.
  7. Vuelve a la lista de buckets y haz clic en el bucket team_b1 o team_c1. El acceso está restringido, ya que aislaste este recurso de tiempo de diseño para el equipo A con su cuenta de servicio de espacio de nombres.

    Valida que el equipo A no pueda acceder a los recursos restringidos.
    Figura 6: Verifica que el equipo A no pueda acceder a los buckets de almacenamiento de los equipos B y C.

¿Qué sigue?

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