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.

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, a los que aquí se hace referencia como entity, pueden 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 en Cloud Data Fusion usan Agente de servicio de la API de Cloud Data Fusion de forma predeterminada.

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

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.

Funciones 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 en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

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 otorgar a los usuarios los permisos que necesitan en un espacio de nombres, otorga a los usuarios roles de Cloud Data Fusion para ellos. Para obtener más información, consulta la roles predefinidos de Cloud Data Fusion disponibles para los usuarios en instancias con RBAC habilitadas.

Configura una cuenta de servicio de espacio de nombres

Console

Si deseas 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, crear una.
  2. 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

  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 nombre correo electrónico de la cuenta, por ejemplo, SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
    2. Sigue las instrucciones que aparecen en el cuadro de diálogo.
  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 de la 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. Definir 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/validate -X POST -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

    Reemplaza lo siguiente:

    • NAMESPACE_NAME: Es el ID del espacio de nombres.
    • SERVICE_ACCOUNT_EMAIL: La IAM de la cuenta de servicio que quieres 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 a el nombre de la cuenta de servicio, haz clic 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. Establece el environment variables. 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: La IAM de la cuenta de servicio que quieres 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 contiene la cuenta de servicio que deseas borrar.
  3. Para quitar la cuenta de servicio, ve a la pestaña Cuentas de servicio. Siguiente 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. 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 GET
    

    Reemplaza lo siguiente:

    • NAMESPACE_NAME: Es el ID del espacio de nombres.

    Si tienes éxito, recibirás el correo electrónico de la cuenta de servicio de la siguiente manera: respuesta:

    Response: {"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}
    

¿Qué sigue?