En esta página, se describe cómo usar Private Service Connect para conectarte a una instancia de Cloud SQL.
Puedes usar Private Service Connect para conectarte a una instancia principal de Cloud SQL o a cualquiera de sus réplicas de lectura desde varias redes de nube privada virtual (VPC) que pertenezcan a organizaciones, grupos, equipos o proyectos diferentes.
Antes de comenzar
La compatibilidad con Private Service Connect con una instancia de Cloud SQL está disponible para gcloud CLI
versiones 416.0.0 y posteriores.
Funciones de usuario
En la siguiente tabla, se proporciona información sobre los roles necesarios para usar Private Service Connect con una instancia de Cloud SQL:
Rol | Descripción |
---|---|
compute.networkAdmin |
Otorga control total sobre la red de VPC que inicia una conexión a una instancia de Cloud SQL. Puedes crear y administrar direcciones IP, reglas de firewall y extremos de Private Service Connect. Si usas Private Service Connect para conectarte a una instancia de Cloud SQL desde varias redes de VPC, cada red tiene su propio administrador. |
dns.admin |
Otorga control total sobre los recursos de Cloud DNS, lo que incluye Zonas y registros DNS. |
cloudsql.admin |
Proporciona control total de una instancia de Cloud SQL y controla la instancia durante su ciclo de vida. |
cloudsql.instanceUser |
Proporciona acceso a la instancia de Cloud SQL. Si te conectas a través del cliente del proxy de autenticación de Cloud SQL, debes tener el rol de Cliente de Cloud SQL. Si te conectas directamente, no necesitas roles ni permisos de Identity and Access Management (IAM). |
Crea una instancia de Cloud SQL
Puedes crear una instancia y habilitar Private Service Connect para ella con gcloud CLI, Terraform o la API.
gcloud
A fin de crear una instancia y habilitar Private Service Connect para ella, usa el comando gcloud sql instances create
:
gcloud sql instances create INSTANCE_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --availability-type=AVAILABILITY_TYPE \ --no-assign-ip \ --database-version=DATABASE_VERSION --cpu=NUMBER_OF_vCPUs \ --memory=MEMORY_SIZE \ --root-password=ROOT_PASSWORD
Realiza los siguientes reemplazos:
- INSTANCE_NAME: El nombre de la instancia.
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia.
- REGION_NAME: el nombre de la región para la instancia.
ALLOWED_PROJECTS: Una lista de IDs o números de proyectos permitidos, separados por comas. Si un proyecto no aparece en esta lista, no puedes usarlo para crear una instancia y habilitar Private Service Connect para dicho proyecto.
- AVAILABILITY_TYPE: Habilita la alta disponibilidad en la instancia. Para este parámetro, especifica uno de los siguientes valores:
REGIONAL
: habilita la alta disponibilidad y se recomienda para las instancias de producción. La instancia se conmuta por error a otra zona dentro de la región que seleccionaste.ZONAL
: no proporciona capacidad de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y quitar la alta disponibilidad de las instancias, consulta las secciones Configura una instancia existente para alta disponibilidad y Desactiva la alta disponibilidad para una instancia.
- DATABASE_VERSION: la versión de la base de datos para la instancia (por ejemplo,
SQLSERVER_2019_STANDARD
). - NUMBER_OF_vCPUs: la cantidad de núcleos para la instancia.
- MEMORY_SIZE: la cantidad de memoria para la instancia.
- ROOT_PASSWORD: la contraseña del usuario
root
de Cloud SQL.
Terraform
Para crear una instancia con Private Service Connect habilitado, usa el recurso google_sql_database_instance
de Terraform.
Para aplicar tu configuración de Terraform en un proyecto de Google Cloud, completa los pasos de las siguientes secciones.
Prepara Cloud Shell
- Inicia Cloud Shell
-
Establece el proyecto de Google Cloud predeterminado en el que deseas aplicar tus configuraciones de Terraform.
Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si configuras valores explícitos en el archivo de configuración de Terraform.
Prepara el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
-
En Cloud Shell, crea un directorio y un archivo nuevo dentro de ese directorio. El nombre del archivo debe tener la extensión
.tf
, por ejemplo,main.tf
. En este instructivo, el archivo se denominamain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.
Copia el código de muestra en el
main.tf
recién creado.De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.
- Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
- Guarda los cambios.
-
Inicialice Terraform. Solo debes hacerlo una vez por directorio.
terraform init
De manera opcional, incluye la opción
-upgrade
para usar la última versión del proveedor de Google:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
terraform plan
Corrige la configuración según sea necesario.
-
Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe
yes
cuando se te solicite:terraform apply
Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.
- Abre tu proyecto de Google Cloud para ver los resultados. En la consola de Google Cloud, navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.
REST v1
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia.
- INSTANCE_NAME: El nombre de la instancia.
- REGION_NAME: el nombre de la región para la instancia.
- ROOT_PASSWORD: la contraseña del usuario
root
de Cloud SQL. - AVAILABILITY_TYPE: Habilita la alta disponibilidad en la instancia. Para este parámetro, especifica uno de los siguientes valores:
REGIONAL
: habilita la alta disponibilidad y se recomienda para las instancias de producción. La instancia se conmuta por error a otra zona dentro de la región que seleccionaste.ZONAL
: no proporciona capacidad de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y quitar la alta disponibilidad de las instancias, consulta las secciones Configura una instancia existente para alta disponibilidad y Desactiva la alta disponibilidad para una instancia.
ALLOWED_PROJECTS: una lista de IDs o números de proyectos permitidos, separados por comas. Si un proyecto no aparece en esta lista, no puedes usarlo para crear una instancia y habilitar Private Service Connect para dicho proyecto.
- MACHINE_TYPE: un valor de string enumerado que representa el tipo de máquina para la instancia. Por ejemplo:
db-custom-NUMBER_OF_vCPUs-MEMORY_SIZE
, en el que NUMBER_OF_vCPUs y MEMORY_SIZE son la cantidad de núcleos y de memoria que deseas para la instancia.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Cuerpo JSON de la solicitud:
{ "name": "INSTANCE_NAME", "project": PROJECT_ID", "region": "REGION_NAME", "databaseVersion": "SQLSERVER_2019_STANDARD", "rootPassword": "ROOT_PASSWORD", "kind": "sql#instance", "settings": { "availabilityType": "AVAILABILITY_TYPE", "ipConfiguration": { "ipv4Enabled": false, "pscConfig": { "allowedConsumerProjects": [ "ALLOWED_PROJECTS" ], "pscEnabled": true } }, "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "tier": "MACHINE_TYPE" } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "RUNNING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "2023-06-14T18:48:35.499Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia.
- INSTANCE_NAME: El nombre de la instancia.
- REGION_NAME: el nombre de la región para la instancia.
- ROOT_PASSWORD: la contraseña del usuario
root
de Cloud SQL. - AVAILABILITY_TYPE: Habilita la alta disponibilidad en la instancia. Para este parámetro, especifica uno de los siguientes valores:
REGIONAL
: habilita la alta disponibilidad y se recomienda para las instancias de producción. La instancia se conmuta por error a otra zona dentro de la región que seleccionaste.ZONAL
: no proporciona capacidad de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y quitar la alta disponibilidad de las instancias, consulta las secciones Configura una instancia existente para alta disponibilidad y Desactiva la alta disponibilidad para una instancia.
ALLOWED_PROJECTS: una lista de IDs o números de proyectos permitidos, separados por comas. Si un proyecto no aparece en esta lista, no puedes usarlo para crear una instancia y habilitar Private Service Connect para dicho proyecto.
- MACHINE_TYPE: un valor de string enumerado que representa el tipo de máquina para la instancia. Por ejemplo:
db-custom-NUMBER_OF_vCPUs-MEMORY_SIZE
, en el que NUMBER_OF_vCPUs y MEMORY_SIZE son la cantidad de núcleos y de memoria que deseas para la instancia.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances
Cuerpo JSON de la solicitud:
{ "name": "INSTANCE_NAME", "project": PROJECT_ID", "region": "REGION_NAME", "databaseVersion": "SQLSERVER_2019_STANDARD", "rootPassword": "ROOT_PASSWORD", "kind": "sql#instance", "settings": { "availabilityType": "AVAILABILITY_TYPE", "ipConfiguration": { "ipv4Enabled": false, "pscConfig": { "allowedConsumerProjects": [ "ALLOWED_PROJECTS" ], "pscEnabled": true } }, "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "tier": "MACHINE_TYPE" } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "RUNNING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "2023-06-14T18:48:35.499Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Obtén el adjunto del servicio
Después de crear una instancia de Cloud SQL con Private Service Connect habilitado, obtén el URI del adjunto de servicio y úsalo para crear el extremo de Private Service Connect.
gcloud
Para ver la información resumida de una instancia con Private Service Connect habilitado, como el campo pscServiceAttachmentLink
que muestra el URI que apunta al adjunto de servicio de la instancia, usa el comando gcloud sql instances describe
:
gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID
Realiza los siguientes reemplazos:
- INSTANCE_NAME: el nombre de la instancia de Cloud SQL a la que se pueden conectar los extremos de Private Service Connect en las redes de VPC
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia
En el siguiente ejemplo, se muestra una respuesta de ejemplo para este comando:
gcloud sql instances describe myinstance \ --project=12345 ... pscServiceAttachmentLink: projects/45678/regions/myregion/serviceAttachments/myserviceattachment
Terraform
Para obtener el URI del adjunto de servicio, usa el recurso google_compute_address
de Terraform
Para aplicar tu configuración de Terraform en un proyecto de Google Cloud, completa los pasos de las siguientes secciones.
Prepara Cloud Shell
- Inicia Cloud Shell
-
Establece el proyecto de Google Cloud predeterminado en el que deseas aplicar tus configuraciones de Terraform.
Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si configuras valores explícitos en el archivo de configuración de Terraform.
Prepara el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
-
En Cloud Shell, crea un directorio y un archivo nuevo dentro de ese directorio. El nombre del archivo debe tener la extensión
.tf
, por ejemplo,main.tf
. En este instructivo, el archivo se denominamain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.
Copia el código de muestra en el
main.tf
recién creado.De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.
- Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
- Guarda los cambios.
-
Inicialice Terraform. Solo debes hacerlo una vez por directorio.
terraform init
De manera opcional, incluye la opción
-upgrade
para usar la última versión del proveedor de Google:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
terraform plan
Corrige la configuración según sea necesario.
-
Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe
yes
cuando se te solicite:terraform apply
Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.
- Abre tu proyecto de Google Cloud para ver los resultados. En la consola de Google Cloud, navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.
Crear un extremo de Private Service Connect
Puedes reservar una dirección IP interna para el extremo de Private Service Connect y crear un extremo con esa dirección. Para crear el extremo, necesitas el URI del adjunto de servicio y los proyectos permitidos para la instancia.
gcloud
Si deseas reservar una dirección IP interna para el extremo de Private Service Connect, usa el comando
gcloud compute addresses create
:gcloud compute addresses create ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --subnet=SUBNET_NAME \ --addresses=INTERNAL_IP_ADDRESS
Realiza los siguientes reemplazos:
- ADDRESS_NAME: el nombre de la dirección IP interna.
- PROJECT_ID: el ID o el número del proyecto de Google Cloud para el extremo.
- REGION_NAME: es el nombre de la región para el extremo.
- SUBNET_NAME: el nombre de la subred de la dirección IP.
- INTERNAL_IP_ADDRESS: la dirección IP que se reservará. Esta dirección IP debe estar dentro del rango de IP principal de la subred. La dirección IP puede ser una dirección RFC 1918 o una subred con rangos que no sean RFC.
Para verificar que la dirección IP esté reservada, usa el comando
gcloud compute addresses list
:gcloud compute addresses list ADDRESS_NAME \ --project=PROJECT_ID
En la respuesta, verifica que aparezca un estado
RESERVED
para la dirección IP.Para crear el extremo de Private Service Connect y apuntarlo al adjunto de servicio de Cloud SQL, usa el comando
gcloud compute forwarding-rules create
:gcloud compute forwarding-rules create ENDPOINT_NAME \ --address=ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --network=NETWORK_NAME \ --target-service-attachment=SERVICE_ATTACHMENT_URI
Realiza los siguientes reemplazos:
- ENDPOINT_NAME: el nombre del extremo
- NETWORK_NAME: el nombre de la red de VPC para el extremo
- SERVICE_ATTACHMENT_URI: el URI del adjunto del servicio
Para verificar que el adjunto de servicio acepte el extremo, usa el comando
gcloud compute forwarding-rules describe
:gcloud compute forwarding-rules describe ENDPOINT_NAME \ --project=PROJECT_ID \ --region=REGION_NAME
En la respuesta, verifica que aparezca un estado
ACCEPTED
para el campopscConnectionStatus
. El extremo puede conectarse al adjunto de servicio.
Conectarse a una instancia de Cloud SQL
Puedes conectarte a una instancia de Cloud SQL con Private Service Connect habilitado mediante una dirección IP interna, un registro DNS, el proxy de autenticación de Cloud SQL, los conectores de lenguaje de Cloud SQL o cualquier otra aplicación de Google Cloud.
Configura una zona administrada de DNS y un registro DNS
Cloud SQL no crea registros DNS de forma automática. En su lugar, la respuesta de la API de búsqueda de instancias proporciona un nombre de DNS sugerido. Te recomendamos que crees el registro DNS en una zona del DNS privado en la red de VPC correspondiente. Esto proporciona una forma coherente de usar el proxy de autenticación de Cloud SQL para conectarte desde diferentes redes.
gcloud
Para ver información resumida sobre una instancia de Cloud SQL, incluido el nombre de DNS de la instancia, usa el comando
gcloud sql instances describe
:gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID
Realiza los siguientes reemplazos:
- INSTANCE_NAME: el nombre de la instancia de Cloud SQL
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia
En la respuesta, verifica que aparezca el nombre de DNS. Este nombre tiene el siguiente patrón:
INSTANCE_UID.PROJECT_DNS_LABEL.REGION_NAME.sql.goog.
. Por ejemplo:1a23b4cd5e67.1a2b345c6d27.us-central1.sql.goog.
.Para crear una zona del DNS privada, usa el comando
gcloud dns managed-zones create
. Esta zona está asociada con la red de VPC que se usa para conectarse a la instancia de Cloud SQL a través del extremo de Private Service Connect.gcloud dns managed-zones create ZONE_NAME \ --project=PROJECT_ID \ --description=DESCRIPTION \ --dns-name=DNS_NAME \ --networks=NETWORK_NAME \ --visibility=private
Realiza los siguientes reemplazos:
- ZONE_NAME: el nombre de la zona del DNS
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la zona
- DESCRIPTION: una descripción de la zona (por ejemplo, una zona del DNS para la instancia de Cloud SQL)
- DNS_NAME: el nombre de DNS para la zona, como
REGION_NAME.sql.goog.
(en el que REGION_NAME es el nombre de la región de la zona) - NETWORK_NAME es el nombre de la red de VPC.
Después de crear el extremo de Private Service Connect, para crear un registro DNS en la zona, usa el comando
gcloud dns record-sets create
:gcloud dns record-sets create DNS_NAME \ --project=PROJECT_ID \ --type=RRSET_TYPE \ --rrdatas=RR_DATA \ --zone=ZONE_NAME
Realiza los siguientes reemplazos:
- DNS_NAME: el nombre de DNS que recuperaste antes en este procedimiento.
- RRSET_TYPE: el tipo de registro de recursos del conjunto de registros DNS (por ejemplo,
A
). - RR_DATA: la dirección IP asignada para el extremo de Private Service Connect (por ejemplo,
198.51.100.5
). También puedes ingresar varios valores, comorrdata1 rrdata2 rrdata3
(por ejemplo,10.1.2.3 10.2.3.4 10.3.4.5
).
Conéctate directamente con un registro DNS
Antes de conectarte a una instancia de Cloud SQL mediante un registro DNS, realiza las siguientes acciones:
- Crea un extremo de Private Service Connect.
- Confirma que el adjunto de servicio de la instancia acepte el extremo. Para verificar que el estado del extremo sea
ACCEPTED
, verifica el estado. - Configura una zona administrada de DNS y un registro DNS.
Una vez que cumplas con estas condiciones, usa el nombre de DNS para acceder a la instancia desde cualquier red de VPC donde creaste el extremo.
gcloud
Para recuperar el registro DNS del extremo de Private Service Connect, usa el comando
gcloud compute addresses describe
:gcloud compute addresses describe DNS_RECORD \ --project=PROJECT_ID \ --region=REGION_NAME
Realiza los siguientes reemplazos:
- DNS_RECORD: es el registro DNS del extremo.
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene el extremo
- REGION_NAME: el nombre de la región para el extremo
-
Para conectarte a la instancia de Cloud SQL, usa el registro DNS.
sqlcmd -S DNS_RECORD -d DATABASE_NAME -U USERNAME
Realiza los siguientes reemplazos:
- DNS_RECORD: el registro DNS del extremo
- DATABASE_NAME: el nombre de la base de datos de Cloud SQL para SQL Server que se encuentra dentro de la instancia
- USERNAME: el nombre del usuario que se conecta a la instancia
Conéctate directamente a través de una dirección IP interna
Antes de conectarte a una instancia de Cloud SQL con Private Service Connect habilitado, completa las siguientes acciones:
- Crea un extremo de Private Service Connect.
- Confirma que el adjunto de servicio de la instancia acepte el extremo. Para verificar que el estado del extremo sea
ACCEPTED
, verifica el estado.
Una vez que cumplas con estas condiciones, usa la dirección IP del extremo para acceder a la instancia desde cualquier red de VPC donde creaste el extremo.
gcloud
Para recuperar la dirección IP del extremo de Private Service Connect, usa el comando
gcloud compute addresses describe
:gcloud compute addresses describe ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME
Realiza los siguientes reemplazos:
- ADDRESS_NAME: es el nombre de la dirección IP del extremo.
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene el extremo
- REGION_NAME: el nombre de la región para el extremo
-
Para conectarte a la instancia de Cloud SQL, usa la dirección IP interna.
sqlcmd -S IP_ADDRESS -d DATABASE_NAME -U USERNAME
Realiza los siguientes reemplazos:
- IP_ADDRESS: la dirección IP del extremo
- DATABASE_NAME: el nombre de la base de datos de Cloud SQL para SQL Server que se encuentra dentro de la instancia
- USERNAME: el nombre del usuario que se conecta a la instancia
Conectarse con el proxy de autenticación de Cloud SQL
El proxy de autenticación de Cloud SQL es un conector que proporciona acceso seguro a una instancia con Private Service Connect habilitado sin necesidad de redes autorizadas o de configurar SSL.
Para permitir conexiones cliente de proxy de autenticación de Cloud SQL, configura un registro DNS que coincida con el nombre de DNS recomendado que se proporciona para la instancia. El registro DNS es una asignación entre un recurso DNS y un nombre de dominio.
Descarga y, luego, instala el proxy de Cloud SQL Auth
Para conectarte a instancias con Private Service Connect habilitado, debes descargar e instalar el objeto binario para el proxy de autenticación de Cloud SQL. El objeto binario que descargues depende del sistema operativo y de si este usa un kernel de 32 bits o de 64 bits. La mayoría del hardware más nuevo usa un kernel de 64 bits.
Si no estás seguro de si tu máquina ejecuta un kernel de 32 bits o de 64 bits, usa el comando uname -a
para Linux o macOS. Para Windows, consulta la documentación de Windows.
Inicia el proxy de autenticación de Cloud SQL
El proxy de autenticación de Cloud SQL admite conexiones a instancias con Private Service Connect habilitado. Para obtener más información, consulta Inicia el proxy de autenticación de Cloud SQL.
gcloud
Para ver información resumida sobre una instancia de Cloud SQL, incluido el nombre de la conexión de la instancia, usa el comando
gcloud sql instances describe
. Este nombre de conexión tiene el formatoPROJECT_ID:REGION_NAME:INSTANCE_NAME
.gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --format='value(connectionName)'
Realiza los siguientes reemplazos:
- INSTANCE_NAME: el nombre de la instancia de Cloud SQL
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia
- Copia el nombre de la conexión de la instancia.
Inicia el proxy de autenticación de Cloud SQL:
./cloud-sql-proxy INSTANCE_CONNECTION_NAME --psc
Reemplaza INSTANCE_CONNECTION_NAME por el nombre de la conexión de instancia que copiaste en el paso anterior.
Conéctate mediante los conectores de lenguaje de Cloud SQL
Los conectores de lenguaje de Cloud SQL son bibliotecas que proporcionan acceso seguro a una instancia de Cloud SQL con Private Service Connect habilitado sin necesidad de tener redes autorizadas o de configurar SSL.
Para permitir conexiones con conectores de lenguaje de Cloud SQL, configura un registro DNS que coincida con el nombre de DNS recomendado que se proporciona para la instancia. El registro DNS es una asignación entre un recurso DNS y un nombre de dominio.
Los conectores de lenguaje de Cloud SQL admiten conexiones de Private Service Connect a través del tipo de IP PSC
dentro de sus respectivas bibliotecas.
- Conector de Python de Cloud SQL
- Conector Go de Cloud SQL
- Conector de Java de Cloud SQL
- Conector de Node.js de Cloud SQL
Conéctate desde App Engine Standard, Cloud Run o Cloud Functions
Para conectarte a instancias de Cloud SQL con Private Service Connect habilitado, puedes usar App Engine Standard, Cloud Run o Cloud Functions.
En estos entornos sin servidores compatibles, se admiten los conectores de lenguaje de Cloud SQL y las conexiones TCP directas mediante una dirección IP y un número de puerto. Para las conexiones TCP directas, esta es la dirección IP que reservas cuando creas el extremo de Private Service Connect. Puedes especificar la dirección IP como la dirección para el host de la base de datos.
Si creas un registro DNS para el extremo, puedes especificar este registro para el host.
Conectarse desde BigQuery
Para acceder a los datos en Cloud SQL y realizar consultas en estos datos a través de una conexión IP interna, usa el parámetro --enable-google-private-path
. Este parámetro solo es válido si se cumplen estas condiciones:
- Usa el parámetro
--no-assign-ip
. - Usa el parámetro
--network
para especificar el nombre de la red de VPC que deseas usar a fin de crear una conexión interna.
Probar conectividad
Para probar la conectividad entrante a una instancia de Cloud SQL con Private Service Connect habilitado, configura la dirección IP del extremo de Private Service Connect como la dirección IP de destino.
gcloud
A fin de crear una prueba de conectividad para una instancia de Cloud SQL con Private Service Connect habilitado, usa el comando gcloud network-management connectivity-tests create
:
gcloud network-management connectivity-tests create CONNECTIVITY_TEST_NAME \ --source-instance=SOURCE_INSTANCE \ --destination-cloud-sql-instance=DESTINATION_CLOUD_SQL_INSTANCE \ --destination-network=DESTINATION_NETWORK \ --destination-port=DESTINATION_PORT \ --protocol=tcp
Realiza los siguientes reemplazos:
- CONNECTIVITY_TEST_NAME: el nombre de la prueba de conectividad.
- SOURCE_INSTANCE: el URI de la instancia de Compute Engine en la que se encuentra la dirección IP de origen (por ejemplo,
projects/myproject/zones/myzone/instances/myinstance
). - DESTINATION_CLOUD_SQL_INSTANCE: la URL de la instancia de Cloud SQL (por ejemplo,
projects/myproject/instances/myinstance
). - DESTINATION_NETWORK: el URI de la red de VPC en la que se encuentra la dirección IP de destino (por ejemplo,
projects/myproject/global/networks/mynetwork
). - DESTINATION_PORT: Es el número de puerto reservado para la instancia. En las instancias de Cloud SQL para SQL Server, el número de puerto es
1433
.
Limitaciones
- Puedes configurar hasta 20 extremos de Private Service Connect que se conecten al adjunto de servicio de una instancia de Cloud SQL con Private Service Connect habilitado.
- Las siguientes marcas se invalidan o se ven afectadas:
--no-assign-ip:
usa esta marca porque las instancias de Cloud SQL con Private Service Connect habilitado no son compatibles con otros tipos de conectividad, como conexiones IP externas--authorized-networks:
no puedes usar esta marca para agregar redes autorizadas--network:
no puedes usar esta marca porque está asociada con el acceso privado a servicios--allocated-ip-range-name:
no puedes usar esta marca porque no se admiten los nombres de rango de IP permitidos
- No puedes crear una réplica externa de una instancia con Private Service Connect habilitado.
- No puedes activar ni desactivar Private Service Connect en una instancia existente.
- No puedes configurar una instancia que tenga Private Service Connect habilitado para usar el acceso privado a servicios o conexiones IP externas.
- No puedes habilitar conexiones IP externas en una instancia con Private Service Connect habilitado.
- No puedes habilitar el acceso privado a servicios ni agregar redes autorizadas a la instancia.
- No puedes cambiar el tipo de conectividad de la instancia.
- No puedes usar el comando
gcloud sql connect
, Cloud Shell, Cloud Build ni Database Migration Service para conectarte a instancias de Cloud SQL con Private Service Connect habilitado. - Cuando pruebas la conectividad a una instancia de Cloud SQL con Private Service Connect habilitado, no puedes configurar los siguientes elementos:
- La dirección IP interna de la instancia o el nombre de DNS como el destino directamente
- La instancia como origen
- La dirección IP del extremo de Private Service Connect como el origen
- No se admite la lista de entidades permitidas basadas en IP mediante redes autorizadas.
- En las instancias de Cloud SQL con Private Service Connect habilitado, no se admiten el servicio administrado para Microsoft Active Directory (también llamado Managed Microsoft AD) ni los servidores vinculados.
Solución de problemas
Esta sección contiene información sobre los problemas asociados con las instancias de Cloud SQL con Private Service Connect habilitado, junto con los pasos para solucionar los problemas.
Problema Soluciona problemas El adjunto de servicio de la instancia no acepta el extremo de Private Service Connect. Para verificar el estado del extremo, usa el comando
gcloud compute forwarding-rules describe
.gcloud compute forwarding-rules describe ENDPOINT_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ | grep pscConnectionStatus
Realiza los siguientes reemplazos:
- ENDPOINT_NAME: el nombre del extremo
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene el extremo
- REGION_NAME: el nombre de la región para el extremo
- Verifica que el estado del extremo sea
ACCEPTED
. Si el estado esPENDING
, la instancia no permite el proyecto de Google Cloud que contiene el extremo. Asegúrate de que el proyecto de red en el que se crea el extremo esté permitido. Para obtener más información, consulta Edita una instancia con Private Service Connect habilitado.
¿Qué sigue?
- Obtén más información sobre IP privada.
- Más información sobre Private Service Connect
- Obtén más información sobre cómo crear una réplica de lectura de una instancia con Private Service Connect habilitado.
- Obtén más información sobre cómo clonar una instancia con Private Service Connect habilitado.
- Obtén más información para ver información de resumen sobre las instancias con Private Service Connect habilitado.
- Obtén más información para configurar y quitar la alta disponibilidad de una instancia con Private Service Connect habilitado.
- Obtén más información sobre cómo editar y borrar una instancia con Private Service Connect habilitado.