

# Protección de datos en Amazon Aurora DSQL
<a name="data-protection"></a>

El [modelo de responsabilidad compartida](https://aws.amazon.com/compliance/shared-responsibility-model/) se aplica a la protección de datos en . Como se describe en este modelo, es responsable de proteger la infraestructura global que ejecuta toda la Nube de AWS. Eres responsable de mantener el control sobre el contenido alojado en esta infraestructura. También eres responsable de las tareas de administración y configuración de seguridad para los que utiliza. Para obtener más información sobre la privacidad de los datos, consulte las [Preguntas frecuentes sobre la privacidad de datos](https://aws.amazon.com/compliance/data-privacy-faq/). Para obtener información sobre la protección de datos en Europa, consulte la publicación del blog [ Shared Responsibility Model and GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) en el *Blog de seguridad de *.

Con fines de protección de datos, recomendamos proteger las credenciales y configurar usuarios individuales con AWS IAM Identity Center o AWS Identity and Access Management. De esta manera, solo se otorgan a cada usuario los permisos necesarios para cumplir sus obligaciones laborales. También recomendamos proteger sus datos de la siguiente manera:
+ Utiliza la autenticación multifactor (MFA) en cada cuenta.
+ Utiliza SSL/TLS para comunicarse con los recursos de . Exigimos TLS 1.2 y recomendamos TLS 1.3.
+ Configure los registros de API y de actividad de los usuarios con AWS CloudTrail. Para obtener información sobre cómo utilizar registros de seguimiento para capturar actividades, consulte [Cómo trabajar con los registros de seguimiento](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) en la *Guía del usuario*.
+ Utilice las soluciones de cifrado, junto con todos los controles de seguridad predeterminados dentro de Servicios de AWS.
+ Utiliza servicios de seguridad administrados avanzados, como Amazon Macie, que lo ayuden a detectar y proteger la información confidencial almacenada en Amazon S3.

Se recomienda encarecidamente no ingresar nunca información confidencial o sensible, como por ejemplo, direcciones de correo electrónico de clientes, en etiquetas o campos de texto de formato libre, como el campo **Nombre**. Esto incluye las situaciones en las que debe trabajar con u otros mediante la consola, la API, la AWS CLI o los SDK de AWS. Cualquier dato que introduzca en etiquetas o campos de formato libre utilizados para los nombres se pueden emplear para los registros de facturación o diagnóstico. Si proporciona una URL a un servidor externo, recomendamos encarecidamente que no incluya información de credenciales en la URL a fin de validar la solicitud para ese servidor.



## Cifrado de datos
<a name="data-encryption"></a>

Amazon Aurora DSQL proporciona una infraestructura de almacenamiento de alta durabilidad diseñada para el almacenamiento de datos principales y críticos. Los datos se almacenan de forma redundante en varios dispositivos de diversas instalaciones dentro de una región de Aurora DSQL.

### Cifrado en tránsito
<a name="encryption-transit"></a>

De forma predeterminada, el cifrado en tránsito está configurado para usted. Aurora DSQL utiliza TLS para cifrar todo el tráfico entre el cliente de SQL y Aurora DSQL.

Cifrado y firma de datos en tránsito entre los clientes de la AWS CLI, el SDK o la API y los puntos de conexión de Aurora DSQL:
+ Aurora DSQL proporciona puntos de conexión HTTPS para cifrar los datos en tránsito. 
+ Para proteger la integridad de las solicitudes de la API a Aurora DSQL, las llamadas a la API deben estar firmadas por el intermediario. Las llamadas se firman con un certificado X.509 o con la clave de acceso secreta de AWS del cliente, según el proceso de firma de Signature Version 4 (Sigv4). Para obtener más información, consulte [Proceso de firma Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) en la *Referencia general de AWS*.
+  Use la AWS CLI o alguno de los AWS SDK para efectuar solicitudes a AWS. Estas herramientas firman automáticamente las solicitudes con la clave de acceso especificada al configurar las herramientas. 

#### Conformidad con FIPS
<a name="fips-compliance"></a>

Los puntos de conexión del plano de datos de Aurora DSQL (puntos de conexión del clúster que se utilizan para las conexiones de bases de datos) utilizan módulos criptográficos validados por FIPS 140-2 de forma predeterminada. No se requieren puntos de conexión FIPS independientes para las conexiones de los clústeres.

Para las operaciones del plano de control, Aurora DSQL proporciona puntos de conexión FIPS dedicados en las regiones compatibles. Para obtener más información acerca de los puntos de conexión FIPS del plano de control, consulte [Puntos de conexión y cuotas de Aurora DSQL](https://docs.aws.amazon.com/general/latest/gr/dsql.html) en *Referencia general de AWS*.

Para el cifrado en reposo, consulte [Cifrado en reposo en Aurora DSQL](data-encryption.md#encryption-at-rest).

### Privacidad del tráfico entre redes
<a name="inter-network-traffic-privacy"></a>

Las conexiones están protegidas tanto entre Aurora DSQL y las aplicaciones en las instalaciones como entre Aurora DSQL y otros recursos de AWS dentro de la misma Región de AWS.

Tiene dos opciones de conectividad entre su red privada y AWS: 
+ Una conexión de Site-to-Site VPN de AWS. Para obtener más información, consulte [¿Qué es AWS Site-to-Site VPN?](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html)
+ Una conexión de Direct Connect. Para obtener más información, consulte [¿Qué es Direct Connect?](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)

Obtendrá acceso a Aurora DSQL a través de la red mediante las operaciones de la API publicadas por AWS. Los clientes deben admitir lo siguiente:
+ Seguridad de la capa de transporte (TLS). Exigimos TLS 1.2 y recomendamos TLS 1.3.
+ Conjuntos de cifrado con confidencialidad directa total (PFS) como DHE (Ephemeral Diffie-Hellman) o ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). La mayoría de los sistemas modernos como Java 7 y posteriores son compatibles con estos modos.

## Protección de datos en regiones testigo
<a name="witness-regions"></a>

Al crear un clúster multirregional, una región testigo ayuda a permitir la recuperación automática de errores al participar en la replicación sincrónica de las transacciones cifradas. Si un clúster interconectado deja de estar disponible, la región testigo permanece disponible para validar y procesar las operaciones de escritura en la base de datos, lo que garantiza que no se pierda la disponibilidad. 

Las regiones testigo protegen y aseguran sus datos mediante estas características de diseño:
+ La región testigo recibe y almacena únicamente registros de transacciones cifradas. Nunca aloja, almacena ni transmite sus claves de cifrado.
+ La región testigo se centra únicamente en las funciones de registro de transacciones de escritura y cuórum. No puede leer los datos por diseño.
+ La región testigo funciona sin puntos de conexión de clústeres ni procesadores de consultas. Esto impide el acceso de los usuarios a la base de datos.

Para obtener más información sobre las regiones testigo, consulte [Configuración de clústeres multirregionales](configuring-multi-region-clusters.md).

# Configuración de certificados SSL/TLS para conexiones de Aurora DSQL
<a name="configure-root-certificates"></a><a name="ssl-certificate-overview"></a>

Aurora DSQL requiere que todas las conexiones utilicen el cifrado de seguridad de la capa de transporte (TLS). Para establecer conexiones seguras, el sistema cliente debe confiar en la Autoridad de certificación raíz de Amazon (Amazon Root CA 1). Este certificado viene preinstalado en muchos sistemas operativos. Esta sección proporciona instrucciones para verificar el certificado de Amazon Root CA 1 preinstalado en varios sistemas operativos y le guía a través del proceso de instalación manual del certificado si aún no está presente. 

Recomendamos utilizar la versión 17 de PostgreSQL.

**importante**  
Para los entornos de producción, recomendamos utilizar el modo de SSL `verify-full` para garantizar el máximo nivel de seguridad de la conexión. Este modo verifica que el certificado del servidor esté firmado por una autoridad de certificación de confianza y que el nombre de host del servidor coincida con el certificado.

## Verificación de certificados preinstalados
<a name="verify-installed-certificates"></a>

En la mayoría de los sistemas operativos, **Amazon Root CA 1** ya viene preinstalado. Para validarlo, puede seguir los pasos que se indican a continuación.

### Linux (RedHat/CentOS/Fedora)
<a name="verify-linux"></a>

Ejecute el siguiente comando en el terminal:

```
trust list | grep "Amazon Root CA 1"
```

Si el certificado está instalado, verá el siguiente resultado:

```
label: Amazon Root CA 1
```

### macOS
<a name="verify-macos"></a>

1. Abra la búsqueda Spotlight (**Comando** \$1 **Espacio**)

1. Búsqueda de **Keychain Access**

1. Selección de **System Roots** en **System Keychains**

1. Búsqueda de **Amazon Root CA 1** en la lista de certificados

### Windows
<a name="verify-windows"></a>

**nota**  
Debido a un problema conocido con el cliente psql de Windows, el uso de certificados raíz del sistema (`sslrootcert=system`) puede devolver el siguiente error: `SSL error: unregistered scheme`. Puede seguir [Conexión desde Windows](#connect-windows) como forma alternativa de conectarse al clúster mediante SSL. 

Si **Amazon Root CA 1** no está instalado en el sistema operativo, siga los pasos que se indican a continuación. 

## Instalación de certificados
<a name="install-certificates"></a>

 Si el certificado `Amazon Root CA 1` no está preinstalado en el sistema operativo, tendrá que instalarlo de forma manual para establecer conexiones seguras con el clúster de Aurora DSQL. 

### Instalación de certificados de Linux
<a name="install-linux"></a>

Siga estos pasos para instalar el certificado de entidad de certificación de Amazon Root en sistemas de Linux.

1. Descargue el certificado raíz:

   ```
   wget https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

1. Copie el certificado en el almacén de confianza:

   ```
   sudo cp ./AmazonRootCA1.pem /etc/pki/ca-trust/source/anchors/
   ```

1. Actualice el almacén de confianza de la entidad de certificación:

   ```
   sudo update-ca-trust
   ```

1. Verificar la instalación:

   ```
   trust list | grep "Amazon Root CA 1"
   ```

### Instalación de certificado de macOS
<a name="install-macos"></a>

Estos pasos de instalación del certificado son opcionales. [Instalación de certificados de Linux](#install-linux) también funciona para macOS.

1. Descargue el certificado raíz:

   ```
   wget https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

1. Agregue el certificado al llavero del sistema:

   ```
   sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain AmazonRootCA1.pem
   ```

1. Verificar la instalación:

   ```
   security find-certificate -a -c "Amazon Root CA 1" -p /Library/Keychains/System.keychain
   ```

## Conexión con verificación SSL/TLS
<a name="connect-using-certificates"></a>

 Antes de configurar los certificados SSL/TLS para conexiones seguras al clúster de Aurora DSQL, asegúrese de cumplir los siguientes requisitos previos. 
+ Se ha instalado la versión 17 de PostgreSQL
+ La AWS CLI se ha configurado con las credenciales apropiadas
+ Información del punto de conexión del clúster de Aurora DSQL

### Conexión desde Linux
<a name="connect-linux"></a>

1. Genere y configure el token de autenticación:

   ```
   export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token --region=your-cluster-region --hostname your-cluster-endpoint)
   ```

1. Conéctese mediante certificados del sistema (si están preinstalados):

   ```
   PGSSLROOTCERT=system \
   PGSSLMODE=verify-full \
   psql --dbname postgres \
   --username admin \
   --host your-cluster-endpoint
   ```

1. O bien, conéctese mediante un certificado descargado:

   ```
   PGSSLROOTCERT=/full/path/to/root.pem \
   PGSSLMODE=verify-full \
   psql --dbname postgres \
   --username admin \
   --host your-cluster-endpoint
   ```

**nota**  
 Para obtener más información sobre la configuración de PGSSLMODE, consulte [sslmode](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-SSLMODE) en la documentación de [Database Connection Control Functions](https://www.postgresql.org/docs/current/libpq-connect.html) de PostgreSQL 17. 

### Conexión desde macOS
<a name="connect-macos"></a>

1. Genere y configure el token de autenticación:

   ```
   export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token --region=your-cluster-region --hostname your-cluster-endpoint)
   ```

1. Conéctese mediante certificados del sistema (si están preinstalados):

   ```
   PGSSLROOTCERT=system \
   PGSSLMODE=verify-full \
   psql --dbname postgres \
   --username admin \
   --host your-cluster-endpoint
   ```

1. O bien, descargue el certificado raíz y guárdelo como `root.pem` (si el certificado no está preinstalado)

   ```
   PGSSLROOTCERT=/full/path/to/root.pem \
   PGSSLMODE=verify-full \
   psql —dbname postgres \
   --username admin \
   --host your_cluster_endpoint
   ```

1. Conexión mediante psql:

   ```
   PGSSLROOTCERT=/full/path/to/root.pem \
   PGSSLMODE=verify-full \
   psql —dbname postgres \
   --username admin \
   --host your_cluster_endpoint
   ```

### Conexión desde Windows
<a name="connect-windows"></a>

#### Uso del símbolo del sistema
<a name="windows-command-prompt"></a>

1. Generación del token de autenticación:

   ```
   aws dsql generate-db-connect-admin-auth-token ^
   --region=your-cluster-region ^
   --expires-in=3600 ^
   --hostname=your-cluster-endpoint
   ```

1. Establezca la variables de entorno de contraseña:

   ```
   set "PGPASSWORD=token-from-above"
   ```

1. Establezca la configuración de SSL:

   ```
   set PGSSLROOTCERT=C:\full\path\to\root.pem
   set PGSSLMODE=verify-full
   ```

1. Conexión a la base de datos:

   ```
   "C:\Program Files\PostgreSQL\17\bin\psql.exe" --dbname postgres ^
   --username admin ^
   --host your-cluster-endpoint
   ```

#### Con PowerShell
<a name="windows-powershell"></a>

1. Genere y configure el token de autenticación:

   ```
   $env:PGPASSWORD = (aws dsql generate-db-connect-admin-auth-token --region=your-cluster-region --expires-in=3600 --hostname=your-cluster-endpoint)
   ```

1. Establezca la configuración de SSL:

   ```
   $env:PGSSLROOTCERT='C:\full\path\to\root.pem'
   $env:PGSSLMODE='verify-full'
   ```

1. Conexión a la base de datos:

   ```
    "C:\Program Files\PostgreSQL\17\bin\psql.exe" --dbname postgres `
   --username admin `
   --host your-cluster-endpoint
   ```

## Recursos adicionales
<a name="additional-resources"></a>
+  [Documentación de PostgreSQL SSL](https://www.postgresql.org/docs/current/libpq-ssl.html) 
+  [Servicios de confianza de Amazon](https://www.amazontrust.com/repository/) 