Atlas proporciona un sistema para gestionar los permisos de usuario a nivel de organización, proyecto y base de datos. Atlas Stream Processing amplía este sistema con roles y privilegios adicionales específicos para las tareas de procesamiento de streams, así como la capacidad de restringir los permisos de los usuarios a espacios de trabajo de procesamiento de streams específicos.
Acceso a la organización y al proyecto
Los usuarios gestionan los espacios de trabajo de Stream Processing y sus registros de conexión asociados a nivel de proyecto. Atlas Stream Processing proporciona el rol Project Stream Processing Owner para este fin. Un usuario con este rol puede realizar cualquier acción de gestión del espacio de trabajo de Stream Processing o del registro de conexiones y administrar las bases de datos y los usuarios de base de datos dentro del proyecto. Asignar este rol a un usuario para permitirle realizar todas las acciones necesarias para configurar un proyecto de Atlas Stream Processing sin otorgar permisos innecesarios a funcionalidades, de acuerdo con el principio de mínimo privilegio.
Si es necesario, se puede realizar cualquiera de las acciones autorizadas por el rol Project Stream Processing Owner como usuario con los roles Project Owner o Organization Owner.
Acceso al Área de Trabajo de Stream Processing
Puedes acceder a un espacio de trabajo de Stream Processing existente y gestionar los procesadores de flujos como usuario de base de datos, de forma análoga a como accedes a un clúster Atlas. Los roles y acciones asignados a los usuarios de tu base de datos determinan qué operaciones pueden realizar en los procesadores de flujos dentro de un espacio de trabajo de Stream Processing. Atlas Stream Processing proporciona las siguientes acciones de privilegio:
processStreamProcessorcreateStreamProcessorstartStreamProcessorstopStreamProcessordropStreamProcessorlistStreamProcessorssampleStreamProcessorstreamProcessorStatslistConnections
Puedes asignar exactamente aquellas acciones de privilegio a un usuario de base de datos o a un rol personalizado que necesites. Alternativamente, un usuario de base de datos con el atlasAdmin o readWriteAnyDatabase puede realizar todas estas acciones.
Gestión de redes
Atlas Stream Processing soporta conexiones tanto a clústeres de Atlas como a fuentes de datos de streaming externas, como Apache Kafka. Las conexiones dentro de Atlas no requieren configuración manual. Para conectarse a una fuente de datos de transmisión externa, debes agregar las direcciones IP de Atlas a la lista de acceso de tu fuente de datos de transmisión externa.
Para identificar las direcciones IP necesarias de Atlas, ejecute el siguiente comando:
curl -H 'Accept: application/vnd.atlas.2023-11-15+json' -s \ 'https://cloud.mongodb.com/api/atlas/v2/unauth/controlPlaneIPAddresses'
Esto devuelve una lista de direcciones IP de Atlas disponibles, agrupadas por proveedor y región. Identifica todas las direcciones IP salientes para el par proveedor-región en el que está implementado el espacio de trabajo de Stream Processing de destino y agrégalas a la lista de acceso de tu fuente de datos externa. Para obtener más información, consulte Permitir el acceso al Atlas Control Plane o desde él.
Cuando configura una conexión a una fuente de datos de transmisión externa, puede elegir entre acceder a través de direcciones IP públicas o a través de una VPC emparejamiento. Para aprender más, consulte Agregar una conexión al registro de conexiones.
Restricción de acceso a espacios de trabajo específicos de Stream Processing
Por defecto, un usuario con privilegios de acciones de Stream Processing en Atlas puede realizar las operaciones asociadas en todos los espacios de trabajo de Stream Processing. Puede restringir la aplicación de estos privilegios a espacios de trabajo de Stream Processing específicos.
:estilo:normal
En Atlas, ve a la página Database & Network Access de tu proyecto.
Si aún no aparece, se debe seleccionar la organización que contiene el proyecto en el menú Organizations de la barra de navegación.
Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Database & Network Access en la sección Security.
La página Acceso a la base de datos y a la red se muestra.
Haz clic en Edit en la fila del usuario cuyas permisos deseas modificar.
En la ventana modal, activa el interruptor etiquetado como Restrict Access to Specific Clusters /Federated Database Instances/Stream Processing Workspaces.
Buscar los nombres de los espacios de trabajo de Stream Processing para los que se desea otorgar al usuario privilegios. Marca la casilla junto a un nombre para otorgar privilegios al usuario en ese espacio de trabajo de Stream Processing. Desmarque la casilla para negar los privilegios del usuario para ese espacio de trabajo de Stream Processing
Haz clic Update Useren.
Perfiles de ejecución
Puedes configurar el rol de usuario de base de datos que utilizas al conectarte a una base de datos Atlas como un $source o un $merge sink. Esto permite evitar que los usuarios de bases de datos específicos de Atlas Stream Processing obtengan acceso indirecto al clúster que aloja esa base de datos a través de las credenciales del Atlas user con privilegios elevados que configura el espacio de trabajo de Stream Processing y sus conexiones.
Nota
De acuerdo con el principio de mínimo privilegio, define un rol personalizado con solo aquellos privilegios que un usuario necesita para realizar las operaciones deseadas.
:estilo:normal
En Atlas, ve a la página Stream Processing de tu proyecto.
Si aún no aparece, se debe seleccionar la organización que contiene el proyecto en el menú Organizations de la barra de navegación.
Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Stream Processing en la sección Streaming Data.
Se muestra la página Stream Processing.
En el panel del espacio de trabajo de Stream Processing que deseas configurar, haz clic en Manage.
Haz clic en la pestaña Connection Registry. En la fila de la conexión a la base de datos Atlas que deseas configurar, haz clic en .
En el menú desplegable Execute As, selecciona el rol que deseas usar al conectarse a la base de datos.
Haz clic Save changesen.
Auditoría
La auditoría de Atlas Stream Processing permite a los administradores rastrear la autenticación y los eventos de gestión de entidades en sus espacios de trabajo de procesamiento de flujos. Cada vez que ocurre un evento auditable en un espacio de trabajo de Stream Processing dado, Atlas Stream Processing escribe ese evento en el registro correspondiente a ese espacio de trabajo de Stream Processing. Un registro persiste durante toda la vida útil del espacio de trabajo de Stream Processing al que pertenece, y Atlas Stream Processing nunca trunca eventos antiguos. Si se borra un área de trabajo de Stream Processing, el registro que pertenece a esa área de trabajo de Stream Processing permanece durante 30 días adicionales.
Para descargar los registros de auditoría de su espacio de trabajo de procesamiento de flujos, consulte Descargar Registros de Auditoría.
Atlas Stream Processing admite la auditoría de los siguientes eventos de autenticación:
Evento | Descripción |
|---|---|
Autenticación exitosa | Ocurre cuando un usuario se conecta con éxito a un espacio de trabajo de Stream Processing |
Autenticación fallida | Ocurre cuando un usuario no logra conectarse a un espacio de trabajo de Stream Processing |
Terminación de la conexión | Se produce cuando un usuario cierra su conexión |
Atlas Stream Processing admite la auditoría de los siguientes eventos de gestión de entidades:
startStreamProcessor | Ocurre cuando un usuario inicia un procesador de streaming |
|---|---|
createStreamProcessor | Ocurre cuando un usuario crea un procesador de flujo |
stopStreamProcessor | Ocurre cuando una persona usuaria detiene un procesador de stream |
dropStreamProcessor | Ocurre cuando un usuario borra un procesador de flujo |
.process() | Ocurre cuando un usuario ejecuta un .process() llamar |
.sample() | Ocurre cuando un usuario emite un .sample() llamar |
Registro de auditoría accedido | Ocurre cuando un usuario intenta descargar el registro de auditoría |