

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
<a name="enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds"></a>

*Rohit Kapoor, Amazon Web Services*

## Resumen
<a name="enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds-summary"></a>

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 for SSL/TLS PostgreSQL utiliza 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
<a name="enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds-prereqs"></a>
+ Una cuenta de AWS activa
+ Una [instancia de base de datos de Amazon RDS para PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_RDS_Configuring.html)
+ Un [paquete SSL](https://www.postgresql.org/docs/current/ssl-tcp.html)

## Arquitectura
<a name="enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds-architecture"></a>

![Habilitar conexiones cifradas para instancias de base de datos PostgreSQL en Amazon RDS](https://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/4f87c6a3-b4ff-4248-96d3-a4a498659735/images/ccc5c880-1191-4c12-a255-6908b96b96a5.png)


## Tools (Herramientas)
<a name="enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds-tools"></a>
+ [pgAdmin](https://www.pgadmin.org/) 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](https://wiki.postgresql.org/wiki/PostgreSQL_Clients) 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
<a name="enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds-best-practices"></a>
+ 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](https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html).
+ Supervise el cumplimiento de las políticas con regularidad.

## Epics
<a name="enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds-epics"></a>

### Descargue un certificado de confianza e impórtelo a su almacén de confianza
<a name="download-a-trusted-certificate-and-import-it-into-your-trust-store"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cargue un certificado de confianza en su computadora. | 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**.<br />2. En la consola, elija **Archivo**, **Agregar/Quitar complemento**.<br />3. En **Complementos disponibles**, elija **Certificados** y, a continuación, elija **Agregar**.<br />4. En **Este complemento siempre administrará los certificados de**, elija **Cuenta de equipo** y pulse **Siguiente**.<br />5. Seleccione **Equipo local** y, a continuación, **Finalizar**.<br />6. Si no tiene más complementos que añadir a la consola, pulse **Aceptar**.<br />7. En el árbol de la consola, haga doble clic en **Certificados**.<br />8. Haga clic con el botón derecho en **Entidades emisoras de certificados raíz**.<br />9. Seleccione **Todas las tareas**, **Importar** para importar los certificados descargados.<br />10. Siga los pasos del asistente de importación de certificados. | DevOps ingeniero, ingeniero de migración, DBA | 

### Fuerza las conexiones SSL.
<a name="force-ssl-connections"></a>


| Tarea | Descripción | Habilidades 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.<br />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.<br />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](https://console.aws.amazon.com/rds/) para la región de AWS que aloja la instancia de base de datos.<br />2. En el panel de navegación, seleccione **Grupos de parámetros**.<br />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**.<br />4. Elija el grupo de parámetros que ha creado.<br />5. En **Parameter group actions (Acciones de grupos de parámetros)**, seleccione **Edit (Editar)**.<br />6. Busque **rds.force\_ssl** y cambie su configuración a **1**.Realice pruebas del cliente antes de cambiar este parámetro.<br />7. Seleccione **Save changes (Guardar cambios)**.<br />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.<br />2. Elija **Modificar**.<br />3. **En **Configuración adicional**, seleccione el nuevo grupo de parámetros y, a continuación, elija Continuar**.<br />4. En **Programar modificaciones**, elija **Aplicar inmediatamente**.<br />5. Elija **Modify DB instance** (Modificar la instancia de la base de datos).<br />Para obtener más información, consulte la [documentación de Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithDBInstanceParamGroups.html). | 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](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Concepts.General.SSL.html#PostgreSQL.Concepts.General.SSL.Requiring). | DevOps ingeniero, ingeniero de migración, DBA | 

### Instale la extensión SSL
<a name="install-ssl-extension"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Instale la extensión SSL. | 1. Inicie una conexión psql o pgAdmin como Administrador de base de datos.<br />2. Llame a la función **ssl\_is\_used ()** para determinar si se está usando SSL.<pre>select ssl_is_used();</pre><br />La función devuelve `t` si la conexión usa SSL; de lo contrario, devuelve `f`.<br />3. Instale la extensión SSL.<pre>create extension sslinfo;<br />show ssl;<br />select ssl_cipher();</pre>Para obtener más información, consulte la [documentación de Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Concepts.General.SSL.html). | DevOps ingeniero, ingeniero de migración, DBA | 

### Configure su cliente PostgreSQL para SSL
<a name="configure-your-postgresql-client-for-ssl"></a>


| Tarea | Descripción | Habilidades 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.<br />Si usa el cliente psql:1. Asegúrese de que el certificado Amazon RDS se ha cargado en su computadora local.<br />2. Inicie una conexión de cliente SSL añadiendo lo siguiente:<pre>psql postgres -h SOMEHOST.amazonaws.com -p 8192 -U someuser sslmode=verify-full sslrootcert=rds-ssl-ca-cert.pem<br />select ssl_cipher();</pre><br />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. <br />Consulte las siguientes páginas para estos clientes:+ [Documentación de pgAdmin](https://www.pgadmin.org/docs/)<br />+ [Documentación de JDBC](https://jdbc.postgresql.org/documentation/ssl/) | DevOps ingeniero, ingeniero de migración, DBA | 

## Resolución de problemas
<a name="enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| No se puede descargar el certificado SSL. | Compruebe la conexión al sitio web y vuelva a intentar descargar el certificado en su computadora local. | 

## Recursos relacionados
<a name="enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds-resources"></a>
+ [Documentación de Amazon RDS para PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)
+ [Uso de SSL con una instancia de base de datos PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Concepts.General.SSL.html) (documentación de Amazon RDS)
+ [ TCP/IP Conexiones seguras con SSL](https://www.postgresql.org/docs/9.1/ssl-tcp.html) (documentación de PostgreSQL)
+ [Uso de SSL](https://jdbc.postgresql.org/documentation/ssl/) (documentación de JDBC)