Oracle Database Vault es una herramienta poderosa que se utiliza para fortalecer la seguridad de las bases de datos, especialmente en entornos multitenant que utilizan la arquitectura Container Database (CDB) y Pluggable Database (PDB). A continuación, se describen algunas de las formas en que Database Vault puede mejorar la seguridad en este tipo de entornos:
1. Control de Acceso Basado en Roles y Reglas
Database Vault permite definir políticas de acceso muy específicas que regulan quién puede acceder y administrar los CDBs y PDBs. Puedes crear reglas que limiten las acciones que los administradores de bases de datos pueden realizar, incluso restringiendo el acceso a ciertos objetos y datos sensibles.
2. Separación de Deberes
La herramienta ayuda a implementar la separación de deberes al permitir que diferentes roles y usuarios tengan acceso a diferentes funcionalidades y áreas de la base de datos. Esto reduce el riesgo de fraudes o abusos por parte de los administradores, ya que no tendrán acceso completo a todas las funciones críticas.
3. Acceso Autónomo y Autenticación
Database Vault ofrece opciones avanzadas de autenticación que pueden integrarse con sistemas de autenticación externos. Esto asegura que solo los usuarios autenticados de manera adecuada puedan acceder a las bases de datos. También se puede dificultar el acceso a través de técnicas como la autenticación multifactor.
4. Protección de Datos Sensibles
Se pueden implementar políticas de protección de datos sensibles que aseguren que sólo ciertos usuarios o roles puedan acceder a información confidencial, cumpliendo con regulaciones de protección de datos como GDPR o HIPAA.
5. Auditoría y Monitoreo
Database Vault proporciona capacidades de auditoría robustas que permiten registrar las acciones de los usuarios dentro de las PDBs y CDBs. Esto no solo ayuda a identificar actividades sospechosas, sino que también es crucial para cumplir con los requisitos de cumplimiento normativo.
6. Multi-tenancy y Aislamiento
En un entorno multitenant, es fundamental mantener el aislamiento entre las PDBs. Database Vault contribuye a este aislamiento al proporcionar controles de acceso que impiden que los usuarios de una PDB accedan a datos en otra PDB de manera no autorizada.
7. Mantenimiento de Seguridad a lo Largo del Tiempo
Las políticas de seguridad de Database Vault pueden ser modificadas y ajustadas según evolucionen las necesidades de seguridad de la organización, lo que permite mantener una postura de seguridad proactiva y adaptable.
Práctica: Implementación de Oracle Database Vault en un entorno multitenant
Objetivo:
Aprender a implementar y configurar Oracle Database Vault para mejorar la seguridad de las PDBs en un entorno CDB.
Requisitos:
- Acceso a una instancia de Oracle Database (12c o superior) con capacidades multitenant.
- Conocimientos básicos de SQL y PL/SQL.
- Privilegios de DBA para crear y administrar roles, usuarios y Database Vault.
Pasos de la Práctica:
Paso 1: Preparación del Entorno
Conectar a la CDB: Conéctate a tu CDB como un usuario con privilegios de DBA y verifica las PDBs existentes.
sqlplus sys/password@CDB AS SYSDBA
SELECT name FROM v$pdbs;
Paso 2: Habilitar Oracle Database Vault
Instalar y habilitar Database Vault:
- Usa el siguiente comando para habilitar Database Vault en tu CDB (esto puede requerir reiniciar la base de datos):
EXEC DBMS_PDB.ENABLE_DATABASE_VAULT();
ALTER SYSTEM SET URLs = TRUE SCOPE=BOTH;
Asegúrate de que el servicio de Database Vault esté habilitado:
SELECT * FROM V$OPTION WHERE PARAMETER='Database Vault';
Paso 3: Crear Políticas de Seguridad
Crear una Política de Acceso:
- Define una política que restrinja el acceso a una PDB a ciertos usuarios.
BEGIN
DBMS_AUTHZ.CREATE_POLICY(
policy_name => 'Restrict_access_pdb',
comment => 'Restrict access to specified user on PDB',
enable => TRUE);
END;
/
BEGIN
DBMS_AUTHZ.ADD_POLICY_MEMBER(
policy_name => 'Restrict_access_pdb',
member_name => 'USER_PDB'); -- Usar el nombre del usuario que quieres restringir
END;
/
Crear un rol y asignar privilegios limitados:
CREATE ROLE restricted_role;
GRANT CREATE SESSION TO restricted_role;
GRANT SELECT ON some_sensitive_table TO restricted_role; -- Reemplaza por las tablas relevantes
Asignar el rol al usuario en la PDB
ALTER SESSION SET CONTAINER=your_pdb;
GRANT restricted_role TO user_in_pdb;
Paso 4: Auditoría de Acceso
Configurar la Auditoría:
- Activa la auditoría de acciones en Database Vault:
EXEC DBMS_FGA.ADD_POLICY(
object_schema => 'schema_owner',
object_name => 'sensitive_table',
policy_name => 'audit_sensitive_access',
statement_types => 'SELECT',
audit_condition => NULL,
handler_module => NULL,
handler_context => NULL,
enable => TRUE);
Paso 5: Probar las Configuraciones
Conectar con el usuario restringido y probar el acceso:
- Intenta conectarte a la PDB como el usuario restringido y verifica que solo tengas acceso limitado.
sqlplus user_in_pdb/password@your_pdb
SELECT * FROM some_sensitive_table; -- Debería permitir acceso o dar error
Revisar la auditoría de seguridad:
- Consulta los registros de auditoría para verificar las acciones hechas por el usuario.
SELECT * FROM DBA_FGA_AUDIT_TRAIL WHERE policy_name='audit_sensitive_access';
Paso 6: Documentación y Revisión
Documenta tus hallazgos:
- Registra lo que has aprendido sobre la configuración de Database Vault, cualquier error encontrado, lecciones aprendidas y posibles mejoras en la configuración de seguridad.
Oracle Database Vault ofrece una capa crítica de seguridad que es especialmente relevante en entornos multitenant, donde múltiples bases de datos comparten recursos pero deben operar de manera segura y aislada. La implementación adecuada de Database Vault puede reducir significativamente los riesgos de seguridad y ayudar a garantizar que la administración de las bases de datos se realice de manera segura y conforme a las regulaciones vigentes.





Deja un comentario