En esta página, se describe cómo puedes usar la capa de conexión segura (SSL), ahora seguridad de la capa de transporte (TLS), desde tu aplicación para encriptar las conexiones a las instancias de Cloud SQL.
Descripción general
Cloud SQL admite la conexión a una instancia con el protocolo SSL/TLS. Las conexiones SSL/TLS proporcionan una capa de seguridad, ya que encriptan los datos en tránsito entre el cliente y la base de datos en la instancia de Cloud SQL. De manera opcional, tu conexión SSL/TLS puede realizar la verificación de identidad del servidor validando el certificado de servidor instalado en la instancia de Cloud SQL y la verificación de identidad del cliente validando el certificado de cliente instalado en el cliente.
Certificados de servidor
Cuando creas una instancia, Cloud SQL crea y, luego, instala de forma automática un certificado de servidor firmado por una autoridad certificadora (AC). Puedes descargar el certificado de la AC en la máquina anfitrión del cliente y usarlo para verificar la identidad de la AC y del servidor de Cloud SQL. De manera opcional, puedes elegir el tipo de CA que usa Cloud SQL para firmar el certificado del servidor.
Jerarquías de autoridades certificadoras (AC)
En esta sección, se describen los tres tipos de autoridad certificadora (AC) de servidor que puedes elegir para tus instancias de Cloud SQL. Tienes tres opciones:
CA por instancia: Con esta opción, una CA interna dedicada a cada instancia de Cloud SQL firma el certificado de servidor para esa instancia. Cloud SQL crea y administra estas AC. Para elegir la AC por instancia, selecciona Autoridad certificadora interna administrada por Google (Google Cloud consola) o especifica
GOOGLE_MANAGED_INTERNAL_CApara el parámetro de configuraciónserverCaMode(API de Cloud SQL Admin) o la marca--server-ca-mode(gcloud CLI) cuando creas la instancia. Si dejas el parámetro de configuración o la marca sin especificar cuando creas una instancia, esta opción es el valor predeterminado para la instancia. No puedes actualizar una instancia para usar la opción de CA por instancia si la instancia está configurada para usar una CA compartida o una CA administrada por el cliente.CA compartida: Con esta opción, se usa una jerarquía de CA que consta de una CA raíz y de CA de servidor subordinadas. Las AC subordinadas del servidor de una región firman los certificados del servidor y se comparten entre las instancias de la región. Usar una jerarquía de AC compartida es útil a medida que aumentas la cantidad de instancias en una región, ya que no necesitas administrar AC únicas para instancias individuales. Si cambias a una AC compartida (
GOOGLE_MANAGED_CAS_CA), puedes usar un solo paquete de AC regional para todas tus instancias de la región, lo que puede simplificar la configuración del cliente. Cloud SQL aloja y administra la AC raíz y las AC subordinadas del servidor en Google Cloud Certificate Authority Service (servicio de AC). Cloud SQL también controla la rotación de la AC raíz y las AC subordinadas del servidor, y proporciona vínculos disponibles de forma pública a los paquetes de certificados de la AC para su descarga. Para elegir la AC compartida, selecciona Autoridad certificada de CAS administrada por Google en la consola de Google Cloud o especificaGOOGLE_MANAGED_CAS_CApara el parámetro de configuraciónserverCaMode(API de Cloud SQL Admin) o la marca--server-ca-mode(gcloud CLI) cuando crees o edites la instancia. Puedes actualizar una instancia existente para usar una jerarquía de AC compartida si usas la opción de AC por instancia o la de AC administrada por el cliente.AC administrada por el cliente: Con esta opción, creas y administras tu propia jerarquía de AC. Elige esta opción si quieres administrar tus propias AC y certificados. Si usas una AC administrada por el cliente (
CUSTOMER_MANAGED_CAS_CA), puedes administrar tu propia jerarquía de AC y las políticas de rotación con CA Service. Esta configuración te brinda un mayor control y te ayuda a cumplir con los requisitos de cumplimiento. Para elegir una AC administrada por el cliente, debes crear un grupo de AC y una AC en el Servicio de AC. En Cloud SQL, especifica el grupo de AC y la autoridad certificadora de CAS administrada por el cliente (consola deGoogle Cloud ),CUSTOMER_MANAGED_CAS_CApara el parámetro de configuraciónserverCaMode(API de Cloud SQL Admin) o la marca--server-ca-mode(gcloud CLI) cuando crees o edites la instancia. Puedes actualizar una instancia existente para usar una jerarquía de AC administrada por el cliente si usas la opción de AC por instancia o la de AC compartida.
Después de crear o actualizar la instancia, puedes ver qué jerarquía de AC está configurada para
una instancia de Cloud SQL con el comando gcloud sql instances describe
o en la consola de Google Cloud .
Para obtener más información, consulta Visualiza la información de la instancia.
En la siguiente tabla, se comparan las tres opciones de jerarquía de AC.
| Función | AC por instancia | AC compartida | AC administrada por el cliente |
|---|---|---|---|
| Estructura de la AC | AC independiente para cada instancia | AC raíz y AC subordinadas compartidas entre instancias de la misma región | Jerarquía de AC que creas y administras |
| Atributos criptográficos | Clave RSA de 2,048 bits con algoritmo SHA256 | Algoritmo de firma digital de curva elíptica (ECDSA) con clave de 256 bits con algoritmo SHA384 | Algoritmo de firma digital de curva elíptica (ECDSA) con clave de 256 bits con algoritmo SHA384 |
| Período 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 * |
| Período de validez del certificado del servidor | 10 años | 1 año | 1 año** |
| ¿Rotación de la AC iniciada por el usuario? | Sí | No. Cloud SQL administra la rotación de la AC. | Sí |
| ¿Rotación iniciada por el usuario del certificado de servidor? | Sí | Sí | Sí |
| ¿Rotación automática del certificado de servidor? | No | Sí | Sí |
| Ancla de confianza de la AC para las conexiones TLS | La AC única por instancia es el ancla de confianza de la instancia correspondiente. | La AC raíz y las AC subordinadas son las anclas de confianza de todas las instancias de una región determinada. | Las AC que creas y administras son las anclas de confianza. |
| Verificación de identidad del servidor | Verificar la AC verifica la identidad del servidor, ya que cada instancia tiene una AC única. | La verificación del nombre de host junto con la verificación de la AC es necesaria para la verificación de identidad del servidor, ya que las AC del servidor se comparten entre las instancias. | Aunque es posible que la AC no se comparta entre instancias, es recomendable verificar el nombre de host junto con la AC. |
| Campo de nombre alternativo del sujeto (SAN) en los certificados de servidor | El campo SAN contiene el nombre de host (nombre de DNS de la instancia) solo para las instancias habilitadas con Private Service Connect. El nombre de host se puede usar para la verificación de identidad del servidor. Si te conectas a una instancia de Cloud SQL con el nombre de DNS como nombre de host, debes configurar la resolución de DNS. | El campo SAN contiene el nombre de host (nombre de DNS de la instancia) para todos los tipos de instancias. El nombre de host se puede usar para la verificación de identidad del servidor. Si te conectas a una instancia de Cloud SQL con el nombre de DNS como nombre de host, debes configurar la resolución de DNS. | El campo SAN contiene el nombre de host (nombre de DNS de la instancia) para todos los tipos de instancias. El nombre de host se puede usar para la verificación de 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, v1 y posteriores. | Requiere la versión 2.13.0 o 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 servicios | Ninguno |
No admite conexiones de los siguientes servicios de Google Cloud:
|
No admite conexiones de los siguientes servicios de Google Cloud:
|
* Para la opción de CA administrada por el cliente, el período de validez predeterminado de un certificado de la AC en CA Service es de 10 años. Tienes la opción de configurar un período de validez diferente para tus certificados de la AC. Un período de validez más corto para la AC podría requerir rotaciones de AC más frecuentes, y un período de validez inferior a un año podría afectar el período de validez de los certificados de tu servidor. Para obtener más información, consulta Administra la rotación de AC.
** Para la opción de AC administrada por el cliente, el período de validez predeterminado de un certificado de servidor es de un año. Sin embargo, si configuras un período de validez inferior a un año para tu certificado de la AC, el certificado del servidor tendrá un período de validez más corto. Para obtener más información sobre cómo configurar el período de validez de tu certificado de la AC en el momento de la creación, consulta Configuración del certificado de la AC y Crea 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 del servidor cuando creas una instancia con la gcloud CLI, la API de Cloud SQL Admin o Terraform.
Cloud SQL crea una nueva CA de servidor autofirmada para cada
instancia cuando la creas.
Para usar este parámetro de configuración,
establece serverCaMode en GOOGLE_MANAGED_INTERNAL_CA cuando crees la instancia.
Puedes dejar sin especificar el parámetro de configuración serverCaMode
con la API de Cloud SQL Admin o la gcloud CLI,
o seleccionar la opción Autoridad certificadora interna de Google en
la consola de Google Cloud .
No puedes actualizar el serverCaMode de una instancia que usa una jerarquía de AC compartida o
administrada por el cliente para usar la jerarquía de AC por instancia.
En el siguiente diagrama, se muestra la jerarquía de AC por instancia.
AC compartidas alojadas por CA Service
Este modo de AC del servidor consta de una AC raíz y AC de servidor subordinadas en cada región. Las AC de servidor subordinadas emiten certificados de servidor y se comparten entre las instancias de la región. Cloud SQL controla la rotación de las AC del servidor regional compartido y proporciona vínculos disponibles de forma pública para descargar los paquetes de certificados de la AC.
Cuando usas el modo de AC compartida, los clientes de tu base de datos deben confiar en la AC raíz y en la AC subordinada que emite los certificados de servidor para tu instancia.Para confiar en la AC raíz y en la AC subordinada de tu instancia, elige una de las siguientes opciones:
- Descarga el paquete
global.pempara confiar en la AC raíz y en todas sus AC subordinadas. - Descarga el paquete regional
para la ubicación regional de tu instancia para confiar en la AC raíz y las AC subordinadas
de esa región.
Por ejemplo, si tu instancia se encuentra en la región
asia-east1, descarga el paqueteasia-east1.pem. - Descarga el
server-ca.pemde tu instancia para confiar en la AC raíz y en la AC subordinada que emite el certificado de servidor de tu instancia.
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 parámetro de configuración,
establece serverCaMode en GOOGLE_MANAGED_CAS_CA cuando crees o edites
la instancia.
También puedes seleccionar
Autoridad certificadora de CAS administrada por Google en la consola de Google Cloud .
En el siguiente diagrama, se muestra la jerarquía de AC compartida.
ACs administradas por el cliente
Este modo de AC del servidor te permite configurar tu propia jerarquía de AC en el Servicio de CA.
Para usar la opción de AC administrada por el cliente
en Cloud SQL, crea un grupo de AC en la misma región
que tus instancias de Cloud SQL. Luego, crea al menos una CA.
Cuando crees la instancia de Cloud SQL, especifica el ID del
grupo de AC en el campo serverCaPool y configura el campo serverCaMode
con el valor CUSTOMER_MANAGED_CAS_CA.
El Servicio de CA proporciona una AC del grupo de AC y
la usa para emitir el certificado de servidor de la instancia.
Cuando creas AC en CA Service, puedes crear una AC raíz o una AC subordinada, según tu caso de uso. Por ejemplo, es posible que quieras crear una AC subordinada si planeas configurar una jerarquía de AC raíz o encadenar a una AC externa.
Selecciona la opción de AC administrada por el cliente solo si quieres administrar tus propias AC y certificados. Para obtener más información, consulta Usa una CA administrada por el cliente.
Cómo funciona la rotación del certificado de servidor
Cloud SQL proporciona formas de rotar el certificado de servidor, para que el certificado nuevo se pueda intercambiar sin problemas antes del vencimiento del certificado anterior.
Las instancias que usan la jerarquía de AC compartida o administrada por el cliente pueden habilitar la rotación automática de certificados de servidor para que se ejecute durante las actualizaciones de mantenimiento hasta 180 días antes del vencimiento.
En el caso de las instancias que usan las jerarquías de CA por instancia, CA compartida o CA administrada por el cliente, alrededor de tres meses antes de que venza el certificado de servidor de una instancia de Cloud SQL, los propietarios del proyecto reciben un correo electrónico de Cloud SQL en el que se indica que comenzó el proceso de rotación de certificados para esa instancia. En el correo electrónico, se proporciona el nombre de la instancia y se indica que Cloud SQL agregó un nuevo certificado de servidor al proyecto. El certificado de servidor existente seguirá funcionando con normalidad. De hecho, la instancia tiene dos certificados de servidor durante este período.
El comando de rotación de certificados del servidor que se usará depende de si usas un certificado del servidor emitido por una AC por instancia o un certificado del servidor emitido por la AC compartida o la AC administrada por el cliente.
Antes de que venza el certificado de servidor actual, descarga el archivo server-ca.pem nuevo,
que contiene la información del certificado de servidor actual y del
nuevo. Actualiza tus clientes de SQL Server a fin de que usen el archivo nuevo. Para ello, copia el archivo en todas tus máquinas anfitrionas de clientes de SQL Server y reemplaza el archivo existente.
Después de actualizar todos los clientes de SQL Server, envía un comando de rotación (para la CA por instancia) o un comando de rotación (para la CA compartida o la CA administrada por el cliente) a la instancia de Cloud SQL para rotar al nuevo certificado de servidor. Una vez hecho esto, ya no se reconoce el certificado de servidor anterior y solo se puede usar el nuevo.
Vencimiento del certificado SSL
En el caso de las instancias de Cloud SQL que usan AC por instancia
(serverCaMode se establece en GOOGLE_MANAGED_INTERNAL_CA),
los certificados SSL tienen un
período de vencimiento de 10 años. Antes de que venzan estos certificados, realiza la rotación de certificados de la AC del servidor.
Para las instancias que usan AC compartidas
(serverCaMode se establece en GOOGLE_MANAGED_CAS_CA),
el período de vencimiento de los certificados del servidor es de 1 año.
Antes de que venza, realiza una rotación del certificado de servidor
o habilita la rotación automática del certificado de servidor.
El certificado de la autoridad de certificación (AC) raíz tiene un período de vencimiento de 25 años, y el certificado de la AC subordinada compartida tiene un período de vencimiento de 10 años.
Cloud SQL controla su rotación.
Si usas una AC administrada por el cliente (serverCaMode se establece en CUSTOMER_MANAGED_CAS_CA),
puedes rotar el certificado de la AC rotando las AC en el
grupo de AC que creaste. El período de vencimiento de una CA suele ser de 10 años,
pero puedes configurar un período de validez más corto para tu CA en CA Service.
Para rotar las AC, usa el proceso de rotación de AC en CA Service. Para obtener más información, consulta Administra la rotación de AC.
Si un cliente está configurado para verificar la AC 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 vencidos fallarán. Para evitar la interrupción de las conexiones de cliente, rota el certificado del servidor antes de que venza.
Ya sea que uses la CA por instancia, la CA compartida o el modo de servidor de CA administrado por el cliente, puedes restablecer la configuración de SSL de tu instancia de Cloud SQL en cualquier momento.
Limitaciones
En esta sección, se abordan las limitaciones de la configuración de certificados SSL/TLS y Cloud SQL.
Limitaciones de la conexión de servicio
- Si tu instancia usa la opción de AC compartida (
GOOGLE_MANAGED_CAS_CA) o AC administrada por el cliente (CUSTOMER_MANAGED_CAS_CA) para su configuración deserverCaMode, no podrá admitir conexiones de los siguientes servicios de Google Cloud :- Entorno estándar de App Engine
- Entorno flexible de App Engine
- Servicios de Cloud Run que se ejecutan en un entorno de ejecución de primera generación
¿Qué sigue?
Configura SSL/TLS en la instancia de Cloud SQL.
Obtén más información sobre cómo se maneja la encriptación en Google Cloud.
- Obtén más información sobre cómo SQL Server usa las conexiones encriptadas.
- Administra SSL/TLS en tu instancia de Cloud SQL.