12 septiembre 2012

Oracle GoldenGate 11g R2 + Oracle Advanced Security Options



Dentro de los múltiples escenarios que podemos tener con Oracle Golden Gate tenemos la posibilidad de aunar la replicación con la seguridad de los datos en reposo. Esto es usar OGG con una de las  opciones de la edición Enterprise de Oracle 11g R2, la opción de seguridad avanzada (ASO), mas concretamente uno de sus pilares los tablespaces cifrados (Transparent Data Encryption; TDE)

Versiones mas antiguas.
Si bien es verdad que las bases de datos Oracle desde su versión 10g (10.2.0.5) hasta la versión 11g (11.2.0.2/3) tienen soporte integrado, simplemente para activarlo hay que ejecutar el siguiente scrip alojado en:

@$ORACLE_HOME/rdbms/admin/prvtclkm.plb
 


Recordar, eso si, que si tenemos una versión de Oracle Database Enterprise Edition  11.1.0.7 deberemos de ejecutar este script tras instalar el parche 9409423 (ADD TDE SUPPORT FOR USE WITH GOLDENGATE EXTRACT), una vez hecho esto ejecutar el mismo procedimiento para permitir que Oracle GoldenGate 11.1.1.1 para extraer datos cifrados de una base de datos Oracle.

Oracle GoldenGate 11g R2.
Si queremos que OGG11g R2 (11.2.x) trabaje con tablespaces cifrados (TDE) deberemos de subir nuestra versión de base de datos a Oracle 11.2.0.2 y además pasar el parche 10395645 (AUTO-LOGIN SUPPORT FOR DBMS_INTERNAL_CLKM FOR GOLDEN GATE) eso si solo para Linux-x86-64, Solaris (SPARC) y HP-UX Itanium, este parche se halla liberado desde la versión 10.2.0.5.0.

Crearemos el Oracle wallet (repositorio externo de claves de Oracle para trabajar con bases de datos y middleware) mediante el siguiente comando

  
mkstore -wrl ./ -createEntry ORACLE.SECURITY.CL.ENCRYPTION.ORACLEGG

Si estamos en una plataforma RAC hay que copiar el fichero ewalletp12 a los otros nodos (Si el cluster se esta ejecutando y la localización del wallet no está compartida) Así mismo hay que proporcionar el mismo fichero en las bases de datos stand by, si las hubiera.
Si quieres comprobar lo que has compartido, ejecuta el iguiente comando de  Oracle wallet
mkstore -wrl  /u01/app/oracle/wallet –viewEntry ORACLE.SECURITY.CL.ENCRYPTION.ORACLEGG


Crea el paquete dbms_internal_clkm:

@$ORACLE_HOME/rdbms/admin/prvtclkm.plb

Una vez creado le tenemos que dar a nuestro usuario de base dedatos de OGG permisos de ejecución sobre ese paquete, para ello abriremos una sesión SQL*PLUS e introduciremos la siguiente sentencia:


SQL> grant execute on dbms_internal_clkm to gguser;
Cifra la clave compartida
GGSCI> ENCRYPT PASSWORD “shared key”
Añade una entrada al fichero de parámetros del proceso EXTRACT, para descifrar la clave compartida:
DBOPTIONS DECRYPTPASSWORD “SHARED KEY”
Cierra y abre el wallet, si tienes el wallet habilitado con auto login (mediante el fichero cwallet.sso) deshabilítalo temporalmente para cerar y abrir el wallet.


No hay comentarios:

Publicar un comentario

Por favor deja tu comentario, es valioso.