Control de acceso con una cuenta de servicio de espacio de nombres

En esta página, se describe cómo configurar un servicio de Identity and Access Management (IAM) un espacio de nombres en una instancia de Cloud Data Fusion.

Información acerca de los espacios de nombres en Cloud Data Fusion

Un espacio de nombres es una agrupación lógica de aplicaciones, datos y los recursos metadatos en una instancia de Cloud Data Fusion. Puedes pensar en los espacios de nombres partición de la instancia. Cualquier aplicación o dato, que aquí se denomina entidad, puede existir de forma independiente en varios espacios de nombres. En una sola instancia, un espacio de nombres almacena los datos y metadatos de una entidad independientemente de otro espacio de nombres.

Control de acceso con una cuenta de servicio de espacio de nombres

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

Para lograr un mejor aislamiento de 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 diferentes espacios de nombres, te permite controlar el acceso a los recursos de Google Cloud entre espacios de nombres para las operaciones de tiempo de diseño de canalizaciones en Cloud Data Fusion, como la vista previa de canalizaciones, Wrangler y la validación de canalizaciones.

Antes de comenzar

  • Las cuentas de servicio por espacio de nombres son compatibles con las instancias habilitadas para RBAC en Cloud Data Fusion 6.10.0 y versiones posteriores.
  • Las cuentas de servicio por espacio de nombres se usan para controlar y administrar acceso a recursos de Google Cloud.

Roles y permisos requeridos

Para obtener los permisos que necesitas a fin de personalizar las cuentas de servicio de espacios de nombres y otorgar permisos de usuario dentro de un espacio de nombres, solicita a tu administrador que te otorgue el Rol de IAM Administrador de Cloud Data Fusion (roles/datafusion.admin) en la instancia de Cloud Data Fusion del proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Administra los permisos de los usuarios en un espacio de nombres

Para otorgarles a los usuarios los permisos que necesitan en un espacio de nombres, asígnales roles predefinidos de Cloud Data Fusion. Para obtener más información, consulta los roles predefinidos de Cloud Data Fusion disponibles para los usuarios en instancias habilitadas para el RBAC.

Configura una cuenta de servicio de espacio de nombres

Console

A fin de configurar una cuenta de servicio para el espacio de nombres, sigue estos pasos:

  1. Si no tienes una cuenta de servicio existente para el espacio de nombres, crea una.
  2. En la consola de Google Cloud, 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

  3. Haz clic en Administrador del sistema > Configuración >. Espacios de nombres.

  4. Haz clic en el espacio de nombres que deseas configurar.

  5. Haz clic en la pestaña Cuentas de servicio y, luego, en Agregar servicio cuenta de servicio.

    Botón Agregar cuenta de servicio.

  6. Otorga el rol de usuario de Workload Identity (roles/iam.workloadIdentityUser).

    Para otorgar el rol, sigue estos pasos:

    1. En el campo Cuenta de servicio de diseño de canalización, ingresa el correo electrónico de la cuenta de servicio, por ejemplo, SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com.
    2. Sigue las instrucciones del diálogo que aparece.
  7. Para completar la configuración de la cuenta de servicio, vuelve al espacio de nombres de tu instancia de Cloud Data Fusion y haz clic en Guardar.

  8. Repite los pasos para configurar una cuenta de servicio para cada espacio de nombres.

API de REST

  1. Otorga el rol de usuario de Workload Identity (roles/iam.workloadIdentityUser).

    Para otorgar el rol, sigue estos pasos:

    1. Configura las siguientes variables de entorno:

      export TENANT_PROJECT_ID=TENANT_PROJECT
      export GSA_PROJECT_ID=SERVICE_ACCOUNT_PROJECT
      

      Reemplaza lo siguiente:

      • TENANT_PROJECT: Es el ID del proyecto de usuario. Para ve a la página Instancias y haz clic en de la fuente de datos. El ID aparece en la página Detalles de la instancia.

        Ir a Instancias

      • SERVICE_ACCOUNT_PROJECT: el el ID del proyecto de Google Cloud en el que tu cuenta de servicio.

    2. Otorga el rol de usuario de Workload Identity:

      gcloud iam service-accounts add-iam-policy-binding \
          --role roles/iam.workloadIdentityUser
          --member "serviceAccount:${TENANT_PROJECT_ID}.svc.id.goog[default/NAMESPACE_IDENTITY]" SERVICE_ACCOUNT_EMAIL \
          --project ${GSA_PROJECT_ID}
      

      Reemplaza lo siguiente:

      • NAMESPACE_IDENTITY: Es la identidad del espacio de nombres. Para obtener más información, consulta Detalles de un espacio de nombres.

      • SERVICE_ACCOUNT_EMAIL: la dirección de correo electrónico de la cuenta de servicio, por ejemplo, SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

  2. Valida el correo electrónico de la cuenta de servicio del espacio de nombres del paso anterior. Establece environment variables y, luego, ejecuta el siguiente comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity/validate -X POST -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

    Reemplaza lo siguiente:

    • NAMESPACE_NAME: Es el ID del espacio de nombres.
    • SERVICE_ACCOUNT_EMAIL: Es el correo electrónico de la cuenta de servicio de IAM que deseas configurar en el espacio de nombres.
  3. Configura la cuenta de servicio del espacio de nombres. Configura el environment variables y, luego, ejecuta el siguiente comando: :

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"
     ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X PUT -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

Edita una cuenta de servicio de espacio de nombres

Console

Para editar una cuenta de servicio de espacio de nombres, sigue estos pasos:

  1. En tu instancia de Cloud Data Fusion, haz clic en Administrador del sistema. > Configuración > Espacios de nombres.
  2. Haz clic en el espacio de nombres que contiene la cuenta de servicio que deseas editar.
  3. Para editar la cuenta de servicio, ve a la pestaña Cuentas de servicio. Junto al nombre de la cuenta de servicio, haz clic en Menú > Editar.
  4. Sigue los pasos para configurar una cuenta de servicio de espacio de nombres.

API de REST

Para editar una cuenta de servicio de espacio de nombres, sigue estos pasos:

  1. Configura environment variables y, luego, ejecuta el siguiente comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"
     ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X PUT -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

    Reemplaza lo siguiente:

    • NAMESPACE_NAME: Es el ID del espacio de nombres.
    • SERVICE_ACCOUNT_EMAIL: Es el correo electrónico de la cuenta de servicio de IAM que deseas configurar en el espacio de nombres.

Borra una cuenta de servicio de espacio de nombres

Console

Para borrar una cuenta de servicio de espacio de nombres de un espacio de nombres, sigue estos pasos:

  1. En tu instancia de Cloud Data Fusion, haz clic en Administrador del sistema. > Configuración > Espacios de nombres.
  2. Haz clic en el espacio de nombres que tiene la cuenta de servicio que quieres borrar.
  3. Para quitar la cuenta de servicio, ve a la pestaña Cuentas de servicio. Junto al nombre de la cuenta de servicio, haz clic en Menú > Borrar.

API de REST

Para borrar una cuenta de servicio de espacio de nombres de un espacio de nombres, sigue estos pasos:

  1. Establece el environment variables. Luego, ejecuta el siguiente comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X DELETE
    

    Reemplaza lo siguiente:

    • NAMESPACE_NAME: Es el ID del espacio de nombres.

Obtén la cuenta de servicio del espacio de nombres

Console

Para obtener información de la cuenta de servicio del espacio de nombres, sigue estos pasos: pasos:

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

    Ir a Instancias

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

  3. Haz clic en el nombre de un espacio de nombres para ver los detalles de la cuenta de servicio.

API de REST

Para obtener el nombre de la cuenta de servicio del espacio de nombres, sigue estos pasos:

  1. Configura environment variables y, luego, ejecuta el siguiente comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X GET
    

    Reemplaza lo siguiente:

    • NAMESPACE_NAME: Es el ID del espacio de nombres.

    Si se realiza correctamente, obtendrás el correo electrónico de la cuenta de servicio en la siguiente respuesta:

    Response: {"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}
    

¿Qué sigue?