En esta página se describe cómo puedes usar Secure Socket Layer (SSL), ahora Transport Layer Security (TLS), desde tu aplicación para cifrar las conexiones a instancias de Cloud SQL.
Información general
Cloud SQL admite la conexión a una instancia mediante el protocolo SSL/TLS. Las conexiones SSL/TLS proporcionan una capa de seguridad cifrando los datos en tránsito entre el cliente y la base de datos de la instancia de Cloud SQL. Opcionalmente, tu conexión SSL/TLS puede verificar la identidad del servidor validando el certificado de servidor instalado en la instancia de Cloud SQL y la identidad del cliente validando el certificado de cliente instalado en el cliente.
Certificados de servidor
Cuando creas una instancia, Cloud SQL crea e instala automáticamente un certificado de servidor firmado por una autoridad de certificación (CA). Puede descargar el certificado de AC en la máquina host del cliente y usarlo para verificar la identidad de la AC y del servidor de Cloud SQL. También puedes elegir el tipo de CA que Cloud SQL usa para firmar el certificado de servidor.
Certificados de cliente
También puedes crear y descargar certificados de cliente junto con claves para la máquina host del cliente para la autenticación mutua (verificación de la identidad del servidor y del cliente). No puedes elegir el tipo de AC que usa Cloud SQL para firmar el certificado de cliente.
Conectarse mediante SSL/TLS
Cuando te conectas a una instancia de Cloud SQL desde clientes, puedes usar SSL/TLS para conexiones directas, así como para conexiones que usen el proxy de autenticación de Cloud SQL o los conectores de lenguaje de Cloud SQL.
En el caso de las conexiones directas, Google recomienda implementar obligatoriamente el cifrado SSL/TLS mediante la configuración del modo SSL en Cloud SQL. Si quieres, también puedes aplicar la verificación de certificados de cliente. Para obtener más información, consulta cómo implementar obligatoriamente el encriptado SSL/TLS.
En el caso de las conexiones que usan el proxy de autenticación de Cloud SQL o los conectores de lenguaje de Cloud SQL, las conexiones se cifran automáticamente con SSL/TLS, junto con la verificación de la identidad del cliente y del servidor, sin que tengas que descargar un certificado de AC del servidor ni un certificado de cliente.
Para obtener más información sobre las opciones de conectividad de Cloud SQL, consulta el artículo Acerca de las conexiones de Cloud SQL.
Para obtener más información sobre la configuración de SSL/TLS del lado del cliente, consulta la documentación de tu motor de base de datos.Jerarquías de autoridades de certificación (AC)
En esta sección se describen los tres tipos de autoridad de certificación (AC) de servidor que puedes elegir para tus instancias de Cloud SQL. Tienes tres opciones:
AC por instancia: con esta opción, una AC interna dedicada a cada instancia de Cloud SQL firma el certificado de servidor de esa instancia. Cloud SQL crea y gestiona estas ACs. Para elegir una AC por instancia, selecciona Autoridad de certificación interna gestionada por Google (Google Cloud consola) o especifica
GOOGLE_MANAGED_INTERNAL_CA
en el ajusteserverCaMode
(API Cloud SQL Admin) o en la marca--server-ca-mode
(interfaz de línea de comandos de gcloud) al crear la instancia. Si no especifica el ajuste o la marca al crear una instancia, esta opción será el valor predeterminado de la instancia.CA compartida: con esta opción, se usa una jerarquía de CAs que consta de una CA raíz y CAs de servidor subordinadas. Las AC de servidor subordinadas de una región firman los certificados de servidor y se comparten entre las instancias de la región. Cloud SQL aloja y gestiona la AC raíz y las AC de servidor subordinadas en Google Cloud Servicio de Autoridades de Certificación (CA Service). Cloud SQL también gestiona la rotación de las AC raíz y las AC de servidor subordinadas, y proporciona enlaces disponibles públicamente a los paquetes de certificados de AC para descargarlos. Para elegir una AC compartida, especifica
GOOGLE_MANAGED_CAS_CA
en el ajusteserverCaMode
(API Cloud SQL Admin) o en la marca--server-ca-mode
(CLI de gcloud) al crear la instancia.Autoridad de certificación gestionada por el cliente: con esta opción, puedes crear y gestionar tu propia jerarquía de autoridades de certificación. Elige esta opción si quieres gestionar tus propias autoridades de certificación y certificados. Para elegir una CA gestionada por el cliente, debes crear un grupo de autoridades de certificación y una autoridad de certificación en el Servicio de Autoridades de Certificación. En Cloud SQL, especifica el grupo de CA y
.CUSTOMER_MANAGED_CAS_CA
para el ajusteserverCaMode
(API Cloud SQL Admin) o la marca--server-ca-mode
(gcloud CLI) cuando crees la instancia.
Después de crear una instancia, puedes ver qué jerarquía de CA está configurada para una instancia de Cloud SQL mediante el comando gcloud sql instances describe
o en la consola Google Cloud .
Para obtener más información, consulta Ver información de la instancia.
En la siguiente tabla se comparan las tres opciones de jerarquía de CAs.
Función | AC por instancia | CA compartida | AC gestionada por el cliente |
---|---|---|---|
Estructura de CA | CA independiente para cada instancia | AC raíz y ACs subordinadas compartidas entre instancias de la misma región | Jerarquía de ACs que creas y gestionas |
Atributos criptográficos | Clave RSA de 2048 bits con algoritmo SHA256 | Algoritmo de firma digital de curva elíptica (ECDSA) con una clave de 384 bits y el algoritmo SHA384 | Algoritmo de firma digital de curva elíptica (ECDSA) con una clave de 384 bits y el algoritmo SHA384 |
Periodo de validez de la AC | 10 años | 25 años para la AC raíz y 10 años para las AC subordinadas | Configurable * |
Periodo de validez del certificado de servidor | 10 años | 1 año | 1 año** |
¿Rotación de la AC iniciada por el usuario? | Sí | No. La rotación de la AC la gestiona Cloud SQL. | Sí |
¿Rotación iniciada por el usuario del certificado de servidor? | Sí | Sí | Sí |
Anclaje de confianza de la CA para las conexiones TLS | La CA única por instancia es la raíz de confianza de la instancia correspondiente. | Las AC raíz y subordinadas son las anclas de confianza de todas las instancias de una región determinada. | Las autoridades de certificación que creas y gestionas son las anclas de confianza. |
Verificación de la identidad del servidor | Al verificar la CA, se verifica la identidad del servidor, ya que cada instancia tiene una CA única. | Es necesario verificar el nombre de host y la AC para verificar la identidad del servidor, ya que las ACs del servidor se comparten entre instancias. | Aunque la AC no se comparta entre instancias, puede que quieras verificar el nombre de host junto con la AC. |
Campo Nombre alternativo del sujeto (SAN) en los certificados de servidor | El campo SAN contiene el nombre de host (nombre DNS de la instancia) solo en las instancias en las que se ha habilitado Private Service Connect. El nombre de host se puede usar para verificar la identidad del servidor. Si te conectas a una instancia de Cloud SQL mediante el nombre DNS como nombre de host, debes configurar la resolución de DNS. | El campo SAN contiene el nombre de host (nombre DNS de la instancia) de todos los tipos de instancias. El nombre de host se puede usar para verificar la identidad del servidor. Si te conectas a una instancia de Cloud SQL mediante el nombre DNS como nombre de host, debes configurar la resolución de DNS. | El campo SAN contiene el nombre de host (nombre DNS de la instancia) de todos los tipos de instancias. El nombre de host se puede usar para verificar la identidad del servidor. |
Compatibilidad con versiones del proxy de autenticación de Cloud SQL | Admite todas las versiones del proxy de autenticación de Cloud SQL, la versión 1 y posteriores. | Se requiere la versión 2.13.0 o una posterior del proxy de autenticación de Cloud SQL. | Requiere la versión 2.14.3 o posterior del proxy de autenticación de Cloud SQL. |
Limitaciones de la conexión de servicio | Ninguno |
No admite conexiones de los siguientes Google Cloud
servicios:
|
No admite conexiones de los siguientes Google Cloud
servicios:
|
* En el caso de la opción de AC gestionada por el cliente, el periodo de validez predeterminado de un certificado de AC en el servicio de AC es de 10 años. Puedes configurar un periodo de validez diferente para tus certificados de AC. Si el periodo de validez de la AC es más corto, es posible que tengas que rotar las AC con más frecuencia. Además, si el periodo de validez es inferior a un año, podría afectar al periodo de validez de tus certificados de servidor. Para obtener más información, consulta Gestionar la rotación de la CA.
** En el caso de la opción de AC gestionada por el cliente, el periodo de validez predeterminado de un certificado de servidor es de un año. Sin embargo, si configura un periodo de validez inferior a un año para su certificado de AC, el certificado de su servidor tendrá un periodo de validez más corto. Para obtener más información sobre cómo configurar el periodo de validez de tu certificado de AC al crearlo, consulta Configuración del certificado de AC y Crear una AC raíz.
CA por instancia alojada en Cloud SQL
La jerarquía de AC por instancia es la configuración predeterminada del modo de AC de servidor cuando creas una instancia con la CLI de gcloud, la API Cloud SQL Admin o Terraform.
Cloud SQL crea una nueva AC de servidor autofirmada para cada instancia cuando creas la instancia.
Para usar este ajuste, configura serverCaMode
en GOOGLE_MANAGED_INTERNAL_CA
al crear la instancia.
Puedes dejar sin especificar el ajuste de configuración serverCaMode
con la API Cloud SQL Admin o con la CLI de gcloud,
o seleccionar la opción Autoridad de certificación interna de Google en la consola Google Cloud .
En el siguiente diagrama se muestra la jerarquía de CAs por instancia.
Autoridades de certificación compartidas alojadas en el servicio de AC
La jerarquía de CA compartida es la configuración predeterminada del modo de CA de servidor cuando se crea una instancia mediante la consola Google Cloud .
Este modo de AC de servidor consta de una AC raíz y ACs de servidor subordinadas en cada región. Las ACs de servidor subordinadas emiten certificados de servidor y se comparten entre las instancias de la región. Cloud SQL se encarga de la rotación de las AC de servidor regionales compartidas y proporciona enlaces disponibles públicamente para descargar los paquetes de certificados de AC.
Puedes configurar una instancia para que use una jerarquía de AC de servidor en la que las AC emisoras se compartan entre las instancias de la misma región. Para usar este ajuste, configura serverCaMode
en GOOGLE_MANAGED_CAS_CA
al crear la instancia.
También puedes seleccionar Autoridad de certificación de CAS gestionada por Google en la consola de Google Cloud .
En el siguiente diagrama se muestra la jerarquía de CAs compartida.
Autoridades de certificación gestionadas por el cliente
Este modo de CA de servidor te permite configurar tu propia jerarquía de CAs en el Servicio de Autoridades de Certificación.
Para usar la opción de CA gestionada por el cliente en Cloud SQL, crea un grupo de CAs en la misma región que tus instancias de Cloud SQL. Después, crea al menos una autoridad de certificación.
Cuando crees la instancia de Cloud SQL, especifica el ID del grupo de CAs en el campo serverCaPool
y configura el campo serverCaMode
con el valor CUSTOMER_MANAGED_CAS_CA
.
El Servicio de AC proporciona una AC del grupo de ACs y la usa para emitir el certificado de servidor de la instancia.
Cuando creas ACs en el servicio de ACs, puedes crear una AC raíz o una AC subordinada en función de tu caso práctico. Por ejemplo, puede crear una AC subordinada si tiene previsto configurar una jerarquía de AC raíz o conectarse a una AC externa.
Selecciona la opción de AC gestionada por el cliente solo si quieres gestionar tus propias ACs y certificados. Para obtener más información, consulta Usar una CA gestionada por el cliente.
Cómo funciona la rotación de certificados de servidor
Cloud SQL ofrece formas de rotar el certificado de servidor para que el nuevo certificado se pueda sustituir sin problemas antes de que caduque el antiguo.
En el caso de las instancias que usan las jerarquías de AC por instancia, AC compartida o AC gestionada por el cliente, aproximadamente tres meses antes de que caduque el certificado de servidor de una instancia de Cloud SQL, los propietarios del proyecto reciben un correo de Cloud SQL en el que se indica que ha comenzado el proceso de rotación del certificado de esa instancia. En el correo se indica el nombre de la instancia y se informa de que Cloud SQL ha añadido un nuevo certificado de servidor al proyecto. El certificado de servidor actual sigue funcionando con normalidad. En la práctica, la instancia tiene dos certificados de servidor durante este periodo.
El comando de rotación de certificados de servidor que debes usar depende de si utilizas un certificado de servidor emitido por una AC por instancia o un certificado de servidor emitido por la AC compartida o la AC gestionada por el cliente.
Antes de que caduque el certificado de servidor actual, descarga el archivo server-ca.pem
, que contiene la información de los certificados de servidor actual y nuevo. Actualiza tus clientes de PostgreSQL para que usen el nuevo archivo. Para ello, cópialo en todas las máquinas host de tus clientes de PostgreSQL y sustituye el archivo actual.
Una vez que se hayan actualizado todos tus clientes de PostgreSQL, envía un comando rotate (para la AC por instancia) o un comando rotate (para la AC compartida o la AC gestionada por el cliente) a la instancia de Cloud SQL para cambiar al nuevo certificado de servidor. Una vez hecho esto, el certificado de servidor antiguo ya no se reconocerá y solo se podrá usar el nuevo.
Los certificados de cliente no se ven afectados por la rotación de certificados de servidor.Vencimiento del certificado SSL
En las instancias de Cloud SQL que usan ACs por instancia (serverCaMode
tiene el valor GOOGLE_MANAGED_INTERNAL_CA
), los certificados SSL tienen un periodo de validez de 10 años. Antes de que caduquen estos certificados, realiza la rotación de certificados de AC de servidor.
En las instancias que usan ACs compartidas (serverCaMode
tiene el valor GOOGLE_MANAGED_CAS_CA
), el periodo de validez de los certificados de servidor es de 1 año.
Antes de que caduque, realiza una rotación del certificado del servidor.
El certificado de la autoridad de certificación (AC) raíz tiene un periodo de validez de 25 años, y el certificado de la AC compartida subordinada, de 10 años.
Cloud SQL se encarga de su rotación.
Si usas una AC gestionada por el cliente (serverCaMode
tiene el valor CUSTOMER_MANAGED_CAS_CA
), puedes rotar el certificado de AC rotando las AC del grupo de AC que hayas creado. El periodo de vencimiento de una AC suele ser de 10 años, pero puedes configurar un periodo de validez más corto para tu AC en Servicio de Autoridades de Certificación.
Para rotar las ACs, usa el proceso de rotación de ACs del servicio de ACs. Para obtener más información, consulta Gestionar la rotación de la CA.
Si un cliente está configurado para verificar la CA o el nombre de host en el certificado del servidor, las conexiones de ese cliente a las instancias de Cloud SQL con certificados de servidor caducados fallarán. Para evitar interrupciones en las conexiones de los clientes, renueva el certificado del servidor antes de que caduque.
Tanto si usas el modo de servidor de AC por instancia, de AC compartido o de AC gestionado por el cliente, puedes restablecer la configuración SSL de tu instancia de Cloud SQL en cualquier momento.
Siguientes pasos
Configura SSL/TLS en tu instancia de Cloud SQL.
Consulta más información sobre cómo se gestiona el cifrado en Google Cloud.
- Conéctate mediante SSL/TLS a tu instancia de Cloud SQL.
- Gestionar SSL/TLS en tu instancia de Cloud SQL.
- Consulta más información sobre cómo usa PostgreSQL SSL/TLS.