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 mediante la encriptación de los datos en tránsito entre el cliente y la base de datos en tu instancia de Cloud SQL. De manera opcional, tu conexión SSL/TLS puede realizar la verificación de identidad del servidor mediante la validación del certificado de servidor instalado en la instancia de Cloud SQL y la verificación de identidad del cliente mediante la validación del 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 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 AC que usa Cloud SQL para firmar el certificado de servidor.
Jerarquías de autoridades certificadoras (AC)
En esta sección, se describen los tres tipos de autoridad certificadora (AC) del servidor que puedes elegir para tus instancias de Cloud SQL. Tiene tres opciones:
AC por instancia: Con esta opción, una AC interna dedicada a cada instancia de Cloud SQL firma el certificado de servidor para esa instancia. Cloud SQL crea y administra estas ACs. Para elegir la AC por instancia, selecciona Autoridad certificadora interna administrada por Google (Google Cloud consola) o especifica
GOOGLE_MANAGED_INTERNAL_CApara el parámetroserverCaMode(--server-ca-mode) o la marca (API de Cloud SQL Admin) cuando crees la instancia. Si dejas el parámetro 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 AC por instancia si la instancia está configurada para usar una AC compartida o una AC administrada por el cliente.AC compartida: Con esta opción, se usa una jerarquía de AC que consta de una AC raíz y ACs de servidor subordinadas. Las ACs de servidor subordinadas en una región firman los certificados de 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 ACs ú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 en la región, lo que puede simplificar la configuración del cliente. Cloud SQL aloja y administra la AC raíz y las ACs de servidor subordinadas en Google Cloud Certificate Authority Service (servicio de CA). Cloud SQL también controla la rotación de la AC raíz y las ACs de servidor subordinadas, y proporciona vínculos disponibles públicamente para descargar los paquetes de certificados de la AC. Para elegir la AC compartida, especificaGOOGLE_MANAGED_CAS_CApara el parámetroserverCaMode(API de Cloud SQL Admin) o la marca--server-ca-mode(CLI de gcloud) 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 ACs y certificados. Si usas una AC administrada por el cliente (
CUSTOMER_MANAGED_CAS_CA), puedes administrar tu propia jerarquía de AC y políticas de rotación con el servicio de CA. Esta configuración te brinda un mayor control y te ayuda a cumplir con los requisitos de cumplimiento. Para elegir la AC administrada por el cliente, debes crear un grupo de CA y una CA en el servicio de CA. En Cloud SQL, especifica el grupo de CA yCUSTOMER_MANAGED_CAS_CApara el parámetroserverCaMode(API de Cloud SQL Admin) o la marca--server-ca-mode(CLI de gcloud) 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 describeo en la Google Cloud consola.
Para obtener más información, consulta Cómo ver 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 separada para cada instancia | AC raíz y ACs subordinadas compartidas entre instancias en la misma región | Jerarquía de AC que creas y administras |
| Atributos criptográficos | Clave RSA de 2048 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 ACs subordinadas | Configurable * |
| Período 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. Cloud SQL administra la rotación de la AC. | Sí |
| ¿Rotación del certificado de servidor iniciada por el usuario? | Sí | Sí | Sí |
| ¿Rotación automática del certificado de servidor? | No | Sí | Sí |
| Ancla de confianza de la AC para conexiones TLS | La AC única por instancia es el ancla de confianza para la instancia correspondiente. | La AC raíz y las ACs subordinadas son las anclas de confianza para todas las instancias de una región determinada. | Las ACs que creas y administras son las anclas de confianza. |
| Verificación de identidad del servidor | La verificación de la AC verifica la identidad del servidor, ya que cada instancia tiene una AC única. | Se requiere la verificación del nombre de host junto con la verificación de la AC para la verificación de identidad del servidor, ya que las ACs del servidor se comparten entre las instancias. | Aunque la AC no se comparta entre las instancias, es posible que desees verificar el nombre de host junto con la verificación de la AC. |
| Campo 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 la versión del proxy de autenticación de Cloud SQL | Admite todas las versiones del proxy de autenticación de Cloud SQL, la v1 y versiones 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 servicio | Ninguno | No admite conexiones de los siguientes Google Cloud servicios: |
No admite conexiones de los siguientes Google Cloud
servicios:
|
* Para la opción de AC administrada por el cliente, el período de validez predeterminado de un certificado de la AC en el servicio de CA es de 10 años. Tienes la opción de configurar un período de validez diferente para tus certificados de 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 tus certificados de servidor. Para obtener más información, consulta Administra la rotación de la 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, tu certificado de 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 cuando se crea, consulta Configuración del certificado de la AC y Crea una AC raíz.
AC por instancia alojada por 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 CLI de gcloud, la API de Cloud SQL Admin o Terraform.
Cloud SQL crea una nueva AC de servidor autofirmada para cada instancia cuando creas la instancia.
Para usar esta configuración, configura serverCaMode en GOOGLE_MANAGED_INTERNAL_CA cuando crees la instancia.
Puedes dejar sin especificar el parámetro de serverCaMode
configuración con la API de Cloud SQL Admin o la CLI de gcloud,
o seleccionar la opción Autoridad certificadora interna de Google en
la Google Cloud consola.
No puedes actualizar el serverCaMode de una instancia que usa una AC compartida o una jerarquía de AC 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.
ACs compartidas alojadas por el servicio de CA
Este modo de AC del 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 controla la rotación de las ACs de servidor regionales compartidas y proporciona vínculos disponibles públicamente para descargar los paquetes de certificados de la AC.
Cuando usas el modo de AC compartida, tus clientes de base de datos deben confiar tanto en la AC raíz como en la AC subordinada que emite los certificados de servidor para tu instancia.Para confiar tanto en la AC raíz como en la AC subordinada de tu instancia, realiza una de las siguientes acciones:
- Descarga el
global.pempaquete para confiar en la AC raíz y en todas sus ACs subordinadas. - Descarga el paquete regional
para la ubicación regional de tu instancia para confiar en la AC raíz y las ACs 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.pempara tu instancia para confiar en la AC raíz y en la AC subordinada que emite el certificado de servidor para tu instancia.
Puedes configurar una instancia para usar una jerarquía de AC del servidor en la que las ACs emisoras se compartan entre las instancias de la misma región. Para usar esta configuración, configura 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 Google Cloud consola.
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 CA en la misma región que tus instancias de Cloud SQL. Luego, crea al menos una AC.
Cuando crees la instancia de Cloud SQL, especifica el ID del grupo de CA en el campo serverCaPool y configura el campo serverCaMode con el valor CUSTOMER_MANAGED_CAS_CA.
El servicio de CA proporciona una CA del grupo de CA y la usa para emitir el certificado de servidor para la instancia.
Cuando creas ACs en el servicio de CA, puedes crear una AC raíz o una AC subordinada según tu caso de uso. Por ejemplo, es posible que desees crear una AC subordinada si planeas configurar una jerarquía de AC raíz o encadenar hasta una AC externa.
Selecciona la opción de AC administrada por el cliente solo si quieres administrar tus propias ACs y certificados. Para obtener más información, consulta Usa una AC 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 del certificado 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 AC por instancia, AC compartida o AC administrada por el cliente, alrededor de tres meses antes de que el certificado de servidor de una instancia de Cloud SQL se venza, 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 en 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 del certificado de servidor que se usará depende de si usas un certificado de servidor emitido por una AC por instancia o un certificado de servidor emitido por la AC compartida o 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 AC por instancia) o un comando de rotación (para la AC compartida o 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 ACs por instancia (serverCaMode está configurado como 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 del certificado de la AC del servidor.
En el caso de las instancias que usan ACs compartidas (serverCaMode está configurado como GOOGLE_MANAGED_CAS_CA), el período de vencimiento de los certificados de servidor es de 1 año.
Antes del vencimiento, 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 raíz tiene un período de vencimiento de 25 años, y el certificado de la AC compartida subordinada 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 está configurado como CUSTOMER_MANAGED_CAS_CA), puedes realizar la rotación del certificado de la AC rotando las ACs en el grupo de CA que creaste. El período de vencimiento de una AC suele ser de 10 años, pero puedes configurar un período de validez más corto para tu AC en el servicio de CA.
Para rotar las ACs, usa el proceso de rotación de la AC en el servicio de CA. Para obtener más información, consulta Administra la rotación de la AC.
Si un cliente está configurado para verificar la AC o el nombre de host en el certificado de servidor, fallarán las conexiones de ese cliente a las instancias de Cloud SQL con certificados de servidor vencidos. Para evitar interrupciones en las conexiones del cliente, rota el certificado de servidor antes de que venza.
Ya sea que uses la AC por instancia, la AC compartida o el modo de servidor de AC administrada por el cliente , puedes restablecer la configuración SSL de la instancia de Cloud SQL en cualquier momento.
Limitaciones
En esta sección, se abarcan las limitaciones con 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 de AC administrada por el cliente (CUSTOMER_MANAGED_CAS_CA) para su configuraciónserverCaMode, la instancia no puede admitir conexiones de los siguientes Google Cloud servicios:
¿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.