Habilite conexiones cifradas para instancias de base de datos de PostgreSQL en Amazon RDS - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Habilite conexiones cifradas para instancias de base de datos de PostgreSQL en Amazon RDS

Creado por Rohit Kapoor (AWS)

Entorno: PoC o piloto

Tecnologías: bases de datos; redes; seguridad, identidad, cumplimiento

Carga de trabajo: código abierto

Servicios de AWS: Amazon RDS; Amazon Aurora

Resumen

Amazon Relational Database Service (Amazon RDS) admite el cifrado SSL en instancias de base de datos PostgreSQL. Con SSL, puede cifrar una conexión de PostgreSQL entre sus aplicaciones y sus instancias de base de datos de Amazon RDS para PostgreSQL. De forma predeterminada, Amazon RDS para PostgreSQL emplea SSL/TLS y espera que todos los clientes se conecten mediante cifrado SSL/TLS. Amazon RDS para PostgreSQL admite las versiones 1.1 y 1.2 de TLS.

En este patrón se describe cómo puede habilitar conexiones cifradas para una instancia de base de datos de Amazon RDS para PostgreSQL. Puede usar el mismo proceso para habilitar conexiones cifradas en Amazon Aurora compatible con PostgreSQL.

Requisitos previos y limitaciones

Arquitectura

Habilitar conexiones cifradas para instancias de base de datos PostgreSQL en Amazon RDS

Herramientas

  • pgAdmin es una plataforma de administración y desarrollo de código abierto para PostgreSQL. Puede usar pgAdmin en Linux, Unix, macOS y Windows para administrar los objetos de su base de datos en PostgreSQL 10 y versiones posteriores.

  • Los editores de PostgreSQL proporcionan una interfaz más fácil de usar que le ayuda a crear, desarrollar y ejecutar consultas, así como a editar el código según sus necesidades.

Prácticas recomendadas

  • Supervise las conexiones de bases de datos no seguras.

  • Audite los derechos de acceso a la base de datos.

  • Asegúrese de que las copias de seguridad y las instantáneas estén cifradas en reposo.

  • Supervise el acceso a bases de datos.

  • Evite los grupos de acceso sin restricciones.

  • Mejora tus notificaciones con Amazon GuardDuty.

  • Supervise el cumplimiento de las políticas con regularidad.

Epics

TareaDescripciónHabilidades requeridas

Cargue un certificado de confianza en su ordenador.

Para agregar certificados al almacén de entidades emisoras de certificados raíz de confianza de su equipo, siga estos pasos. (Estas instrucciones usan Windows Server como ejemplo).

  1. En Windows Server, seleccione Iniciar, Ejecutar y, a continuación, escriba mmc.

  2. En la consola, elija Archivo, Agregar/Quitar complemento.

  3. En Complementos disponibles, elija Certificados y, a continuación, elija Agregar.

  4. En Este complemento siempre administrará los certificados de, elija Cuenta de equipo y pulse Siguiente.

  5. Seleccione Equipo local y, a continuación, Finalizar.

  6. Si no tiene más complementos que añadir a la consola, pulse Aceptar.

  7. En el árbol de la consola, haga doble clic en Certificados.

  8. Haga clic con el botón derecho en Entidades emisoras de certificados raíz.

  9. Seleccione Todas las tareas, Importar para importar los certificados descargados.

  10. Siga los pasos del asistente de importación de certificados.

DevOps ingeniero, ingeniero de migración, DBA
TareaDescripciónHabilidades requeridas

Cree un grupo de parámetros y establezca el parámetro rds.force_ssl.

Si la instancia de base de datos PostgreSQL tiene un grupo de parámetros personalizado, edite dicho grupo y cambie rds.force_ssl a 1.

Si la instancia de base de datos usa el grupo de parámetros predeterminado sin rds.force_ssl habilitado, cree un nuevo grupo de parámetros. Puede modificar el nuevo grupo de parámetros usando la API de Amazon RDS o bien manualmente siguiendo estos pasos.

Para crear un nuevo grupo de parámetros:

  1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon RDS para la región de AWS que aloja la instancia de base de datos.

  2. En el panel de navegación, seleccione Parameter groups (Grupos de parámetros).

  3. Elija Crear grupo de parámetros y defina los siguientes valores: 

    • En Familia de grupo de parámetros, elija postgres14.

    • En Nombre de grupo, escriba pgsql-<database_instance>-ssl.

    • En Descripción, introduzca una descripción en formato libre para el grupo de parámetros que va a añadir.

    • Seleccione Crear.

  4. Elija el grupo de parámetros que ha creado.

  5. En Parameter group actions (Acciones de grupos de parámetros), seleccione Edit (Editar).

  6. Busque rds.force_ssl y cambie su configuración a 1.

    Nota: Realice pruebas en el lado del cliente antes de cambiar este parámetro.

  7. Elija Guardar cambios.

Para asociar el grupo de parámetros a su instancia de base de datos PostgreSQL:

  1. En la consola de Amazon RDS, en el panel de navegación, elija Bases de datos y, a continuación, seleccione la instancia de base de datos PostgreSQL.

  2. Elija Modificar.

  3. En Configuración adicional, seleccione el nuevo grupo de parámetros y, a continuación, elija Continuar.

  4. En Programar modificaciones, elija Aplicar inmediatamente.

  5. Elija Modify DB instance (Modificar la instancia de la base de datos).

Para obtener más información, consulte la documentación de Amazon RDS.

DevOps ingeniero, ingeniero de migración, DBA

Fuerza las conexiones SSL.

Conéctese a la instancia de base de datos de Amazon RDS para PostgreSQL. Los intentos de conexión que no usan SSL se rechazan con un mensaje de error. Para obtener más información, consulte la documentación de Amazon RDS.

DevOps ingeniero, ingeniero de migración, DBA
TareaDescripciónHabilidades requeridas

Instale la extensión SSL.

  1. Inicie una conexión psql o pgAdmin como Administrador de base de datos.

  2. Llame a la función ssl_is_used () para determinar si se está usando SSL.

    select ssl_is_used();

    La función devuelve t si la conexión usa SSL; de lo contrario, devuelve f.

  3. Instale la extensión SSL.

    create extension sslinfo; show ssl; select ssl_cipher();

Para obtener más información, consulte la documentación de Amazon RDS.

DevOps ingeniero, ingeniero de migración, DBA
TareaDescripciónHabilidades requeridas

Configure un cliente para SSL.

Al usar SSL, puede iniciar el servidor PostgreSQL con soporte para conexiones cifradas que empleen protocolos TLS. El servidor escucha tanto las conexiones estándar como las SSL en el mismo puerto TCP, y negocia con cualquier cliente que se conecte si debe utilizar SSL. Por defecto, esto es una una opción de cliente.

Si usa el cliente psql:

  1. Asegúrese de que el certificado Amazon RDS se ha cargado en su ordenador local.

  2. Inicie una conexión de cliente SSL añadiendo lo siguiente:

    psql postgres -h SOMEHOST.amazonaws.com -p 8192 -U someuser sslmode=verify-full sslrootcert=rds-ssl-ca-cert.pem select ssl_cipher();

Para otros clientes de PostgreSQL:

  • Modifique el parámetro de clave pública de la aplicación correspondiente. Esto puede estar disponible como una opción, como parte de su cadena de conexión, o como una propiedad en la página de conexión en las herramientas de la interfaz gráfica de usuario. 

Consulte las siguientes páginas para estos clientes:

DevOps ingeniero, ingeniero de migración, DBA

Solución de problemas

ProblemaSolución

No se puede descargar el certificado SSL.

Compruebe la conexión al sitio web y vuelva a intentar descargar el certificado en su ordenador local.

Recursos relacionados