En esta página se describe cómo usar Private Service Connect para conectarse 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 diferentes grupos, equipos, proyectos u organizaciones.
Antes de empezar
La compatibilidad con el uso de Private Service Connect con una instancia de Cloud SQL está disponible para las versiones 416.0.0 y posteriores de gcloud CLI
.
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 con una instancia de Cloud SQL. Puedes crear y gestionar direcciones IP, reglas de cortafuegos, políticas de conexión de servicios y puntos finales de Private Service Connect. Si usas Private Service Connect para conectarte a una instancia de Cloud SQL desde varias redes VPC, cada red tendrá su propio administrador. |
dns.admin |
Otorga control total sobre los recursos de Cloud DNS, incluidas las zonas y los registros DNS. |
cloudsql.admin |
Proporciona un 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 Cliente de Cloud SQL. Si te conectas directamente, no necesitas ningún rol ni permiso de gestión de identidades y accesos (IAM). |
Crear un endpoint de Private Service Connect
Los puntos finales de Private Service Connect son direcciones IP internas de una red de VPC de consumidor a las que pueden acceder directamente los clientes de esa red. Los clientes pueden usar estos endpoints para conectarse a instancias de Cloud SQL.
Puedes hacer que Cloud SQL cree un endpoint de Private Service Connect automáticamente en tu VPC o puedes crear el endpoint manualmente.
Crear el endpoint automáticamente
Para que Cloud SQL cree automáticamente el endpoint de Private Service Connect, haz lo siguiente:
Crea una política de conexión de servicio en tu red de VPC. Con esta política, puedes aprovisionar endpoints de Private Service Connect automáticamente.
Crea una instancia de Cloud SQL con Private Service Connect habilitado y configúrala para que cree endpoints de Private Service Connect automáticamente.
Obtén el endpoint de la instancia. De esta forma, puedes usar el endpoint para conectarte a la instancia.
Crear una política de conexión de servicio
Una política de conexión de servicio te permite autorizar una clase de servicio específica para que cree un punto final de Private Service Connect en tu red de VPC de consumidor. Puedes usar la política de conexión de servicio para permitir que Cloud SQL cree automáticamente endpoints de Private Service Connect.
Puedes crear una política de conexión de servicio mediante la Google Cloud consola, la CLI de gcloud o la API.
Consola
En la Google Cloud consola, ve a la página Private Service Connect.
Haga clic en la pestaña Políticas de conexión.
Haz clic en Crear política de conexión.
Introduce un Nombre para la política de conexión.
Para especificar la clase de servicio, haz lo siguiente:
- En Clase de servicio de origen, selecciona Servicios de Google.
- En el menú Clase de servicio, selecciona
google-cloud-sql
, ya que Cloud SQL es el servicio gestionado de la política de conexión.
En la sección Ámbito de los endpoints de destino, selecciona una red y una región a las que se aplique esta política.
En la sección Política, seleccione una o varias subredes en el menú Subredes. Las subredes se usan para asignar direcciones IP a los endpoints.
Opcional: Especifica un límite de conexión para la política. El límite determina cuántos endpoints se pueden crear mediante esta política de conexión. Si no especificas un límite de conexiones, no habrá ninguno.
Haz clic en Crear política.
gcloud
Para crear una política de conexión de servicio, usa el comando service-connection-policies create
.
gcloud network-connectivity service-connection-policies create POLICY_NAME \ --network=NETWORK \ --project=PROJECT_ID \ --region=REGION \ --service-class=SERVICE_CLASS \ --subnets=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETS \ --psc-connection-limit=LIMIT \ --description="DESCRIPTION" \ --producer-instance-location=PRODUCER_INSTANCE_LOCATION \ --allowed-google-producers-resource-hierarchy-level=RESOURCE_HIERARCHY_LEVEL
Haz los cambios siguientes:
POLICY_NAME
: el nombre de tu política de conexión de servicio.NETWORK
: la red a la que se aplica esta política.PROJECT_ID
: el ID o el número del proyecto de la red VPC. En el caso de las redes de VPC compartida, debes implementar políticas de conexión de servicio en el proyecto host, ya que estas políticas no se admiten en los proyectos de servicio.REGION
: la región a la que se aplica esta política. Debe haber una política para cada región en la que quiera automatizar la conectividad de los servicios.SERVICE_CLASS
: identificador de recurso de la clase de servicio proporcionado por el productor. En Cloud SQL, la clase de servicio esgoogle-cloud-sql
.SUBNETS
: una o varias subredes de consumidor normales que se usan para asignar direcciones IP a los puntos finales de Private Service Connect. Estas direcciones IP se asignan automáticamente y se devuelven al grupo de la subred a medida que se crean y se eliminan instancias de servicio gestionado. Las subredes deben estar en la misma región que la política de conexión de servicio. Si varias políticas de conexión comparten la misma región, puedes reutilizar la misma subred en estas políticas. Puede introducir varias subredes en una lista separada por comas.LIMIT
: el número máximo de endpoints que puedes crear con esta política. Si no especificas ningún límite, no habrá ninguno.DESCRIPTION
: una descripción opcional de la política de conexión de servicios.PRODUCER_INSTANCE_LOCATION
: usa esta marca opcional para especificar si se debe autorizar una jerarquía personalizada de las ubicaciones de una instancia de Cloud SQL. Solo puedes asignar uno de los siguientes valores aPRODUCER_INSTANCE_LOCATION
:custom-resource-hierarchy-levels
: la instancia debe estar ubicada en uno de los proyectos, carpetas u organizaciones que proporciones como valor del parámetroallowed-google-producers-resource-hierarchy-level
.none
: la instancia está en el mismo proyecto que la política de conexión de servicio.
RESOURCE_HIERARCHY_LEVEL
: una lista de proyectos, carpetas u organizaciones en las que se encuentra la instancia. Esta lista tiene el formatoprojects/PROJECT_ID
,folders/FOLDER_ID
oorganizations/ORGANIZATION_ID
.
Por ejemplo, el siguiente comando crea una política de conexión de servicio para la clase de servicio
google-cloud-sql
que asigna direcciones IP de la subred managed-services
. Se pueden crear un máximo de 10 endpoints de Private Service Connect con esta política. Los endpoints deben crearse en proyectos que estén en la misma organización que la instancia de servicio gestionado. La instancia de Cloud SQL se encuentra en el proyecto myproject
.
gcloud network-connectivity service-connection-policies create cloud-sql-policy \ --network=default \ --project=my-project \ --region=us-central1 \ --service-class=google-cloud-sql \ --subnets=managed-service-subnet \ --psc-connection-limit=10 \ --producer-instance-location=custom-resource-hierarchy-levels \ --allowed-google-producers-resource-hierarchy-level=projects/myproject
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: el ID de tu proyecto.REGION
: la región de tu política de conexión de servicio.POLICY_NAME
: el nombre de tu política de conexión de servicio.DESCRIPTION
: una descripción opcional de tu política de conexión de servicios.NETWORK
: la red de tu política de conexión de servicio.LIMIT
: el número máximo de endpoints que puedes crear con esta política. Si no especificas ningún límite, no habrá ninguno.SUBNETS
: una o varias subredes de consumidor normales que se usan para asignar direcciones IP a los puntos finales de Private Service Connect. Estas direcciones IP se asignan automáticamente y se devuelven al grupo de la subred a medida que se crean y se eliminan instancias de servicio gestionado. Las subredes deben estar en la misma región que la política de conexión de servicio. Si varias políticas de conexión comparten la misma región, puedes reutilizar la misma subred en estas políticas. Puedes introducir varias subredes en una lista separada por comas.SERVICE_CLASS
: identificador de recurso de la clase de servicio proporcionado por el productor.
Método HTTP y URL:
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies?serviceConnectionPolicyId=POLICY_NAME
Cuerpo JSON de la solicitud:
{ "description": "DESCRIPTION", "network": "projects/PROJECT_ID/global/networks/NETWORK", "pscConfig": { "limit": "LIMIT", "subnetworks": [ "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET" ] }, "serviceClass": "SERVICE_CLASS" }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata", "createTime": "2023-08-15T16:59:29.236110917Z", "target": "projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Crear una instancia de Cloud SQL
Puedes crear una instancia con Private Service Connect habilitado para la instancia y configurar la instancia para que cree endpoints automáticamente mediante la CLI de gcloud o la API.
gcloud
Para crear una instancia con Private Service Connect habilitado, 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 \ --tier=MACHINE_TYPE \ --database-version=DATABASE_VERSION \ --psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT \ --enable-bin-log
Haz las siguientes sustituciones:
- INSTANCE_NAME: el nombre de la instancia.
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia.
- REGION_NAME: el nombre de la región de la instancia.
ALLOWED_PROJECTS: lista separada por comas de los números o IDs de proyectos permitidos desde los que los endpoints de Private Service Connect pueden conectarse a instancias de Cloud SQL.
Si un proyecto no está en esta lista, no puedes crear puntos finales de Private Service Connect en el proyecto para conectarte a la instancia.
- AVAILABILITY_TYPE: habilita la alta disponibilidad de la instancia. En 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 de la región seleccionada.ZONAL
: no ofrece ninguna función 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 los artículos Configurar una instancia para alta disponibilidad y Desactivar la alta disponibilidad de una instancia.
- MACHINE_TYPE: el tipo de máquina de la instancia.
- DATABASE_VERSION: la versión de la base de datos de la instancia (por ejemplo,
MYSQL_8_0
). - CONSUMER_NETWORK: la ruta a la red de VPC desde la que se deben crear los puntos finales de Private Service Connect. Por ejemplo:
projects/my-host-project/global/networks/default
. CONSUMER_PROJECT: proyecto en el que se crea el endpoint de Private Service Connect. Si utilizas una red de VPC compartida, puede ser el proyecto del host o el proyecto de servicio.
Los proyectos que especifiques en los parámetros de conexión automática se añadirán automáticamente a tus proyectos permitidos. Si quieres crear puntos finales de Private Service Connect manualmente en algún proyecto, puedes añadirlo a tu lista de proyectos permitidos.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia.
- INSTANCE_NAME: el nombre de la instancia.
- REGION_NAME: el nombre de la región de la instancia.
- AVAILABILITY_TYPE: habilita la alta disponibilidad de la instancia. En 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 de la región seleccionada.ZONAL
: no ofrece ninguna función 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 los artículos Configurar una instancia para alta disponibilidad y Desactivar la alta disponibilidad de una instancia.
ALLOWED_PROJECTS: lista separada por comas de los números o IDs de proyectos permitidos desde los que los endpoints de Private Service Connect pueden conectarse a instancias de Cloud SQL.
Si un proyecto no está en esta lista, no puedes crear puntos finales de Private Service Connect en el proyecto para conectarte a la instancia.
- MACHINE_TYPE: el tipo de máquina de la instancia.
- CONSUMER_NETWORK: la red de VPC en la que quieres permitir la creación automática de endpoints de Private Service Connect.
- PARENT_PROJECT: el proyecto que contiene la red CONSUMER_NETWORK. Si no especificas otro proyecto en CONSUMER_PROJECT, los endpoints se crearán automáticamente en PARENT_PROJECT .
CONSUMER_PROJECT: opcional. Solo debes especificarlo si CONSUMER_NETWORK es una red de VPC compartida y quieres permitir la creación automática de puntos finales de Private Service Connect en un proyecto de servicio.
Los proyectos que especifiques en los parámetros de conexión automática se añadirán automáticamente a tus proyectos permitidos. Si quieres crear puntos finales de Private Service Connect manualmente en algún proyecto, puedes añadirlo a tu lista de proyectos permitidos.
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": "MYSQL_8_0", "kind": "sql#instance", "settings": { "availabilityType": "AVAILABILITY_TYPE", "backupConfiguration": { "binaryLogEnabled": true, "enabled": true, "kind": "sql#backupConfiguration", "startTime": "00:00" }, "ipConfiguration": { "ipv4Enabled": false, "pscConfig": { "allowedConsumerProjects": [ "ALLOWED_PROJECTS" ], "pscAutoConnections": [ { "consumerProject":"CONSUMER_PROJECT", "consumerNetwork":"projects/PARENT_PROJECT/global/networks/CONSUMER_NETWORK" } ], "pscEnabled": true } }, "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "tier": "MACHINE_TYPE" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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" }
Recuperar el endpoint
Si obtienes la dirección IP interna, que es el endpoint de Private Service Connect de una instancia, puedes usar este endpoint para conectarte a la instancia.
gcloud
Para ver información sobre una instancia, incluida la dirección IP que es el punto final de Private Service Connect de la instancia, usa el comando gcloud sql instances describe
:
gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --format='json(settings.ipConfiguration.pscConfig.pscAutoConnections)'
Haz las siguientes sustituciones:
- INSTANCE_NAME: el nombre de la instancia de Cloud SQL. Si esta instancia tiene habilitado Private Service Connect, los puntos finales de Private Service Connect de las redes de VPC pueden conectarse a ella.
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia.
En la respuesta, anota el valor que aparece junto al campo pscConfig:pscAutoConnections:ipAddress
. Este valor es la dirección IP interna, que también es el endpoint de Private Service Connect de la instancia.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia.
- INSTANCE_NAME: el nombre de la instancia de Cloud SQL. Si esta instancia tiene habilitado Private Service Connect, los puntos finales de Private Service Connect de las redes de VPC pueden conectarse a ella.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "MYSQL_8_0", "settings": { "authorizedGaeApplications": [], "tier": "db-custom-2-7680", "kind": "sql#settings", "availabilityType": "REGIONAL", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "activationPolicy": "ALWAYS", "ipConfiguration": { "authorizedNetworks": [], "pscConfig": { "allowedConsumerProjects": [ "ALLOWED_PROJECTS" ], "pscAutoConnections": { consumerNetwork:"projects/PARENT_PROJECT/global/networks/CONSUMER_NETWORK", consumerNetworkStatus:"CONSUMER_NETWORK_STATUS", consumerProject:"CONSUMER_PROJECT", ipAddress:"IP_ADDRESS", status:"STATUS" }, "pscEnabled": true }, "ipv4Enabled": false }, }
En las instancias en las que Private Service Connect está habilitado, se incluyen los siguientes campos:
allowedConsumerProjects
: lista de los proyectos permitidos de la instancia. Puedes crear endpoints de Private Service Connect desde cualquier red de VPC de estos proyectos hasta la vinculación de servicio de la instancia.pscAutoConnections
: la red de VPC permitida, el estado de la política de conexión de servicio y el estado de la dirección IP que es el endpoint de la instancia.pscEnabled
: indica si una instancia tiene habilitado Private Service Connect.
Para ver cómo crear la solicitud de API REST subyacente de esta tarea, consulta la página instances:get.
Crear el endpoint manualmente
Para crear el endpoint de Private Service Connect manualmente, haz lo siguiente:
Crea una instancia de Cloud SQL con Private Service Connect habilitado para la instancia.
Obtén el URI de la vinculación de servicio. Esta URI se usa para crear el endpoint de Private Service Connect.
Reserva una dirección IP interna para el punto final de Private Service Connect y crea un punto final con esa dirección.
Crear una instancia de Cloud SQL
Puedes crear una instancia con Private Service Connect habilitado mediante la CLI de gcloud, Terraform o la API.
gcloud
Para crear una instancia con Private Service Connect habilitado, 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 \ --tier=MACHINE_TYPE \ --database-version=DATABASE_VERSION \ --enable-bin-log
Haz las siguientes sustituciones:
- INSTANCE_NAME: el nombre de la instancia.
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia.
- REGION_NAME: el nombre de la región de la instancia.
ALLOWED_PROJECTS: lista separada por comas de los números o IDs de proyectos permitidos desde los que los endpoints de Private Service Connect pueden conectarse a instancias de Cloud SQL.
Si un proyecto no está en esta lista, no puedes crear puntos finales de Private Service Connect en el proyecto para conectarte a la instancia.
- AVAILABILITY_TYPE: habilita la alta disponibilidad en la instancia. En 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 de la región seleccionada.ZONAL
: no ofrece ninguna función 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 los artículos Configurar una instancia para alta disponibilidad y Desactivar la alta disponibilidad de una instancia.
- MACHINE_TYPE: el tipo de máquina de la instancia.
- DATABASE_VERSION: la versión de la base de datos de la instancia (por ejemplo,
MYSQL_8_0
).
Terraform
Para crear una instancia con Private Service Connect habilitado, usa el recurso de Terraform google_sql_database_instance
.
Para aplicar la configuración de Terraform en un proyecto, sigue los pasos que se indican en las siguientes secciones. Google Cloud
Preparar Cloud Shell
- Abre Cloud Shell.
-
Define el Google Cloud proyecto Google Cloud predeterminado en el que quieras aplicar tus configuraciones de Terraform.
Solo tiene que ejecutar este comando una vez por proyecto y puede hacerlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.
Preparar 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 en ese directorio. El nombre del archivo debe tener la extensión
.tf
. Por ejemplo,main.tf
. En este tutorial, nos referiremos al archivo comomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.
Copia el código de ejemplo en el archivo
main.tf
que acabas de crear.También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
terraform init
Si quieres usar la versión más reciente del proveedor de Google, incluye la opción
-upgrade
:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
terraform plan
Haga las correcciones necesarias en la configuración.
-
Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
Espera hasta que Terraform muestre el mensaje "Apply complete!".
- Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia.
- INSTANCE_NAME: el nombre de la instancia.
- REGION_NAME: el nombre de la región de la instancia.
- AVAILABILITY_TYPE: habilita la alta disponibilidad de la instancia. En 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 de la región seleccionada.ZONAL
: no ofrece ninguna función 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 los artículos Configurar una instancia para alta disponibilidad y Desactivar la alta disponibilidad de una instancia.
ALLOWED_PROJECTS: lista separada por comas de los números o IDs de proyectos permitidos desde los que los endpoints de Private Service Connect pueden conectarse a instancias de Cloud SQL.
Si un proyecto no está en esta lista, no puedes crear puntos finales de Private Service Connect en el proyecto para conectarte a la instancia.
- MACHINE_TYPE: el tipo de máquina de 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": "MYSQL_8_0", "kind": "sql#instance", "settings": { "availabilityType": "AVAILABILITY_TYPE", "backupConfiguration": { "binaryLogEnabled": true, "enabled": true, "kind": "sql#backupConfiguration", "startTime": "00:00" }, "ipConfiguration": { "ipv4Enabled": false, "pscConfig": { "allowedConsumerProjects": [ "ALLOWED_PROJECTS" ], "pscEnabled": true } }, "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "SYNCHRONOUS", "tier": "MACHINE_TYPE" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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" }
Obtener el adjunto de servicio
Después de crear una instancia de Cloud SQL con Private Service Connect habilitado, obtén el URI de la vinculación de servicio y úsalo para crear el endpoint de Private Service Connect.
gcloud
Para ver información de resumen sobre una instancia con Private Service Connect habilitado, como el campo pscServiceAttachmentLink
, que muestra el URI que apunta al archivo adjunto de servicio de la instancia, usa el comando gcloud sql instances describe
:
gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID
Haz las siguientes sustituciones:
- INSTANCE_NAME: el nombre de la instancia de Cloud SQL a la que se pueden conectar los endpoints de Private Service Connect en redes VPC.
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia
En el siguiente ejemplo se muestra un resultado de muestra de este comando:
gcloud sql instances describe myinstance \ --project=12345 ... pscServiceAttachmentLink: projects/45678/regions/myregion/serviceAttachments/myserviceattachment
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ ... pscServiceAttachmentLink: "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME" }
El campo pscServiceAttachmentLink
muestra el URI que apunta a la vinculación de servicio de la instancia.
Crear un endpoint de Private Service Connect
Puedes reservar una dirección IP interna para el endpoint de Private Service Connect y crear un endpoint con esa dirección. Para crear el endpoint, necesitas el URI de adjunto de servicio y los proyectos permitidos para la instancia.
gcloud
Para reservar una dirección IP interna para el punto final 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_URI \ --addresses=INTERNAL_IP_ADDRESS
Haz las siguientes sustituciones:
- ADDRESS_NAME: el nombre de la dirección IP interna.
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto del endpoint.
- REGION_NAME: nombre de la región del endpoint.
- SUBNET_URI: el nombre de la subred de la dirección IP. El formato es
projects/SUBNET_PROJECT_ID/regions/REGION_NAME/subnetworks/SUBNET_NAME
. Si la subred está en una red de VPC compartida, te recomendamos que SUBNET_PROJECT_ID sea el proyecto host. - INTERNAL_IP_ADDRESS: la dirección IP que quieres reservar. Esta dirección IP debe estar dentro del intervalo de IP principal de la subred. La dirección IP puede ser una dirección RFC 1918 o una subred con intervalos que no sean RFC. Si no quieres especificar la dirección IP porque quieres que Google Cloud reserve una dirección IP disponible en la subred, omite esta marca.
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, comprueba que la dirección IP tenga el estado
RESERVED
.Para crear el endpoint de Private Service Connect y dirigirlo a la vinculación 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_URI \ --target-service-attachment=SERVICE_ATTACHMENT_URI \ --allow-psc-global-access
Haz las siguientes sustituciones:
- ENDPOINT_NAME: el nombre del endpoint
- NETWORK_URI: el URI de la red de VPC del endpoint. El formato es el siguiente:
projects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME
. Si quieres usar una red de VPC compartida, especifica el proyecto host como NETWORK_PROJECT_ID. - SERVICE_ATTACHMENT_URI: el URI del archivo adjunto de servicio
Para verificar que el adjunto de servicio acepta el endpoint, usa el comando
gcloud compute forwarding-rules describe
:gcloud compute forwarding-rules describe ENDPOINT_NAME \ --project=PROJECT_ID \ --region=REGION_NAME
En la respuesta, comprueba que el campo
pscConnectionStatus
tenga el estadoACCEPTED
. El endpoint puede conectarse a la vinculación de servicio.
Terraform
Para crear un endpoint de Private Service Connect, usa el google_sql_database_instance
recurso de Terraform.
Usa el siguiente ejemplo para crear un endpoint de Private Service Connect IPv4.
Usa el siguiente ejemplo para crear un endpoint de Private Service Connect IPv6.
Para aplicar la configuración de Terraform en un proyecto, sigue los pasos que se indican en las siguientes secciones. Google Cloud
Preparar Cloud Shell
- Abre Cloud Shell.
-
Define el Google Cloud proyecto Google Cloud predeterminado en el que quieras aplicar tus configuraciones de Terraform.
Solo tiene que ejecutar este comando una vez por proyecto y puede hacerlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.
Preparar 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 en ese directorio. El nombre del archivo debe tener la extensión
.tf
. Por ejemplo,main.tf
. En este tutorial, nos referiremos al archivo comomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.
Copia el código de ejemplo en el archivo
main.tf
que acabas de crear.También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
terraform init
Si quieres usar la versión más reciente del proveedor de Google, incluye la opción
-upgrade
:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
terraform plan
Haga las correcciones necesarias en la configuración.
-
Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
Espera hasta que Terraform muestre el mensaje "Apply complete!".
- Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.
REST
Reserva una dirección IP interna para el endpoint de Private Service Connect.
.Verifica que la dirección IP esté reservada.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene el endpoint de Private Service Connect
- REGION_NAME: el nombre de la región
- ADDRESS_NAME: el nombre de la dirección IP
Método HTTP y URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "compute#address", "id": "ADDRESS_ID", "creationTimestamp": "2024-05-09T11:20:50.114-07:00", "name": "ADDRESS_NAME", "description": "This is the name of the internal IP address.", "address": "IP_ADDRESS", "status": "RESERVED", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME", "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "addressType": "EXTERNAL" }
En la respuesta, comprueba que la dirección IP tenga el estado
RESERVED
.Crea el endpoint de Private Service Connect y dirígelo a la vinculación de servicio de Cloud SQL.
Verifica que el adjunto de servicio acepte el endpoint.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene el endpoint de Private Service Connect
- REGION_NAME: el nombre de la región
- ENDPOINT_NAME: el nombre del endpoint
Método HTTP y URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "compute#forwardingRule", "id": "ENDPOINT_ID", "creationTimestamp": "2024-05-09T12:03:21.383-07:00", "name": "ENDPOINT_NAME", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "IPAddress": "IP_ADDRESS", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default", "serviceDirectoryRegistrations": [ { "namespace": "goog-psc-default" } ], "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "fingerprint": "FINGERPRINT_ID", "pscConnectionId": "CONNECTION_ID", "pscConnectionStatus": "ACCEPTED", "allowPscGlobalAccess": true }
En la respuesta, comprueba que el campo
pscConnectionStatus
tenga el estadoACCEPTED
. El endpoint puede conectarse a la vinculación 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 u otras Google Cloud aplicaciones.
Configurar una zona gestionada de DNS y un registro de DNS
Cloud SQL no crea registros DNS automáticamente. 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 DNS privada de la red de VPC correspondiente. De esta forma, se puede usar el proxy de autenticación de Cloud SQL de forma coherente para conectarse desde diferentes redes.
gcloud
Para ver información de resumen sobre una instancia de Cloud SQL, incluido el nombre DNS de la instancia, usa el comando
gcloud sql instances describe
: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 Google Cloud proyecto que contiene la instancia
En la respuesta, comprueba que aparezca el nombre 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.
.Si quieres usar un nombre de DNS personalizado para conectarte a una instancia de Cloud SQL en lugar del nombre de DNS predefinido de esta sección, configura el nombre alternativo de asunto (SAN) personalizado al crear la instancia. El nombre de DNS personalizado que insertes en el ajuste SAN personalizado se añadirá al campo SAN del certificado de servidor de la instancia. De esta forma, puedes usar el nombre de DNS personalizado con la validación de nombre de host de forma segura.
Para obtener más información sobre cómo configurar el ajuste SAN personalizado, consulta Crear instancias.
Para crear una zona de DNS privada, usa el comando
gcloud dns managed-zones create
. Esta zona está asociada a la red de VPC que se usa para conectarse a la instancia de Cloud SQL a través del endpoint 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
Haz las siguientes sustituciones:
- ZONE_NAME: el nombre de la zona DNS
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la zona
- DESCRIPTION: una descripción de la zona (por ejemplo, una zona DNS de la instancia de Cloud SQL)
- DNS_NAME: el nombre del sufijo DNS de la zona, como
REGION_NAME.sql.goog.
(donde REGION_NAME es el nombre de la región de la zona). - NETWORK_NAME: el nombre de la red de VPC
Después de crear el endpoint de Private Service Connect, usa el comando
gcloud dns record-sets create
para crear un registro DNS en la zona:gcloud dns record-sets create DNS_RECORD \ --project=PROJECT_ID \ --type=RRSET_TYPE \ --rrdatas=RR_DATA \ --zone=ZONE_NAME
Haz las siguientes sustituciones:
- DNS_RECORD: el nombre del registro DNS. Este registro se asigna al nombre DNS que has obtenido de la instancia de Cloud SQL anteriormente en este procedimiento (por ejemplo,
1a23b4cd5e67.1a2b345c6d27.us-central1.sql.goog.
). - RRSET_TYPE: el tipo de registro de recursos del conjunto de registros DNS. Si la dirección IP interna que has reservado
para el punto final de Private Service Connect es IPv4, especifica
A
en este parámetro. De lo contrario, si la dirección IP del endpoint es IPv6, especificaAAAA
. - RR_DATA: la dirección IP asignada al endpoint de Private Service Connect (por ejemplo,
198.51.100.5
). También puedes introducir varios valores, comorrdata1 rrdata2 rrdata3
(por ejemplo,10.1.2.3 10.2.3.4 10.3.4.5
).
- DNS_RECORD: el nombre del registro DNS. Este registro se asigna al nombre DNS que has obtenido de la instancia de Cloud SQL anteriormente en este procedimiento (por ejemplo,
REST
- Obtener el nombre DNS de una instancia de Cloud SQL.
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia
- Crea una zona DNS privada. Esta zona está asociada a la red de VPC que se usa para conectarse a la instancia de Cloud SQL a través del endpoint de Private Service Connect.
- PROJECT_ID: el ID o el número del proyecto del Google Cloud proyecto que contiene la zona DNS
- ZONE_NAME: el nombre de la zona
- DESCRIPTION: una descripción de la zona (por ejemplo, una zona DNS de la instancia de Cloud SQL)
- DNS_NAME: el nombre del sufijo DNS de la zona, como
REGION_NAME.sql.goog.
(donde REGION_NAME es el nombre de la región de la zona). - NETWORK_NAME: el nombre de la red de VPC
- Después de crear el endpoint de Private Service Connect, crea un registro DNS en la zona.
- PROJECT_ID: el ID o el número del proyecto del Google Cloud proyecto que contiene la zona DNS.
- ZONE_NAME: el nombre de la zona.
- DNS_RECORD: el nombre del registro DNS. Este registro se asigna al nombre DNS que has obtenido de la instancia de Cloud SQL anteriormente en este procedimiento (por ejemplo,
1a23b4cd5e67.1a2b345c6d27.us-central1.sql.goog.
). - RRSET_TYPE: el tipo de registro de recursos del conjunto de registros DNS. Si la dirección IP interna que has reservado
para el punto final de Private Service Connect es IPv4, especifica
A
en este parámetro. De lo contrario, si la dirección IP del endpoint es IPv6, especificaAAAA
. - TTL: el tiempo de vida (TTL) del conjunto de registros en segundos (por ejemplo,
300
). - RR_DATA: la dirección IP asignada al endpoint de Private Service Connect (por ejemplo,
198.51.100.5
). También puedes introducir varios valores, comorrdata1 rrdata2 rrdata3
(por ejemplo,10.1.2.3 10.2.3.4 10.3.4.5
).
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ ... "dnsName": "INSTANCE_ID.PROJECT_DNS_LABEL.REGION_NAME.sql.goog." }
El campo dnsName
muestra el nombre DNS de la instancia de Cloud SQL. Los nombres de DNS siempre terminan con un punto (.
).
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Método HTTP y URL:
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones
Cuerpo JSON de la solicitud:
{ "name": "ZONE_NAME", "description": "DESCRIPTION", "dnsName": "DNS_NAME", "visibility": "private", "privateVisibilityConfig": { "kind": "dns#managedZonePrivateVisibilityConfig", "networks": [ { "kind": "dns#managedZonePrivateVisibilityConfigNetwork", "networkUrl": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME" } ] } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "ZONE_NAME", "dnsName": "DNS_NAME", "description": "DESCRIPTION", "id": "ID", "nameServers": [ "ns-gcp-private.googledomains.com." ], "creationTime": "2024-05-10T17:05:34.607Z", "visibility": "private", "privateVisibilityConfig": { "networks": [ { "networkUrl": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME", "kind": "dns#managedZonePrivateVisibilityConfigNetwork" } ], "gkeClusters": [], "kind": "dns#managedZonePrivateVisibilityConfig" }, "cloudLoggingConfig": { "kind": "dns#managedZoneCloudLoggingConfig" }, "kind": "dns#managedZone" }
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Método HTTP y URL:
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/ZONE_NAME
Cuerpo JSON de la solicitud:
{ "deletions": [] "additions": [ { "name": "DNS_RECORD", "type": "RRSET_TYPE", "ttl": TTL, "rrdatas": [ "RR_DATA" ] } ] }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "additions": [ { "name": "DNS_RECORD", "type": "RRSET_TYPE", "ttl": TTL, "rrdatas": [ "RR_DATA" ], "signatureRrdatas": [], "kind": "dns#resourceRecordSet" } ], "deletions": [], "startTime": "2024-05-10T17:29:44.375Z", "id": "CHANGE_ID", "status": "pending", "kind": "dns#change" }
Conectarse directamente mediante un registro DNS
Antes de conectarte a una instancia de Cloud SQL mediante un registro DNS, haz lo siguiente:
- Crea un endpoint de Private Service Connect.
- Confirma que el servicio de la instancia acepta el endpoint. Para verificar que el estado del endpoint es
ACCEPTED
, comprueba el estado. - Configura una zona gestionada de DNS y un registro DNS.
Una vez que cumplas estas condiciones, usa el registro DNS para conectarte a la instancia desde cualquier red de VPC en la que hayas creado el endpoint.
mysql --host=DNS_RECORD --user=USERNAME -p
Haz las siguientes sustituciones:
- DNS_RECORD: el registro DNS del endpoint
- USERNAME: el nombre del usuario que se conecta a la instancia
Conectarse directamente a través de una dirección IP interna
Antes de conectarte a una instancia de Cloud SQL con Private Service Connect habilitado, haz lo siguiente:
- Crea un endpoint de Private Service Connect.
- Confirma que el servicio de la instancia acepta el endpoint. Para verificar que el estado del endpoint es
ACCEPTED
, comprueba el estado.
Una vez que cumplas estas condiciones, usa la dirección IP del endpoint para acceder a la instancia desde cualquier red de VPC en la que hayas creado el endpoint.
Obtén la dirección IP interna del endpoint de Private Service Connect mediante el nombre de la dirección IP del endpoint.
gcloud
Para obtener la dirección IP, usa el comando
gcloud compute addresses describe
:gcloud compute addresses describe ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME
Haz las siguientes sustituciones:
- ADDRESS_NAME: el nombre de la dirección IP del endpoint
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene el endpoint.
- REGION_NAME: nombre de la región del endpoint
En la respuesta, comprueba que aparezca una dirección IP en el campo
address
. Esta es la dirección IP interna.REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene el endpoint.
- REGION_NAME: nombre de la región del endpoint
- ADDRESS_NAME: el nombre de la dirección IP del endpoint
Método HTTP y URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "compute#address", "id": "ADDRESS_ID", "creationTimestamp": "2024-05-09T11:20:50.114-07:00", "name": "ADDRESS_NAME", "description": "This is the name of the internal IP address.", "address": "IP_ADDRESS", "status": "RESERVED", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME", "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "addressType": "EXTERNAL" }
La dirección IP interna es el valor asociado al campo
address
.También puedes obtener la dirección IP interna del endpoint de Private Service Connect mediante el adjunto de servicio de la instancia de Cloud SQL.
gcloud
Para obtener la dirección IP, usa el comando
gcloud compute forwarding-rules list
:gcloud compute forwarding-rules list \ --filter="TARGET:REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME" \ --project=PROJECT_ID
Haz las siguientes sustituciones:
- REGION_NAME: nombre de la región del endpoint
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene el endpoint.
- SERVICE_ATTACHMENT_NAME: el nombre del adjunto de servicio de la instancia de Cloud SQL
En la respuesta, comprueba que aparece una dirección IP. Esta es la dirección IP interna.
A continuación se muestra un ejemplo de respuesta:
NAME
REGION
IP_ADDRESS
TARGET
myInstance
us-central1
10.10.10.10
us-central1/serviceAttachments/a-123456789e0a-psc-service-attachment-abc123d4e5f67gh8
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene el endpoint.
- REGION_NAME: nombre de la región del endpoint
- SERVICE_ATTACHMENT_PROJECT_ID: el ID o el número del proyecto Google Cloud que contiene el adjunto de servicio.
- SERVICE_ATTACHMENT_NAME: el nombre del adjunto de servicio de la instancia de Cloud SQL
Método HTTP y URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules?target="https://www.googleapis.com/compute/v1/projects/SERVICE_ATTACHMENT_PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME"
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "compute#forwardingRuleList", "id": "projects/PROJECT_ID/regions/REGION_NAME/forwardingRules", "items": [ { "kind": "compute#forwardingRule", "id": "FORWARDING_RULE_ID", "creationTimestamp": "2023-10-31T13:04:37.168-07:00", "name": "FORWARDING_RULE_NAME", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "IPAddress": "IP_ADDRESS", "target": "https://www.googleapis.com/compute/v1/projects/SERVICE_ATTACHMENT_PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/FORWARDING_RULE_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME", "serviceDirectoryRegistrations": [ { "namespace": "goog-psc-default" } ], "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "fingerprint": "FINGERPRINT_ID", "pscConnectionId": "PSC_CONNECTION_ID", "pscConnectionStatus": "CLOSED", "allowPscGlobalAccess": true } ], "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules" }
La dirección IP interna es el valor asociado al campo
IPAddress
.-
Para conectarte a la instancia de Cloud SQL, usa la dirección IP interna.
mysql --host=IP_ADDRESS --user=USERNAME -p
Haz las siguientes sustituciones:
- IP_ADDRESS: la dirección IP del endpoint
- USERNAME: el nombre del usuario que se conecta a la instancia
Conectarse mediante 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 ni de configurar SSL.
Para permitir las conexiones de clientes del proxy de autenticación de Cloud SQL, configura un registro DNS que coincida con el nombre DNS recomendado que se proporciona para la instancia. El registro DNS es una asignación entre un recurso DNS y un nombre de dominio.
Si te conectas a través de Private Service Connect, debes tener la versión v2.5.0 o una posterior del proxy de autenticación de Cloud SQL.
Descargar e instalar el proxy de autenticación de Cloud SQL
Para conectarte a instancias con Private Service Connect habilitado, debes descargar e instalar el archivo binario del proxy de autenticación de Cloud SQL. El archivo binario que descargues dependerá del sistema operativo y de si utiliza un kernel de 32 o 64 bits. El hardware más reciente suele usar un kernel de 64 bits.
Si no sabes si tu máquina ejecuta un kernel de 32 o 64 bits, usa el comando uname -a
para Linux o macOS. En el caso de Windows, consulta la documentación de Windows.
Iniciar 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 Iniciar el proxy de autenticación de Cloud SQL.
- Consulta información de resumen sobre una instancia de Cloud SQL, incluido el nombre de conexión de la instancia.
gcloud
Para ver información de resumen sobre una instancia de Cloud SQL, usa el comando
gcloud sql instances describe
.gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --format='value(connectionName)'
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 Google Cloud proyecto que contiene la instancia
El nombre de la conexión tiene el formato
PROJECT_ID:REGION_NAME:INSTANCE_NAME
.REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ ... "connectionName": "PROJECT_ID:REGION_NAME:INSTANCE_NAME" }
El nombre de la conexión tiene el formato
PROJECT_ID:REGION_NAME:INSTANCE_NAME
. - Copia el nombre de conexión de la instancia.
Inicia el proxy de autenticación de Cloud SQL:
./cloud-sql-proxy INSTANCE_CONNECTION_NAME --psc
Sustituye INSTANCE_CONNECTION_NAME por el nombre de conexión de la instancia que has copiado en el paso anterior.
Conectarse 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 redes autorizadas ni de configurar SSL.
Para permitir las conexiones con los conectores de idiomas de Cloud SQL, configura un registro DNS que coincida con el nombre 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
en sus respectivas bibliotecas.
- Conector de Python de Cloud SQL (versión 1.3.0 o posterior)
- Conector Go de Cloud SQL (versión 1.4.0 o posterior)
- Conector Java de Cloud SQL (versión 1.13.0 o posterior)
- Conector Node.js de Cloud SQL (versión 0.5.0 o posterior)
Conectarse desde App Engine Standard, Cloud Run o Cloud Run functions
Para conectarte a instancias de Cloud SQL con Private Service Connect habilitado, puedes usar App Engine Standard o Cloud Run.
En estos entornos sin servidor admitidos, se pueden usar tanto los conectores de lenguaje de Cloud SQL como las conexiones TCP directas mediante una dirección IP y un número de puerto. En el caso de las conexiones TCP directas, se trata de la dirección IP que reservas al crear el punto final de Private Service Connect. Puedes especificar la dirección IP como dirección del host de la base de datos.
Si crea un registro DNS para el endpoint, puede especificarlo para el host.
Conectarse desde BigQuery
Para acceder a los datos de Cloud SQL y hacer consultas sobre ellos 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:
- Usa el parámetro
--no-assign-ip
. - El parámetro
--network
se usa para especificar el nombre de la red VPC que quieres usar para crear una conexión interna.
Configurar la conectividad saliente de una instancia de Cloud SQL
Puedes configurar tu instancia de Cloud SQL con Private Service Connect para que tenga conectividad saliente con tu red mediante una interfaz de Private Service Connect y una vinculación de red. Para obtener más información sobre cómo funciona la conectividad saliente de Private Service Connect y sus limitaciones, consulta el artículo Información general sobre la conectividad saliente de Private Service Connect.
Para usar la conectividad saliente con tu instancia de Cloud SQL, debes hacer lo siguiente:
Crea o actualiza un archivo adjunto de red. La instancia de Cloud SQL usa este adjunto de red para conectarse a la interfaz Private Service Connect de tu red.
El adjunto de red debe estar en la misma región que tu instancia de Cloud SQL y configurarse para aceptar conexiones de forma automática o manual mediante una lista de interfaces de Private Service Connect.
Identifica la red desde la que quieres recibir conexiones salientes de Cloud SQL y asegúrate de que tenga una interfaz de Private Service Connect.
Habilita las conexiones salientes a tu instancia de Cloud SQL mediante la conexión de red.
También puedes inhabilitar la conectividad saliente en cualquier momento si ya no necesitas conexiones salientes a tu instancia.
Para obtener más información sobre la conectividad saliente de Private Service Connect, consulta Conexiones salientes de Private Service Connect.
Habilitar las conexiones salientes en una instancia de Cloud SQL
Para habilitar la conectividad saliente de tu instancia de Cloud SQL, primero debes crear o actualizar un adjunto de red en tu proyecto de Google Cloud .
gcloud
Para habilitar la conectividad saliente, ejecuta el siguiente comando:
gcloud beta sql instances patch INSTANCE_NAME
--psc-network-attachment-uri=NETWORK_ATTACHMENT_URI
--project=PROJECT_ID
Haz los cambios siguientes:
- INSTANCE_NAME: nombre de la instancia de Cloud SQL con Private Service Connect que quieras configurar para la conectividad saliente.
- NETWORK_ATTACHMENT_URI: el URI del archivo adjunto de red de tu Google Cloud proyecto que quieras usar para conectarte a la interfaz Private Service Connect de tu red.
- PROJECT_ID: el ID del proyecto que estás usando. Google Cloud
Para confirmar que la conectividad saliente de Private Service Connect se ha habilitado correctamente, ejecuta gcloud sql instances describe
.
Si ves psc-network-attachment-uri
en el resultado, significa que la conectividad saliente de Private Service Connect se ha habilitado correctamente.
REST v1
Para habilitar la conectividad saliente, ejecuta el siguiente comando:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: el ID de tu proyecto.NETWORK_ATTACHMENT_URI
: el URI del archivo adjunto de red de tu proyecto.INSTANCE_ID
: el nombre de tu instancia de Cloud SQL.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Cuerpo JSON de la solicitud:
{ "settings": { "ipConfiguration": { "pscConfig: { "networkAttachmentUri": "NETWORK_ATTACHMENT_URI" "kind": "sql#settings" } }, } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": USER, "insertTime": "2025-05-13T20:44:23.064Z", "operationType": "UPDATE", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID"," }
REST v1beta4
Para habilitar la conectividad saliente, ejecuta el siguiente comando:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: el ID de tu proyecto.NETWORK_ATTACHMENT_URI
: el URI del archivo adjunto de red de tu proyecto.INSTANCE_ID
: el nombre de tu instancia de Cloud SQL.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Cuerpo JSON de la solicitud:
{ "settings": { "ipConfiguration": { "pscConfig: { "networkAttachmentUri": "NETWORK_ATTACHMENT_URI" } }, } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": USER, "insertTime": "2025-05-13T20:44:23.064Z", "operationType": "UPDATE", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID"," }
Para obtener información sobre cómo solucionar problemas relacionados con la conectividad saliente de Private Service Connect, consulta el artículo Solucionar problemas de Private Service Connect.
Inhabilitar las conexiones salientes de una instancia de Cloud SQL
gcloud
Para inhabilitar la conectividad saliente, ejecuta el siguiente comando:
gcloud beta sql instances patch INSTANCE_NAME
--clear-psc-network-attachment-uri
--project=PROJECT_ID
Haz los cambios siguientes:
- INSTANCE_NAME: nombre de la instancia de Cloud SQL con Private Service Connect que quieras configurar para la conectividad saliente.
- PROJECT_ID: el ID del proyecto que estás usando. Google Cloud
REST v1
Para inhabilitar la conectividad saliente, ejecuta el siguiente comando:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: el ID de tu proyecto.NETWORK_ATTACHMENT_URI
: el URI del archivo adjunto de red de tu proyecto. Para inhabilitar esta opción, asigna el valornull
.INSTANCE_ID
: el nombre de tu instancia de Cloud SQL.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Cuerpo JSON de la solicitud:
{ "settings": { "ipConfiguration": { "pscConfig: { "networkAttachmentUri": null, "kind": "sql#settings" } }, } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": USER, "insertTime": "2025-05-13T20:44:23.064Z", "operationType": "UPDATE", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID"," }
REST v1beta4
Para inhabilitar la conectividad saliente, ejecuta el siguiente comando:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: el ID de tu proyecto.NETWORK_ATTACHMENT_URI
: el URI del archivo adjunto de red de tu proyecto. Para inhabilitar esta opción, asigna el valornull
.INSTANCE_ID
: el nombre de tu instancia de Cloud SQL.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Cuerpo JSON de la solicitud:
{ "settings": { "ipConfiguration": { "pscConfig: { "networkAttachmentUri": null, "kind": "sql#settings" } }, } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": USER, "insertTime": "2025-05-13T20:44:23.064Z", "operationType": "UPDATE", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID"," }
Probar la conectividad
Para probar la conectividad entrante a una instancia de Cloud SQL con Private Service Connect habilitado, define la dirección IP del endpoint de Private Service Connect como dirección IP de destino.
gcloud
Para 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
Haz las siguientes sustituciones:
- 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: número de puerto reservado para la instancia. En el caso de las instancias de Cloud SQL para MySQL, el número de puerto es
3306
.
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia.
- CONNECTIVITY_TEST_NAME: el nombre de la prueba de conectividad.
- SOURCE_IP_ADDRESS: la dirección IP de la instancia de Compute Engine de origen.
- 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
). - SOURCE_NETWORK: el URI de la red de VPC en la que se encuentra la dirección IP de origen (por ejemplo,
projects/myproject/global/networks/mynetwork
). - DESTINATION_IP_ADDRESS: la dirección IP de la instancia de Cloud SQL de destino.
- DESTINATION_PORT: número de puerto reservado para la instancia. En el caso de las instancias de Cloud SQL para MySQL, el número de puerto es
3306
. - 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
).
Método HTTP y URL:
POST https://networkmanagement.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/connectivityTests?testId=CONNECTIVITY_TEST_NAME
Cuerpo JSON de la solicitud:
{ "source": { "ipAddress": "SOURCE_IP_ADDRESS", "instance": "SOURCE_INSTANCE", "network": "SOURCE_NETWORK" }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", "port": DESTINATION_PORT, "network": "DESTINATION_NETWORK", "projectId": "PROJECT_ID" }, "protocol": "TCP" }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_ID/locations/global/operations/operation-OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.networkmanagement.v1.OperationMetadata", "createTime": "2024-05-23T16:43:49.313981473Z", "target": "projects/PROJECT_ID/locations/global/connectivityTests/CONNECTIVITY_TEST_NAME", "verb": "create", "cancelRequested": false, "apiVersion": "v1" }, "done": false }
Limitaciones
- Puedes configurar hasta 20 endpoints de Private Service Connect que se conecten a la vinculación de servicio de una instancia de Cloud SQL con Private Service Connect habilitado.
- Puedes tener hasta 64.512 conexiones simultáneas con Private Service Connect a una instancia de Cloud SQL.
- Las siguientes marcas no son válidas o se ven afectadas:
--no-assign-ip:
usa esta marca porque las instancias con Private Service Connect habilitado no admiten otros tipos de conectividad, como las conexiones de IP externas.--authorized-networks:
No puedes usar esta marca para añadir redes autorizadas.--network:
no puedes usar esta marca porque está asociada al acceso a servicios privados--allocated-ip-range-name:
no puedes usar esta marca porque no se admiten nombres de intervalos de IP permitidos
- No puedes configurar una instancia que tenga habilitado Private Service Connect para que use el acceso a servicios privados o conexiones IP externas.
- No puedes habilitar las conexiones de IP externa en una instancia en la que Private Service Connect esté habilitado.
- No puedes habilitar el acceso a servicios privados ni añadir 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, Database Migration Service ni Datastream 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 definir los siguientes elementos:
- La dirección IP interna o el nombre de DNS de la instancia como destino directamente
- La instancia como origen
- La dirección IP del endpoint de Private Service Connect como origen
- No se admite la inclusión en listas de permitidas basada en IP mediante redes autorizadas.
- Si tu proyecto de red contiene instancias que usan la antigua arquitectura de red de Cloud SQL, no podrás crear una instancia de Private Service Connect. Cloud SQL ofrece herramientas para ayudarte a actualizar tus instancias de la arquitectura de red antigua a la nueva. Para obtener más información o comprobar la arquitectura de red de las instancias de Cloud SQL de tu proyecto y realizar las actualizaciones necesarias, consulta Actualizar una instancia a la nueva arquitectura de red.
Solucionar problemas
En esta sección se incluye información sobre los problemas asociados a las instancias de Cloud SQL con Private Service Connect habilitado, así como los pasos para solucionarlos.
Problema Solución de problemas La vinculación de servicio de la instancia no acepta el endpoint de Private Service Connect. - Comprueba el estado del endpoint.
gcloud
Para comprobar el estado, usa el comando
gcloud compute forwarding-rules describe
.gcloud compute forwarding-rules describe ENDPOINT_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ | grep pscConnectionStatus
Haz las siguientes sustituciones:
- ENDPOINT_NAME: el nombre del endpoint
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene el endpoint.
- REGION_NAME: nombre de la región del endpoint
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene el endpoint de Private Service Connect
- REGION_NAME: el nombre de la región
- ENDPOINT_NAME: el nombre del endpoint
Método HTTP y URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "compute#forwardingRule", "id": "ENDPOINT_ID", "creationTimestamp": "2024-05-09T12:03:21.383-07:00", "name": "ENDPOINT_NAME", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "IPAddress": "IP_ADDRESS", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default", "serviceDirectoryRegistrations": [ { "namespace": "goog-psc-default" } ], "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "fingerprint": "FINGERPRINT_ID", "pscConnectionId": "CONNECTION_ID", "pscConnectionStatus": "ACCEPTED", "allowPscGlobalAccess": true }
- Verifica que el estado del endpoint sea
ACCEPTED
. Si el estado esPENDING
, significa que la instancia no permite el proyecto Google Cloud que contiene el endpoint. Asegúrate de que el proyecto de red en el que se crea el endpoint esté permitido. Para obtener más información, consulta Editar una instancia con Private Service Connect habilitado.
ERROR: (gcloud.compute.forwarding-rules.create) Could not fetch resource: The resource 'projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME' was not found
Este mensaje de error puede producirse al reservar una dirección IP interna estática para el punto final de Private Service Connect. Asegúrate de que la subred especificada exista en el proyecto indicado en el URI. Si quieres crear un endpoint en un proyecto de servicio, pero usar una subred de una red de VPC compartida, debes especificar la subred por su URI y usar el ID del proyecto host en el URI. Para obtener más información, consulta Crear el endpoint manualmente. ERROR: (gcloud.compute.forwarding-rules.create) Could not fetch resource: - The resource 'projects/PROJECT_ID/global/networks/NETWORK_NAME' was not found
Este mensaje de error puede producirse cuando creas un punto final de Private Service Connect manualmente. Asegúrate de que la red especificada exista en el proyecto indicado en el URI. Si quieres crear un endpoint en un proyecto de servicio, pero usar una red de VPC compartida, debes especificar la red por su URI y usar el ID del proyecto del host en el URI. Para obtener más información, consulta Crear el endpoint manualmente. Invalid consumer network status for PSC auto connection
.La red de consumo no está configurada correctamente o no está configurada en absoluto y, por lo tanto, no hay ningún endpoint disponible al que conectarse. Para conectarte al endpoint, tendrás que comprobar su estado y corregir el error antes de volver a intentarlo.
Para comprobar el estado de un endpoint, consulta Recuperar el endpoint. El estado del endpoint puede ser uno de los siguientes:CONNECTION_POLICY_MISSING
: no hay ninguna política de conexión de servicio coincidente en la red del consumidor. Las políticas de conexión de servicio se configuran por red y por región. Para volver a configurar la red, consulta Actualizar una política de conexión de servicio.CONSUMER_INSTANCE_PROJECT_NOT_ALLOWLISTED
: hay una política de conexión de servicio coincidente, pero la instancia de servicio no está configurada para permitir la conexión a esta instancia. Para volver a configurar la política de conexión de servicio, consulta Actualizar una política de conexión de servicio.POLICY_LIMIT_REACHED
: la política de conexión de servicio ha alcanzado su límite de endpoints. Para solucionar este problema, debes aumentar el límite de endpoints actualizando la política de conexión de servicio.
No permission to create a service connection policy
.No tienes los permisos necesarios para crear una política de conexión de servicio. Para crear una política de conexión de servicio, necesitas el rol
Compute Network Admin IAM
. Para obtener más información, consulta Roles y permisos.La vinculación de red no puede aceptar conexiones desde la interfaz de Private Service Connect cuando se usa la conectividad saliente de Private Service Connect. Si tu red externa no puede aceptar conexiones desde la interfaz de Private Service Connect, es posible que las políticas de conexión de tu vinculación de red no estén configuradas correctamente.
Las vinculaciones de red deben configurarse para aceptar todas las conexiones automáticamente o configurarse manualmente con una lista de conexiones aceptadas. Para obtener más información, consulta las políticas de conexión.Usa el siguiente comando para verificar las conexiones aceptadas en tu adjunto de red:
Si la interfaz de Private Service Connect no está en la lista de interfaces aceptadas, actualiza tu vinculación de red. Para obtener más información, consulta Gestionar archivos adjuntos de red.gcloud compute network-attachments describe default --region=REGION_ID
Siguientes pasos
- Más información sobre las IPs privadas
- Consulta más información sobre Private Service Connect.
- Consulta más información sobre cómo crear una réplica de lectura de una instancia con Private Service Connect habilitado.
- Consulta más información sobre cómo clonar una instancia con Private Service Connect habilitado.
- Consulta más información sobre cómo ver información de resumen sobre las instancias con Private Service Connect habilitado.
- Consulta más información sobre cómo configurar y quitar la alta disponibilidad de una instancia con Private Service Connect habilitado.
- Consulta más información sobre cómo editar y eliminar una instancia con Private Service Connect habilitado.