En esta página se describe cómo configurar un nombre de sistema de nombres de dominio (DNS) personalizado para tu instancia de Cloud SQL.
Información general
Puedes configurar una instancia de Cloud SQL para que tus aplicaciones puedan conectarse mediante un nombre DNS personalizado gestionado por tu organización. Si quieres usar un nombre DNS personalizado para conectarte a una instancia de Cloud SQL en lugar de una dirección IP, configura un nombre alternativo de asunto (SAN) personalizado. Puedes configurar un SAN personalizado cuando crees o actualices una instancia.
Cuando añades un nombre de DNS personalizado como configuración SAN personalizada a tu instancia, Cloud SQL inserta el nombre de DNS personalizado en el campo SAN del certificado de servidor de la instancia. Esta personalización te permite usar el nombre de DNS personalizado con la validación de nombre de host de forma segura.
Puedes añadir una lista separada por comas de hasta tres nombres DNS personalizados a la configuración SAN personalizada. Por motivos de seguridad, solo puedes usar una configuración SAN personalizada en las instancias que configures con CUSTOMER_MANAGED_CAS_CA
como modo de CA del servidor.
Una vez que hayas configurado el nombre de DNS personalizado de tu instancia, podrás usarlo para conectar tus clientes o aplicaciones de bases de datos, incluidos los conectores de lenguaje de Cloud SQL y el proxy de autenticación de Cloud SQL.
Flujo de trabajo
Para configurar un nombre de DNS personalizado para una instancia, sigue estos pasos:
- Crea una instancia configurada con una CA gestionada por el cliente.
- Añade valores SAN personalizados a la instancia. Los valores SAN personalizados se insertan en el campo SAN del certificado de servidor de la instancia.
- Determina la dirección IP de la instancia.
- Crea registros DNS personalizados para tu instancia.
- Conéctate a la instancia mediante el nombre DNS personalizado.
Antes de empezar
Antes de configurar un nombre de DNS personalizado para tu instancia, asegúrate de que tienes los roles y permisos necesarios.
Si vas a crear una instancia de Cloud SQL, para usar SAN personalizado, tu instancia también debe usar una autoridad de certificación (CA) gestionada por el cliente para su modo de CA de servidor.
Crear una instancia con valores SAN personalizados
Para crear una instancia con valores SAN personalizados, usa el siguiente comando gcloud sql instances create
:
gcloud
gcloud sql instances create "INSTANCE_NAME" \ --database-version=DATABASE_VERSION \ --project=PROJECT_ID \ --region=REGION \ --server-ca-mode=CUSTOMER_MANAGED_CAS_CA \ --server-ca-pool=projects/PROJECT_ID_CAS/locations/REGION/caPools/CA_POOL_ID --custom-subject-alternative-names=CUSTOM_DNS_NAME
Haz las siguientes sustituciones:
INSTANCE_NAME
con el nombre de la instancia de Cloud SQL que quieras crear.DATABASE_VERSION
con laenum
de la versión de la instancia de Cloud SQL que quieras crear.PROJECT_ID
por el ID del proyecto en el que tienes previsto crear tus instancias de Cloud SQL.PROJECT_ID_CAS
por el ID del proyecto en el que has creado tu CA_POOL_ID. Este proyecto puede ser el mismo o diferente del proyecto en el que quieras crear tu instancia de Cloud SQL.REGION
con la región en la que has creado el grupo de ACs. Debes crear tu instancia en la misma región que el grupo de CAs.CA_POOL_ID
con el ID del grupo de ACs que has creado.CUSTOM_DNS_NAME
con un máximo de tres nombres de DNS personalizados separados por comas y sin espacios entre los valores. Por ejemplo,develop.example.com,test.example.com,production.example.com
.
Terraform
Para crear una instancia con valores SAN personalizados, usa un recurso de Terraform. En el siguiente ejemplo también se crean los recursos necesarios para la nueva instancia.
Añadir o actualizar valores SAN personalizados de una instancia
Para añadir o actualizar valores SAN personalizados de una instancia, sigue estos pasos:
gcloud
gcloud sql instances patch INSTANCE_NAME \ --custom-subject-alternative-names=CUSTOM_DNS_NAME
Haz las siguientes sustituciones:
INSTANCE_NAME
con el nombre de la instancia de Cloud SQL que quieras actualizar.CUSTOM_DNS_NAME
con un máximo de tres nombres de DNS personalizados, separados por comas y sin espacios entre los valores. Por ejemplo,develop.example.com,new-test.example.com,production.example.com
.
Terraform
Para actualizar una instancia que ya tenga valores SAN personalizados, usa un recurso de Terraform.
Borrar todos los valores SAN personalizados de una instancia
Para borrar todos los valores SAN personalizados de una instancia, haz lo siguiente:
gcloud
gcloud sql instances patch INSTANCE_NAME \ --clear-custom-subject-alternative-names
Sustituye INSTANCE_NAME
por el nombre de la instancia de Cloud SQL que quieras actualizar.
Crear registros DNS personalizados
Antes de poder conectarte a la instancia mediante el nombre de DNS personalizado con tus clientes y aplicaciones, configura la asignación entre el nombre de DNS y la dirección IP. Esta asignación se conoce como resolución de DNS. Si te conectas de forma privada, crea el registro DNS en una zona DNS privada en la red de nube privada virtual (VPC) correspondiente.
Para crear registros DNS personalizados para tu instancia, sigue estos pasos:
Obtén la dirección IP de tu instancia. Ejecuta el siguiente comando:
gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID
Haz las siguientes sustituciones:
- INSTANCE_NAME: el nombre de la instancia de Cloud SQL
- PROJECT_ID: el ID o el número de proyecto del proyecto Google Cloud que contiene la instancia.
En la respuesta, busca el campo
ipAddresses:
.Por ejemplo:
ipAddresses: - ipAddress: 192.0.2.4 type: PRIVATE
Puedes obtener la dirección IP privada de una instancia configurada para el acceso a servicios privados, Private Service Connect o ambos.
Añade dos registros DNS a una zona DNS que utilice tu aplicación. Puedes usar un servidor DNS que gestiones tú o la zona privada de Cloud DNS que utilice tu aplicación.
- Crea un registro
A
para la dirección IP de la instancia. - Crea un registro
TXT
que contenga el nombre de conexión de la instancia.
Los clientes de bases de datos estándar usan el registro
A
para buscar la dirección IP y establecer la conexión. Los conectores de lenguaje de Cloud SQL y el proxy de autenticación de Cloud SQL usan el registroTXT
para buscar el nombre de conexión de la instancia.Por ejemplo, la cadena de conexión de tu instancia es
my-project:region:my-instance
, pero quieres conectarte mediante el nombre DNSprod-db.mycompany.example.com
. Si la dirección IP de la instancia en la red de tu empresa es192.0.2.4
, crea los siguientes registros DNS:Record type: A Name: prod-db.mycompany.example.com Value: 192.0.2.4 TTL: 600 Record type: TXT Name: prod-db.mycompany.example.com Value: my-project:region:my-instance TTL: 600
- Crea un registro
Conectarse a una instancia mediante un nombre DNS personalizado
Cuando te conectes a la instancia de Cloud SQL para SQL Server, configura el nombre de DNS personalizado como nombre de host. A continuación, habilita la verificación de identidad del servidor especificando la marca-N
para sqlcmd
o seleccionando la opción
Encrypt Connection/Encryption (Cifrar conexión/Cifrado) de SSMS.
Otros controladores de SQL Server tienen marcas o configuraciones similares.
Si te conectas a una instancia privada de Cloud SQL desde una red externa, debes configurar tu instancia de Cloud SQL y su red de nube privada virtual (VPC) para permitir conexiones externas y para que Cloud DNS se comunique con los sistemas on-premise. Para obtener más información sobre esta configuración, consulta Conectarse desde una fuente externa y Configurar DNS para sistemas on-premise.
Limitaciones
- No puedes añadir más de tres nombres DNS como valores SAN personalizados al certificado de servidor de una instancia de Cloud SQL.
- La longitud máxima de un nombre DNS que puedes añadir al certificado como valor SAN personalizado de una instancia es de 253 caracteres.
- Los nombres de DNS que añadas al certificado de una instancia no pueden incluir caracteres comodín (
*
) ni puntos finales. Por ejemplo,test.example.com.
no está permitido. - Los nombres de DNS deben ser válidos, tal como se especifica en la RFC 1034.
- Solo puede especificar valores SAN personalizados para instancias de
CUSTOMER_MANAGED_CAS_CA
.
Siguientes pasos
- Gestionar certificados SSL/TLS en tu instancia de Cloud SQL.
- Consulta más información sobre cómo se gestiona el cifrado en Google Cloud.