

# Cifrado de conexiones de cliente con SSL/TLS a instancias de base de datos de MariaDB en Amazon RDS
<a name="mariadb-ssl-connections"></a>

La capa de conexión segura (SSL) es un protocolo estándar del sector que se utiliza para proteger las conexiones de red entre el cliente y el servidor. Después de la versión 3.0 de SSL, el nombre se cambió por seguridad de la capa de transporte (TLS). Amazon RDS admite el cifrado SSL para las instancias de base de datos MariaDB. Con SSL/TLS puede cifrar una conexión entre el cliente de la aplicación y la instancia de base de datos MariaDB. La compatibilidad con SSL/TLS está disponible en todas las Regiones de AWS.

Con Amazon RDS, puede proteger los datos en tránsito cifrando las conexiones de los clientes a las instancias de base de datos de MariaDB con SSL/TLS, exigiendo el uso de SSL/TLS para todas las conexiones a una instancia de base de datos de MariaDB y conectándose desde el cliente de línea de comandos de MySQL con SSL/TLS (cifrado). En las siguientes secciones, se proporciona orientación sobre la configuración y el uso del cifrado SSL para las instancias de base de datos de MariaDB en Amazon RDS.

**Topics**
+ [Compatibilidad con SSL/TLS para instancias de base de datos de MariaDB en Amazon RDS](MariaDB.Concepts.SSLSupport.md)
+ [Necesidad de uso de SSL/TLS para cuentas de usuario específicas en una instancia de base de datos de MariaDB en Amazon RDS](MariaDB-ssl-connections.require-ssl-users.md)
+ [Necesidad de uso de SSL/TLS para todas las conexiones a una instancia de base de datos de MariaDB en Amazon RDS](mariadb-ssl-connections.require-ssl.md)
+ [Conexión a la instancia de base de datos de MariaDB en Amazon RDS con SSL/TLS desde el cliente de línea de comandos de MySQL (cifrado)](USER_ConnectToMariaDBInstanceSSL.CLI.md)

# Compatibilidad con SSL/TLS para instancias de base de datos de MariaDB en Amazon RDS
<a name="MariaDB.Concepts.SSLSupport"></a>

Amazon RDS crea un certificado de SSL/TLS e instala el certificado en la instancia de base de datos cuando Amazon RDS aprovisiona la instancia. Estos certificados están firmados por una autoridad de certificación. El certificado SSL/TLS incluye el punto de enlace de la instancia de base de datos como nombre común (CN) que el certificado de SSL/TLS debe proteger frente a los ataques de suplantación. 

Un certificado SSL/TLS creado por Amazon RDS es la entidad raíz de confianza y debería funcionar en la mayoría de los casos, pero podría fallar si la aplicación no acepta cadenas de certificados. Si la aplicación no acepta cadenas de certificados, intente utilizar un certificado intermedio para conectarse a la Región de AWS. Por ejemplo, debe utilizar un certificado intermedio para conectarse a las regiones de AWS GovCloud (US) con SSL/TLS.

Para obtener más información acerca de cómo descargar certificados, consulte [Uso de SSL/TLS para cifrar una conexión a una instancia o un clúster de base de datos](UsingWithRDS.SSL.md). Para obtener más información acerca de cómo usar SSL/TLS con MySQL, consulte [Actualización de aplicaciones para la conexión a las instancias de MariaDB con los nuevos certificados SSL/TLS](ssl-certificate-rotation-mariadb.md).

Amazon RDS para MariaDB es compatible con las versiones 1.3, 1.2, 1.1 y 1.0 de la seguridad de la capa de transporte (TLS). La compatibilidad con TLS depende de la versión secundaria de MariaDB. En la tabla siguiente se muestra la compatibilidad de TLS con versiones secundarias de MariaDB.


| Versión de TLS | MariaDB 11.8 | MariaDB 11.4 | MariaDB 10.11 | MariaDB 10.6 | MariaDB 10.5 | MariaDB 10.4 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  TLS 1.3  |  Todas las versiones secundarias  |  Todas las versiones secundarias  |  Todas las versiones secundarias  |  Todas las versiones secundarias  |  Todas las versiones secundarias  |  Todas las versiones secundarias  | 
|  TLS 1.2  |  Todas las versiones secundarias  |  Todas las versiones secundarias  |  Todas las versiones secundarias  |  Todas las versiones secundarias  |  Todas las versiones secundarias  |  Todas las versiones secundarias  | 
|  TLS 1.1  |  No admitido  |  No admitido  |  No admitido  |  10.6.16 y versiones anteriores  |  10.5.23 y versiones anteriores  |  10.4.32 y versiones anteriores  | 
|  TLS 1.0  |  No admitido  |  No admitido  | No admitido | 10.6.16 y versiones anteriores |  10.5.23 y versiones anteriores  |  10.4.32 y versiones anteriores  | 

# Necesidad de uso de SSL/TLS para cuentas de usuario específicas en una instancia de base de datos de MariaDB en Amazon RDS
<a name="MariaDB-ssl-connections.require-ssl-users"></a>

Puede exigir el uso del cifrado SSL/TLS para determinadas conexiones de cuentas de usuario a las instancias de base de datos de MariaDB en Amazon RDS. Proteger la información confidencial del acceso o la interceptación no autorizados es fundamental para hacer cumplir las políticas de seguridad en los casos en los que la confidencialidad de los datos sea importante.

Para exigir el uso de conexiones SSL/TLS en determinadas cuentas de usuarios, utilice una de las siguientes instrucciones, en función de la versión de MySQL, para exigir conexiones SSL/TLS en la cuenta de usuario `encrypted_user`.

Para ello, utilice la siguiente instrucción.

```
ALTER USER 'encrypted_user'@'%' REQUIRE SSL;
```

Para obtener más información acerca de las conexiones SSL/TLS con MariaDB, consulte [Securing Connections for Client and Server](https://mariadb.com/kb/en/securing-connections-for-client-and-server/) (Protección de conexiones para el cliente y el servidor) en la documentación de MariaDB.

# Necesidad de uso de SSL/TLS para todas las conexiones a una instancia de base de datos de MariaDB en Amazon RDS
<a name="mariadb-ssl-connections.require-ssl"></a>

Utilice el parámetro `require_secure_transport` para requerir que todas las conexiones de usuario a su instancia de base de datos de MariaDB utilicen SSL/TLS. Para las versiones 11.4 y anteriores, el parámetro `require_secure_transport` se establece en `OFF` de forma predeterminada. Para 11.8 y versiones posteriores, el valor predeterminado se establece en `ON`, aplicando SSL/TLS para las conexiones a la instancia de base de datos. Puede cambiar el parámetro `require_secure_transport` a `OFF` si se necesitan conexiones no seguras.

**nota**  
El parámetro `require_secure_transport` solo es compatible con las versiones 10.5 y posteriores de MariaDB.

Puede definir el valor del parámetro `require_secure_transport` actualizando el grupo de parámetros de base de datos a su instancia de base de datos. No es necesario reiniciar la instancia de base de datos para que el cambio surta efecto.

Cuando el parámetro `require_secure_transport` se establece en `ON` para un clúster de base de datos, un cliente de base de datos puede conectarse a él si puede establecer una conexión cifrada. De lo contrario, se devuelve al cliente un mensaje de error similar al siguiente:

```
ERROR 1045 (28000): Access denied for user 'USER'@'localhost' (using password: YES | NO)
```

Para obtener información acerca de cómo configurar los parámetros, consulte [Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

Para obtener más información sobre el parámetro `require_secure_transport`, consulte la [documentación de MariaDB](https://mariadb.com/docs/ent/ref/mdb/system-variables/require_secure_transport/).

# Conexión a la instancia de base de datos de MariaDB en Amazon RDS con SSL/TLS desde el cliente de línea de comandos de MySQL (cifrado)
<a name="USER_ConnectToMariaDBInstanceSSL.CLI"></a>

Los parámetros `mysql` del programacliente son ligeramente diferentes si está utilizando la versión de MySQL 5.7, la versión de MySQL 8.0 o la versión de MariaDB.

Para saber qué versión tiene, ejecute el comando `mysql` con la opción de comando `--version`. En el ejemplo siguiente, el resultado muestra que el programa cliente es de MariaDB.

```
$ mysql --version
mysql  Ver 15.1 Distrib 10.5.15-MariaDB, for osx10.15 (x86_64) using readline 5.1
```

La mayoría de las distribuciones de Linux, como Amazon Linux, CentOS, SUSE y Debian han reemplazado MySQL por MariaDB, y la versión de `mysql` en ellos es de MariaDB.

Para conectarse a la instancia de base de datos mediante SSL/TLS, siga estos pasos:

**Para conectarse a una instancia de base de datos mediante SSL/TLS con el cliente de la línea de comandos de MySQL**

1. Descargue un certificado raíz que funcione para todas las Regiones de AWS.

   Para obtener más información acerca de cómo descargar certificados, consulte [Uso de SSL/TLS para cifrar una conexión a una instancia o un clúster de base de datos](UsingWithRDS.SSL.md).

1. Utilice un cliente de línea de comandos de MySQL para conectarse a una instancia de base de datos con cifrado SSL/TLS. Para el parámetro `-h`, escriba el nombre de DNS (punto de conexión) de la instancia de base de datos. Para el parámetro `--ssl-ca`, sustituya el nombre del archivo de certificado SSL/TLS. Para el parámetro `-P`, sustituya el puerto de la instancia de base de datos. Para el parámetro `-u`, sustituya el nombre de usuario de un usuario de base de datos válido, como el usuario maestro. Escriba la contraseña del usuario maestro cuando se le pida.

   En el siguiente ejemplo, se muestra cómo lanzar un cliente con el parámetro `--ssl-ca` con el MariaDB.

   ```
   mysql -h mysql–instance1.123456789012.us-east-1.rds.amazonaws.com --ssl-ca=global-bundle.pem --ssl -P 3306 -u myadmin -p
   ```

   Para exigir que la conexión SSL/TLS verifique el punto de conexión de la instancia de la base de datos en el punto de conexión del certificado SSL/TLS, introduzca el siguiente comando:

   ```
   mysql -h mysql–instance1.123456789012.us-east-1.rds.amazonaws.com --ssl-ca=global-bundle.pem --ssl-verify-server-cert -P 3306 -u myadmin -p
   ```

   En el siguiente ejemplo, se muestra cómo lanzar un cliente con el parámetro `--ssl-ca` con el cliente MySQL 5.7 y versiones posteriores.

   ```
   mysql -h mysql–instance1.123456789012.us-east-1.rds.amazonaws.com --ssl-ca=global-bundle.pem --ssl-mode=REQUIRED -P 3306 -u myadmin -p
   ```

1. Escriba la contraseña del usuario maestro cuando se le pida.

Debería ver un resultado similar a este.

```
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 31
Server version: 10.6.10-MariaDB-log Source distribution
 
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
  
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>
```