Las vistas seguras parametrizadas en AlloyDB para PostgreSQL te permiten aplicar el control de acceso a filas a nivel de la aplicación para que los usuarios solo puedan ver los datos a los que tienen autorización para acceder. Estas vistas, que se crearon como una extensión de las vistas seguras de PostgreSQL, te permiten incluir parámetros con nombre específicos de la aplicación en las definiciones de las vistas y pasar valores de parámetros que se aplican durante la ejecución de la consulta.
A continuación, se muestra un ejemplo de una vista segura parametrizada:
CREATE VIEW secure_checked_items WITH (security_barrier) AS
SELECT bag_id, timestamp, location
FROM checked_items t
WHERE customer_id = $@app_end_userid;
Puedes consultar vistas seguras parametrizadas con la
función execute_parameterized_query o ejecutando la
declaración EXECUTE .. WITH VIEW PARAMETERS.
Para obtener más información, consulta
Administra la seguridad de los datos de la aplicación con vistas seguras parametrizadas de AlloyDB.
Beneficios de las vistas seguras parametrizadas
Las vistas seguras parametrizadas son adecuadas para administrar la seguridad de los datos a nivel de la base de datos, en especial cuando se trata de consultas ad hoc de fuentes no confiables, como las que se traducen del lenguaje natural. Estas vistas ofrecen una forma flexible de implementar el control de acceso detallado.
Por ejemplo, imagina una aplicación que hace un seguimiento del equipaje facturado de los clientes. Un cliente con el ID de usuario 12345 pregunta: "¿Dónde está mi bolso?". En esta situación, las vistas seguras parametrizadas garantizan que la consulta devuelva solo las filas a las que puede acceder el usuario que envió la consulta, por ejemplo, las filas vinculadas al ID de usuario 12345.
Mitigación de riesgos de seguridad
Las vistas seguras parametrizadas ayudan a mitigar los riesgos de seguridad cuando los usuarios finales ejecutan consultas no confiables, como consultas en lenguaje natural, en tu base de datos. Entre estos riesgos, se incluyen los siguientes:
Instrucciones maliciosas: Los usuarios pueden intentar manipular el modelo subyacente para acceder a todos los datos de la aplicación.
Consultas en SQL de alcance amplio: Los modelos de lenguaje grandes (LLM) pueden generar consultas en SQL que expongan datos sensibles, incluso a partir de consultas de usuarios bien intencionadas.
Si usas vistas seguras parametrizadas, puedes restringir el rango de filas disponibles para los usuarios individuales de la aplicación. Este control ayuda a proteger los datos de la aplicación, independientemente de cómo los usuarios formulen sus consultas.
Administración de acceso a los datos
Las vistas seguras parametrizadas abordan desafíos comunes en la administración del acceso a los datos para una cantidad grande y creciente de usuarios.
Administración de usuarios simplificada: Con las vistas seguras parametrizadas, puedes usar un solo rol de base de datos para entregar a todos los usuarios finales, en lugar de usar métodos que podrían requerir que crees un usuario o rol de base de datos independiente para cada usuario final. Las vistas seguras parametrizadas ayudan a simplificar la administración de usuarios y conexiones para las aplicaciones en las que cada usuario final necesita acceso solo a sus datos.
Por ejemplo, en una aplicación de aerolínea en la que los clientes solo deben ver sus propias reservas, puedes definir una sola vista segura parametrizada que se parametrice con el identificador de usuario final. Esta vista permite que un solo rol de base de datos, con acceso a la vista, no a la tabla subyacente, preste servicio a todos los usuarios, lo que simplifica la administración de usuarios y las conexiones de base de datos.
Aplicación de medidas de seguridad optimizada: Las vistas seguras parametrizadas incorporan controles de acceso de forma inherente. Cuando se consulta una vista, los parámetros de seguridad definidos se aplican de forma coherente, independientemente del usuario que acceda a la vista. Este enfoque contrasta con situaciones en las que las políticas de seguridad subyacentes en las tablas base podrían no aplicarse automáticamente a las vistas sin una configuración adicional.
Para obtener más información sobre los mecanismos de seguridad existentes en PostgreSQL, como las políticas de seguridad a nivel de fila (RLS), consulta Políticas de seguridad de filas.
Mecanismo de seguridad
Las vistas seguras parametrizadas brindan a los desarrolladores de aplicaciones seguridad de los datos y control de acceso a las filas con los siguientes métodos:
- Las vistas creadas con la opción
WITH (security_barrier)proporcionan seguridad a nivel de fila, ya que evitan que se pasen valores de filas a funciones y operadores elegidos de forma maliciosa hasta después de que la vista haya realizado su trabajo. Para obtener más información sobre la cláusulaWITH (security_barrier), consulta Reglas y privilegios. - La parametrización con parámetros de vista con nombre permite una vista restringida de la base de datos parametrizada por valores proporcionados por la aplicación según la seguridad a nivel de la aplicación, como la autenticación del usuario final.
- La aplicación de restricciones adicionales en las consultas que acceden a vistas parametrizadas es útil para las aplicaciones que ejecutan consultas no confiables de usuarios finales, como las que genera la IA de lenguaje natural a SQL. Esta aplicación de medidas por incumplimiento evita que las consultas escapen del entorno de seguridad que proporcionan las vistas seguras parametrizadas y ayuda a administrar el uso de recursos. Para obtener más información sobre las restricciones de consultas, consulta Restricciones aplicadas a las consultas.
Limitaciones
Debes habilitar la marca de vista parametrizada por separado en cada instancia de AlloyDB. Los objetos de vista parametrizados que se crean en la instancia principal se propagan a las instancias de grupo de lectura y a las réplicas entre regiones. Sin embargo, la configuración de la marca
parameterized_views.enabledno se aplica automáticamente y debe establecerse de forma manual en cada instancia. Para obtener más información, consulta Antes de comenzar.No puedes consultar vistas parametrizadas en una instancia de grupo de lectura ni en una réplica entre regiones antes de habilitar la marca
parameterized_views.enableden cada instancia.
¿Qué sigue?
- Administra la seguridad de los datos de la aplicación con vistas seguras parametrizadas.
- Protege y controla el acceso a los datos de la aplicación con vistas seguras parametrizadas.