Uso de SSL con una instancia de base de datos de Microsoft SQL Server - Amazon Relational Database Service

Uso de SSL con una instancia de base de datos de Microsoft SQL Server

Puede usar la Capa de conexión segura (SSL) para cifrar las conexiones entre las aplicaciones cliente y las instancias de base de datos de Amazon RDS en las que se ejecuta Microsoft SQL Server. SSL está disponible en todas las regiones de AWS y para todas las ediciones admitidas de SQL Server.

Cuando se crea una instancia de base de datos SQL Server, Amazon RDS crea un certificado de SSL para ella. El certificado SSL incluye el punto de enlace de la instancia de base de datos como nombre común (CN) que el certificado de SSL debe proteger frente a los ataques de suplantación.

Hay dos formas de usar SSL para conectar a una instancia de base de datos SQL Server:

  • Aplicar SSL para todas las conexiones: esto sucede de modo transparente para el cliente, que no tiene que hacer nada para usar SSL.

    nota

    Al configurar rds.force_ssl en 1 y utilizar las versiones 19.3, 20.0 y 20.2 de SSMS, compruebe lo siguiente:

    • Habilite Certificado de servidor de confianza en SSMS.

    • Importe el certificado en el sistema.

  • Cifrar conexiones concretas: esto configura una conexión SSL desde un equipo cliente concreto y es necesario realizar algunos cambios en el cliente para cifrar las conexiones.

Para obtener información sobre la compatibilidad con Transport Layer Security (TLS) para SQL Server, consulte TLS 1.2 support for Microsoft SQL Server.

Requerir que las conexiones a la instancia de base de datos usen SSL

Puede requerir que todas las conexiones con su instancia de base de datos usen SSL. Si obliga a las conexiones a usar SSL, esto sucede de modo transparente para el cliente, que no tiene que hacer nada para usar SSL.

Si desea forzar la aplicación de SSL, use el parámetro rds.force_ssl. De forma predeterminada, el parámetro rds.force_ssl está definido como 0 (off). Defina el parámetro rds.force_ssl como 1 (on) para requerir que las conexiones usen SSL. El parámetro rds.force_ssl es estático, así que después de cambiar el valor debe reiniciar su instancia de base de datos para que el cambio tenga efecto.

Para obligar a todas las conexiones a su instancia de base de datos a usar SSL
  1. Determine el grupo de parámetros que está asociado a su instancia de base de datos:

    1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

    2. En la esquina superior derecha de la consola de Amazon RDS, elija la región de AWS de la instancia de base de datos.

    3. En el panel de navegación, elija Databases (Bases de datos) y, a continuación, seleccione el nombre de la base de datos para mostrar sus detalles.

    4. Elija la pestaña Configuration (Configuración). Busque Parameter Group (Grupo de parámetros) en la sección.

  2. Si es necesario, cree un nuevo grupo de parámetros. Si su instancia de base de datos usa el grupo de parámetros predeterminado, debe crear un nuevo grupo de parámetros. Si su instancia de base de datos usa un grupo de parámetros distinto del predeterminado, puede optar por editar el grupo de parámetros existente o por crear un nuevo grupo de parámetros. Si edita un grupo de parámetros existente, el cambio afecta a todas las instancias de base de datos que usan ese grupo de parámetros.

    Para crear un nuevo grupo de parámetros, siga las instrucciones que se describen en Creación de un grupo de parámetros de base de datos en Amazon RDS.

  3. Edite el grupo de parámetros nuevo o ya existente para definir el parámetro rds.force_ssl como true. Para editar el grupo de parámetros, siga las instrucciones que se describen en Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS.

  4. Si ha creado un nuevo grupo de parámetros, modifique la instancia de base de datos para adjuntar el nuevo grupo de parámetros. Modifique el ajuste DB Parameter Group (Grupo de parámetros de base de datos) de la instancia de base de datos. Para obtener más información, consulte Modificación de una instancia de base de datos de Amazon RDS.

  5. Reinicie la instancia de base de datos. Para obtener más información, consulte Reinicio de una instancia de base de datos.

Cifrado de conexiones concretas

Puede requerir que todas las conexiones a su instancia de base de datos usen SSL o puede cifrar únicamente las conexiones procedentes de equipos cliente concretos. Para usar SSL desde un cliente concreto, debe obtener certificados para el equipo cliente, importar los certificados en el equipo cliente y, a continuación, cifrar las conexiones del equipo cliente.

nota

Todas las instancias de SQL Server creadas después del 5 de agosto de 2014 usan el punto de enlace de instancia de base de datos del campo Nombre común (CN) del certificado SSL. Antes del 5 de agosto de 2014, la verificación del certificado SSL no estaba disponible en las instancias de SQL Server basadas en VPC. Si tiene una instancia de SQL Server basada en VPC que se creó antes del 5 de agosto de 2014 y desea usar la verificación del certificado SSL y garantizar que el punto de enlace de la instancia se incluye como nombre común para el certificado SSL de esa instancia de base de datos, cambie el nombre de la instancia. Cuando se cambia el nombre de una instancia de base de datos, se implementa un nuevo certificado y la instancia se reinicia para habilitar el nuevo certificado.

Obtención de certificados para equipos cliente

Para cifrar las conexiones de un equipo cliente a una instancia de base de datos de Amazon RDS en la que se ejecuta Microsoft SQL Server, necesita un certificado en el equipo cliente.

Para obtener ese certificado, descárguelo en el equipo cliente. Puede descargar un certificado raíz que funcione en todas las regiones. También puede descargar un paquete de certificados que contenga tanto los certificados raíz antiguos como los nuevos. Además, puede descargar certificados intermedios específicos de las regiones. 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 clúster de base de datos.

Una vez que haya descargado el certificado correcto, impórtelo en su sistema operativo de Microsoft Windows llevando a cabo el procedimiento que se describe en la sección siguiente.

Importación de certificados en equipos cliente

Puede usar el siguiente procedimiento para importar su certificado en el sistema operativo Microsoft Windows de su equipo cliente.

Para importar el certificado en su sistema operativo Windows:
  1. En el menú Inicio, escriba Run en el cuadro de búsqueda y pulse Entrar.

  2. En el cuadro Abrir, escriba MMC y elija Aceptar.

  3. En la consola de MMC, en el menú Archivo, elija Agregar o quitar complemento.

  4. En el cuadro de diálogo Agregar o quitar complementos, para Complementos disponibles, seleccione Certificates y elija Agregar.

  5. En el cuadro de diálogo Complemento Certificados, elija Cuenta de equipo y, a continuación, elija Siguiente.

  6. En el cuadro de diálogo Seleccionar equipo, elija Finalizar.

  7. En el cuadro de diálogo Agregar o quitar complementos, elija Aceptar.

  8. En la consola de MMC, expanda Certificados, abra el menú contextual (clic con el botón derecho) de Entidades de certificación raíz de confianza, elija Todas las tareas y, a continuación, elija Importar.

  9. En la primera página del Asistente para importar certificados, elija Siguiente.

  10. En la segunda página del Asistente para importar certificados, elija Examinar. En la ventana de navegación, cambie el tipo de archivo a Todos los archivos (*.*) ya que .pem no es una extensión de certificado estándar. Busque el archivo .pem que ha descargado previamente.

  11. Elija Abrir para seleccionar el archivo de certificado y elija Siguiente.

  12. En la tercera página del Asistente para importar certificados, elija Siguiente.

  13. En la cuarta página del Asistente para importar certificados, elija Finalizar. Aparece un cuadro de diálogo que indica que la importación se ha realizado correctamente.

  14. En la consola de MMC, expanda Certificados, expanda Entidades de certificación raíz de confianza y elija Certificados. Busque el certificado para confirmar que existe, como se muestra a continuación.

    En la consola MMC, en el panel de navegación, se selecciona la carpeta Certificados desglosada desde Raíz de la consola, Certificados (equipo local) y Autoridad de certificación raíz de confianza. En la página principal, seleccione el certificado de CA necesario.

Cifrado de las conexiones a una instancia de base de datos de Amazon RDS que ejecuta Microsoft SQL Server

Una vez que haya importado un certificado en el equipo cliente, podrá cifrar las conexiones desde el equipo cliente a una instancia de base de datos de Amazon RDS en la que se ejecuta Microsoft SQL Server.

En SQL Server Management Studio, use el siguiente procedimiento. Para obtener más información acerca de SQL Server Management Studio, consulte SQL Server Management Studio.

Para cifrar las conexiones desde SQL Server Management Studio
  1. Lance SQL Server Management Studio.

  2. En Connect to server, escriba la información del servidor, el nombre de usuario de inicio de sesión y la contraseña.

  3. Elija Options.

  4. Seleccione Encrypt connection.

  5. Elija Connect.

  6. Confirme que la conexión está cifrada ejecutando la siguiente consulta. Compruebe que la consulta devuelve true para encrypt_option.

    select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID

Para cualquier otro cliente de SQL, use el siguiente procedimiento.

Para cifrar las conexiones desde otros clientes de SQL
  1. Añada encrypt=true a la cadena de conexión. Esta cadena puede estar disponible como opción o como propiedad en la página de conexión de las herramientas de la interfaz gráfica de usuario.

    nota

    Para habilitar el cifrado SSL para los clientes que se conectan usando JDBC, puede ser necesario añadir el certificado de Amazon RDS SQL al almacén de certificados de CA (cacerts) de Java. Para ello, puede usar la utilidad keytool.

  2. Confirme que la conexión está cifrada ejecutando la siguiente consulta. Compruebe que la consulta devuelve true para encrypt_option.

    select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID