En esta página se describe cómo configurar una cuenta de servicio de Gestión de Identidades y Accesos (IAM) para 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 metadatos asociados en una instancia de Cloud Data Fusion. Los espacios de nombres se pueden considerar como una partición de la instancia. Cualquier aplicación o dato, al que nos referimos como entidad, puede existir de forma independiente en varios espacios de nombres. En una sola instancia, un espacio de nombres almacena los datos y los metadatos de una entidad de forma independiente de otro espacio de nombres.
Control de acceso con una cuenta de servicio de espacio de nombres
Para controlar el acceso a los Google Cloud recursos, los espacios de nombres de Cloud Data Fusion usan el agente de servicio de la API de Cloud Data Fusion de forma predeterminada.
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.
Antes de empezar
- Las cuentas de servicio por espacio de nombres se admiten en instancias con RBAC habilitado en Cloud Data Fusion 6.10.0 y versiones posteriores.
- Las cuentas de servicio por espacio de nombres se usan para controlar y gestionar el acceso a los recursos. Google Cloud
Roles y permisos necesarios
Para obtener los permisos que necesitas para personalizar las cuentas de servicio del espacio de nombres y conceder permisos de usuario en un espacio de nombres,
pide a tu administrador que te conceda el rol de
administrador de Cloud Data Fusion (roles/datafusion.admin
)
de IAM en la instancia de Cloud Data Fusion del proyecto.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Gestionar los permisos de los usuarios de un espacio de nombres
Para dar a los usuarios los permisos que necesitan en un espacio de nombres, concédeles roles de Cloud Data Fusion predefinidos. Para obtener más información, consulta los roles predefinidos de Cloud Data Fusion disponibles para los usuarios de instancias con RBAC habilitado.
Configurar una cuenta de servicio de espacio de nombres
Consola
Para configurar una cuenta de servicio para el espacio de nombres, siga estos pasos:
- Si no tienes ninguna cuenta de servicio para el espacio de nombres, crea una.
En la Google Cloud consola, vaya a la página Instancias de Cloud Data Fusion y abra una instancia en la interfaz web de Cloud Data Fusion.
Haga clic en Administrador del sistema > Configuración > Espacios de nombres.
Haz clic en el espacio de nombres que quieras configurar.
Haz clic en la pestaña Cuentas de servicio y, a continuación, en Añadir cuenta de servicio.
Concede el rol Usuario de Workload Identity (
roles/iam.workloadIdentityUser
).Para conceder el rol, sigue estos pasos:
- En el campo Cuenta de servicio de diseño de la canalización, introduce la dirección de correo de la cuenta de servicio. Por ejemplo,
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
. - Sigue las instrucciones del cuadro de diálogo que aparece.
- En el campo Cuenta de servicio de diseño de la canalización, introduce la dirección de correo de la cuenta de servicio. Por ejemplo,
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.
Repite los pasos para configurar una cuenta de servicio para cada espacio de nombres.
API REST
Concede el rol Usuario de Workload Identity (
roles/iam.workloadIdentityUser
).Para conceder el rol, sigue estos pasos:
Define las siguientes variables de entorno:
export TENANT_PROJECT_ID=TENANT_PROJECT export GSA_PROJECT_ID=SERVICE_ACCOUNT_PROJECT
Haz los cambios siguientes:
TENANT_PROJECT
: el ID del proyecto de inquilino. Para encontrarlo, ve a la página Instancias y haz clic en el nombre de la instancia. El ID aparece en la página Detalles de la instancia.SERVICE_ACCOUNT_PROJECT
: el ID del proyecto en el que se encuentra la cuenta de servicio de gestión de identidades y accesos.Google Cloud
Concede el rol 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}
Haz los cambios siguientes:
NAMESPACE_IDENTITY
: 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 de la cuenta de servicio (por ejemplo,SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
).
Valida el correo de la cuenta de servicio del espacio de nombres del paso anterior. Define
environment variables
y, a continuación, 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"}'
Haz los cambios siguientes:
NAMESPACE_NAME
: el ID del espacio de nombres.SERVICE_ACCOUNT_EMAIL
: la dirección de correo de la cuenta de servicio de gestión de identidades y accesos que quieras definir en el espacio de nombres.
Define la cuenta de servicio del espacio de nombres. Define
environment variables
y, a continuación, 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"}'
Editar una cuenta de servicio de espacio de nombres
Consola
Para editar una cuenta de servicio de espacio de nombres, sigue estos pasos:
- En tu instancia de Cloud Data Fusion, haz clic en Administrador del sistema > Configuración > Espacios de nombres.
- Haz clic en el espacio de nombres que tenga la cuenta de servicio que quieras editar.
- 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 > Editar. Menú
- Sigue los pasos para configurar una cuenta de servicio de espacio de nombres.
API REST
Para editar una cuenta de servicio de espacio de nombres, sigue estos pasos:
Define
environment variables
y, a continuación, 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"}'
Haz los cambios siguientes:
NAMESPACE_NAME
: el ID del espacio de nombres.SERVICE_ACCOUNT_EMAIL
: la dirección de correo de la cuenta de servicio de gestión de identidades y accesos que quieras definir en el espacio de nombres.
Eliminar una cuenta de servicio de espacio de nombres
Consola
Para eliminar una cuenta de servicio de espacio de nombres de un espacio de nombres, sigue estos pasos:
- En tu instancia de Cloud Data Fusion, haz clic en Administrador del sistema > Configuración > Espacios de nombres.
- Haz clic en el espacio de nombres que tenga la cuenta de servicio que quieras eliminar.
- 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 > Eliminar. Menú
API REST
Para eliminar una cuenta de servicio de espacio de nombres de un espacio de nombres, sigue estos pasos:
Define
environment variables
y, a continuación, ejecuta el siguiente comando:curl -H "Authorization: Bearer $(gcloud auth print-access-token)" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X DELETE
Haz los cambios siguientes:
NAMESPACE_NAME
: el ID del espacio de nombres.
Obtener la cuenta de servicio del espacio de nombres
Consola
Para obtener información de la cuenta de servicio del espacio de nombres, sigue estos pasos:
En la Google Cloud consola, vaya a la página Instancias de Cloud Data Fusion y abra una instancia en la interfaz web de Cloud Data Fusion.
Haga clic en Administrador del sistema > Configuración > Espacios de nombres.
Haz clic en el nombre de un espacio de nombres para ver los detalles de la cuenta de servicio.
API REST
Para obtener el nombre de la cuenta de servicio del espacio de nombres, sigue estos pasos:
Define
environment variables
y, a continuación, ejecuta el siguiente comando:curl -H "Authorization: Bearer $(gcloud auth print-access-token)" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X GET
Haz los cambios siguientes:
NAMESPACE_NAME
: el ID del espacio de nombres.
Si se realiza correctamente, recibirás el correo de la cuenta de servicio en la siguiente respuesta:
Response: {"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}
Siguientes pasos
- Más información sobre el caso práctico del control de acceso con cuentas de servicio de espacio de nombres
- Más información sobre el control de acceso basado en roles en Cloud Data Fusion