Descripción general del control de acceso basado en funciones (RBAC)

En esta página, se describe la autorización detallada con el control de acceso basado en funciones (RBAC), que está disponible en Cloud Data Fusion 6.5 y versiones posteriores.

RBAC restringe el acceso dentro de los entornos en los que desarrollas canalizaciones en Cloud Data Fusion. RBAC te ayuda a administrar quién tiene acceso a los recursos de Cloud Data Fusion, qué pueden hacer con esos recursos y a qué áreas (como instancias o espacios de nombres) pueden acceder. Cloud Data Fusion RBAC es un sistema de autorización que proporciona una administración de accesos detallada con la tecnología de Identity and Access Management (IAM).

Cuándo usar RBAC

El control de acceso basado en funciones proporciona aislamiento a nivel de espacio de nombres dentro de una sola instancia de Cloud Data Fusion. Se recomienda para los siguientes casos de uso:

  • Ayuda a minimizar la cantidad de instancias que usa tu organización.
  • Cuando varios desarrolladores, equipos o unidades de negocios usan una sola instancia de Cloud Data Fusion.

Con el RBAC de Cloud Data Fusion, las organizaciones pueden hacer lo siguiente:

  • Permitir que un usuario solo ejecute una canalización dentro de un espacio de nombres, pero no modificar artefactos ni perfiles de procesamiento del entorno de ejecución
  • Permitir que un usuario solo vea la canalización, pero no que la modifique ni ejecute
  • Permite que un usuario cree, implemente y ejecute una canalización.

Recomendación: Incluso cuando uses el RBAC, usa instancias y proyectos independientes para mantener el aislamiento, la seguridad y la estabilidad del rendimiento en entornos de producción y desarrollo.

Limitaciones

  • A un usuario se le puede otorgar una o varias funciones a nivel de instancia o de espacio de nombres.
  • RBAC solo está disponible en la edición Enterprise de Cloud Data Fusion.
  • Cantidad de espacios de nombres: sin límite estricto de espacios de nombres por instancia.
  • Usuarios: Se admite un máximo de 50 usuarios por instancia.
  • Roles personalizados: No se admite la creación de roles de RBAC personalizados.
  • El RBAC de Cloud Data Fusion no admite la autorización en la Administración de conexiones.
  • Cuando uses tokens de acceso de OAuth de cuentas de servicio para acceder a instancias habilitadas para RBAC de la versión 6.5, se deben especificar los siguientes permisos, en especial el permiso userinfo.email. Sin ellos, encontrarás errores de permiso denegado.
    • https://www.googleapis.com/auth/userinfo.email
    • https://www.googleapis.com/auth/cloud-platform o bien https://www.googleapis.com/auth/servicecontrol

Asignaciones de funciones

Una asignación de función consta de tres elementos: principal, definición de la función y permiso.

Principal

Una principal (antes conocida como miembro) puede ser una Cuenta de Google (para usuarios finales), una cuenta de servicio (para apps y máquinas virtuales) o un Grupo de Google que solicite acceso a recursos de Cloud Data Fusion. Puedes asignar una función a cualquiera de estos principales.

Definición de la función

Un rol contiene un conjunto de permisos que te permite realizar acciones específicas en los recursos de Google Cloud.

Cloud Data Fusion proporciona varias funciones predefinidas que puedes usar.

Ejemplos:

  • La función de administrador de instancias (datafusion.admin) permite que los principales creen y borren espacios de nombres y otorguen permisos.
  • La función de desarrollador (datafusion.developer) permite a las principales crear y borrar canalizaciones, implementar canalizaciones y ejecutar vistas previas.

Alcance

El permiso es el conjunto de recursos al que se aplica el acceso. Cuando asignas una función, puedes limitar aún más las acciones permitidas si defines un permiso (por ejemplo, una instancia o un espacio de nombres). Esto es útil si deseas asignar a alguien el rol de desarrollador, pero solo para un espacio de nombres.

Funciones predefinidas de Cloud Data Fusion

RBAC de Cloud Data Fusion incluye varias funciones predefinidas que puedes usar:

Función de acceso a la instancia (datafusion.accessor)
Otorga a la principal acceso a una instancia de Cloud Data Fusion, pero no a ningún recurso dentro de la instancia. Usa este rol en combinación con otros roles específicos del espacio de nombres para proporcionar un acceso detallado al espacio de nombres.
Rol de visualizador (datafusion.viewer)
Otorga acceso a una principal en un espacio de nombres para ver las canalizaciones, pero no para crear ni ejecutar canalizaciones.
Función de operador (datafusion.operator)
Otorga acceso a una principal en un espacio de nombres para acceder y ejecutar canalizaciones, cambiar el perfil de procesamiento, crear perfiles de procesamiento o subir artefactos. Puede realizar las mismas acciones que un desarrollador, excepto la vista previa de las canalizaciones.
Función de desarrollador (datafusion.developer)
Otorga acceso a una principal en un espacio de nombres para crear y modificar recursos limitados, como canalizaciones, dentro del espacio de nombres.
Función de editor (datafusion.editor)
Otorga a la principal acceso completo a todos los recursos de Cloud Data Fusion en un espacio de nombres dentro de una instancia de Cloud Data Fusion. Se debe otorgar esta función además de la función de descriptor de acceso a instancias para la principal. Con este rol, la principal puede crear, borrar y modificar recursos en el espacio de nombres.
Función de administrador de instancias (datafusion.admin)
Otorga acceso a todos los recursos dentro de una instancia de Cloud Data Fusion. Se asigna a través de IAM. No se asignan a nivel del espacio de nombres a través de RBAC.
Operación datafusion.accessor datafusion.viewer datafusion.operator datafusion.developer datafusion.editor datafusion.admin
Instancias
Instancia de acceso
Espacios de nombres
Crear espacio de nombres *
Espacio de nombres de acceso con acceso explícito otorgado
Espacio de nombres de acceso sin acceso explícito *
Editar espacio de nombres
Borrar espacios de nombres
Cuenta de servicio de espacio de nombres
Agregar cuenta de servicio
Editar cuenta de servicio
Quitar la cuenta de servicio
Usar cuenta de servicio
RBAC
Otorga o revoca los permisos de otras principales en el espacio de nombres *
Programas
Crear programa
Mira el programa
Cambiar programa
Perfiles de procesamiento
Crea perfiles de procesamiento
Ver perfiles de procesamiento
Editar perfiles de procesamiento
Borrar perfiles de procesamiento
Conexiones
Crear conexiones
Ver conexiones
Editar conexiones
Borrar conexiones
Usar conexiones
Canalizaciones
Crea canalizaciones
Ver canalizaciones
Editar canalizaciones
Borrar canalizaciones
Vista previa de canalizaciones
Implementa canalizaciones
Ejecutar canalizaciones
Claves seguras
Crea claves seguras
Ver claves seguras
Borrar claves seguras
Etiquetas
Crear etiquetas
Visualiza etiquetas
Borrar etiquetas
Centro de Cloud Data Fusion
Implementa complementos
Administración de control de fuente
Configura el repositorio de control de código fuente
Sincroniza canalizaciones desde un espacio de nombres
Linaje
Ver linaje
Registros
Ver registros

* La principal debe tener el rol de IAM de administrador de Data Fusion, no el rol de RBAC de administrador de instancias.

Recomendaciones de seguridad

Adoptar un modelo de seguridad y satisfacer las necesidades y los requisitos de tu organización puede ser un desafío. Las siguientes recomendaciones están diseñadas para ayudarte a simplificar tu proceso de adopción del modelo de RBAC de Cloud Data Fusion:

  • La función de administrador de instancias debe otorgarse con precaución. Esta función habilita el acceso completo a una instancia y a todos sus recursos subyacentes de Cloud Data Fusion. Una principal con este rol puede otorgar permisos a otras personas mediante la API de REST.
  • No se debe otorgar el rol de administrador de instancias cuando se requiere que las principales tengan acceso a espacios de nombres individuales dentro de una instancia de Cloud Data Fusion. En su lugar, otorga la función de descriptor de acceso a las instancias con una de las funciones de visualizador, desarrollador, operador o editor otorgadas en un subconjunto de los espacios de nombres.
  • Es seguro asignar el rol de Descriptor de acceso a instancias primero, ya que habilita el acceso de la principal a la instancia, pero no otorgará acceso a ningún recurso dentro de la instancia. Por lo general, esta función se usa junto con una función de visualizador, desarrollador, editor o editor para otorgar acceso a uno espacio de nombres o a un subconjunto de estos dentro de una instancia.
  • Se recomienda asignar la función de visualizador a los usuarios o Grupos de Google que desean usar el servicio automático para comprender el estado de trabajos en ejecución o para visualizar canalizaciones o registros con instancias de Cloud Data Fusion. Por ejemplo, los consumidores de informes diarios que desean saber si el procesamiento se completó.
  • Se recomienda la función de desarrollador para los desarrolladores de ETL que son responsables de crear, probar y administrar las canalizaciones.
  • Se recomienda el rol de operador para un espacio de nombres para los usuarios que proporcionan administradores de operaciones o servicios de DevOps. Son capaces de realizar todas las acciones que pueden realizar los desarrolladores (excepto la vista previa de las canalizaciones) y también implementar artefactos y administrar perfiles de procesamiento.
  • La función de editor para un espacio de nombres es una función con privilegios que le otorga al usuario o Grupo de Google acceso completo a todos los recursos en el espacio de nombres. El editor puede considerarse la unión de las funciones de desarrollador y de operador.
  • Los operadores y administradores deben ser cuidadosos con la instalación de complementos o artefactos no confiables, ya que esto puede presentar un riesgo de seguridad.

Soluciona problemas

En esta sección de página, se muestra cómo resolver problemas relacionados con el RBAC en Cloud Data Fusion.

Una principal con el rol de visualizador de Cloud Data Fusion para un espacio de nombres en RBAC puede editar canalizaciones

El acceso se basa en una combinación de funciones de IAM y RBAC. Los roles de IAM tienen prioridad sobre los roles de RBAC. Verifica si la principal tiene roles de IAM de Editor del proyecto o Administrador de Cloud Data Fusion.

Una principal con el rol Administrador de instancias en RBAC no puede ver las instancias de Cloud Data Fusion en la consola de Google Cloud

Existe un problema conocido en Cloud Data Fusion en el que las principales con el rol de administrador de instancias no pueden ver instancias en la consola de Google Cloud. Para solucionar el problema, otorga el Visualizador del proyecto o uno de los roles de IAM de Cloud Data Fusion a la principal, además de convertirlo en administrador de una instancia. Esto otorga acceso de visualizador a la principal para todas las instancias del proyecto.

Impedir que una principal vea los espacios de nombres en los que no tiene ningún rol

Para evitar que una principal vea espacios de nombres cuando no tiene ningún rol, no debe tener el visualizador del proyecto ni ninguno de los roles de IAM de Cloud Data Fusion. En su lugar, solo otorga funciones de RBAC a la principal en el espacio de nombres en el que debe operar.

La principal con este tipo de acceso no verá la lista de instancias de Cloud Data Fusion en la consola de Google Cloud. En su lugar, proporciónales un vínculo directo a la instancia, similar al siguiente: https://INSTANCE_NAME-PROJECT_ID.REGION_NAME.datafusion.googleusercontent.com/

Cuando la principal abre la instancia, Cloud Data Fusion muestra una lista de espacios de nombres en los que se le otorga el rol de RBAC.

Otorga el rol de descriptor de acceso de Cloud Data Fusion a una principal

La función de descriptor de acceso se asigna de forma implícita a una principal cuando se le asigna cualquier otra función de RBAC para cualquier instancia de Cloud Data Fusion. Para verificar si una principal tiene esa función en una instancia en particular, consulta el Analizador de políticas de IAM.

¿Qué sigue?