Conectar Power Bi a RDS Postgres en AWS

Si hay algo que me hizo renegar fue la seguridad de AWS. Tiene sus complicaciones para tener sincronía con productos de terceros y más si son de Microsoft. Para aquellos que no son amigos de la conexión ODBC y prefieren los conectores estándar, vamos a ver como lograr que conectores a bases de datos en RDS de AWS funcionen. Este ejemplo es con Postgres. Comencemos con el paso a paso.

1. Instalar Npgsql que permitirá el acceso de .NET a PostgresSQL (conector de PBI). Puedes conseguir el link intentando conectar Power Bi y el primer mensaje te desviará al siguiente link: https://github.com/npgsql/Npgsql/releases

Es necesario conectarse con SSL a AWS que no viene preparado por defecto en Windows 10.

2. Para esto vamos a descargar la clave pública de AWS de este enlace: https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem

3. Microsoft no maneja esta exención de archivos para validar certificados. Por ello vamos a convertir el certificado del archivo .pem a PKCS#7 archivo .p7b usando la siguiente herramienta online https://www.sslshopper.com/ssl-converter.html 

4. Finalmente vamos a importar el certificado en el la lista de certificados de confianza

Importar Certificados CA de confianza en administrar certificados de equipo.

  • En menú inicio, click Ejecutar… y escribir "mmc /admin"
  • En MMC, Archivo->Agregar o quitar complemento… 
  • Seleccionar Certificados de las lista y luego agregar.
  • Trusted CA certificates deberían ir con la la cuenta del equipo. Click Siguiente y luego Finalizar.

Una vez agregado el certificado tu consola MMC debería verse así:

image

Click derecho en la carpeta "Entidades de certificación raíz de confianza" y elegir Todas las tareas -> Importar… para abrir el asistente para importar certificados.

El asistente te guiará para examinar y elegir el archivo p7b que convertimos en los pasos anteriores y con siguiente hasta finalizar estará importado el certificado

5. Ahora puedes volver a probar el conector de Power Bi Desktop para PostgresSQL y debería funcionar.

Con esto podemos comprobar que si es posible conectarse a una base de datos postgres en servicio RDS de AWS, pero no es sencillo.