En esta página, se describe cómo configurar el acceso privado a servicios y Private Service Connect.
Si configuras el acceso a servicios privados, puedes asignar un rango de direcciones IP y crear una conexión de servicio privada para la red de nube privada virtual (VPC) en tu proyecto de Google Cloud. Esto permite que los recursos de la red de VPC se conecten a tus instancias de Cloud SQL.
Si configuras Private Service Connect, puedes conectarte a una instancia principal de Cloud SQL o a cualquiera de sus réplicas de lectura desde varias redes de VPC que pertenezcan a organizaciones, grupos, equipos o proyectos diferentes.
Crea una instancia que admita el acceso a servicios privados y Private Service Connect
Si creas una instancia de Cloud SQL que admita el acceso a servicios privados y Private Service Connect, obtendrás los beneficios de ambos servicios. Para obtener más información, consulta Opciones de conexión para instancias.
Con Private Service Connect, puedes conectarte a una instancia de Cloud SQL desde varias redes de VPC que pertenezcan a organizaciones, grupos, equipos o proyectos diferentes.
Puedes crear una instancia de Cloud SQL que admita el acceso a servicios privados y Private Service Connect con gcloud CLI o la API.
gcloud
Para crear una instancia que admita el acceso a servicios privados y Private Service Connect, usa el comando gcloud beta sql instances create
:
gcloud beta 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 \ --allocated-ip-range-name=RANGE_NAME \ --enable-google-private-path \ --tier=MACHINE_TYPE \ --database-version=DATABASE_VERSION \ --network=VPC_NETWORK_NAME \ --enable-bin-log \ --psc-auto-connections=network=VPC_NETWORK_PATH,project=SERVICE_PROJECT
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 crear extremos de Private Service Connect en el proyecto para conectarte a la instancia.
- 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.
- RANGE_NAME: Para este parámetro opcional, establece un nombre de rango para el que se asigna un rango de IP. El nombre del rango debe cumplir con
RFC 1035
y contener de 1 a 63 caracteres. - MACHINE_TYPE: el tipo de máquina para la instancia.
- DATABASE_VERSION: la versión de la base de datos para la instancia (por ejemplo,
MYSQL_8_0
). - VPC_NETWORK_NAME: El nombre y la ruta de acceso de la red de VPC a la que se conecta la instancia (por ejemplo,
"projects/PROJECT_ID/global/networks/default"
). - VPC_NETWORK_PATH: Es la ruta de acceso a la red de VPC desde la que se debe crear el extremo de Private Service Connect. Por ejemplo:
projects/my-host-project/global/networks/default
. SERVICE_PROJECT: El proyecto en el que se crea el extremo de Private Service Connect. Si la red de VPC no es una VPC compartida, este solo puede ser el proyecto host de la red. Si se trata de una VPC compartida, puede ser el proyecto host o el proyecto de servicio.
Los proyectos que especifiques en los parámetros de conexión automática se agregarán a los proyectos permitidos automáticamente.
Para obtener información sobre cómo conectarte a una instancia que tiene habilitado Private Service Connect, consulta Cómo conectarse a una instancia de Cloud SQL.
Para desactivar la IP pública, usa el parámetro --no-assign-ip
.
Además, usa el parámetro --enable-google-private-path
para permitir que otros servicios de Google Cloud, como BigQuery, accedan a datos en Cloud SQL y realicen consultas a estos datos a través de una conexión IP privada. 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 privada.
REST
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.
- 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.
- VPC_NETWORK_NAME: El nombre y la ruta de acceso de la red de VPC a la que se conecta la instancia (por ejemplo,
"projects/PROJECT_ID/global/networks/default"
). - RANGE_NAME: Para este parámetro opcional, establece un nombre de rango para el que se asigna un rango de IP. El nombre del rango debe cumplir con
RFC 1035
y contener de 1 a 63 caracteres. 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 crear extremos de Private Service Connect en el proyecto para conectarte a la instancia.
- VPC_NETWORK_PATH: Es la ruta de acceso a la red de VPC desde la que se debe crear el extremo de Private Service Connect. Por ejemplo:
projects/my-host-project/global/networks/default
. SERVICE_PROJECT: El proyecto en el que se crea el extremo de Private Service Connect. Si la red de VPC no es una VPC compartida, este solo puede ser el proyecto host de la red. Si se trata de una VPC compartida, puede ser el proyecto host o el proyecto de servicio.
Los proyectos que especifiques en los parámetros de conexión automática se agregarán a los proyectos permitidos automáticamente.
- MACHINE_TYPE: el tipo de máquina para la instancia.
Para obtener información sobre cómo conectarte a una instancia que tiene habilitado Private Service Connect, consulta Cómo conectarse a una instancia de Cloud SQL.
Estableces el parámetro ipv4Enabled
en false
porque tu instancia tiene una dirección IP interna.
Si configuras el parámetro opcional enablePrivatePathForGoogleCloudServices
como true
, permites que otros servicios de Google Cloud, como BigQuery, accedan a los datos en Cloud SQL y realicen consultas en estos datos a través de una conexión IP interna. Si configuras este parámetro en false
, otros servicios de Google Cloud no pueden acceder a los datos de Cloud SQL a través de una conexión IP interna.
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, "privateNetwork": VPC_NETWORK_NAME, "allocatedIpRange": "RANGE_NAME", "enablePrivatePathForGoogleCloudServices": true, "pscConfig": { "allowedConsumerProjects": [ "ALLOWED_PROJECTS" ], "pscAutoConnections": [ { "consumerProject":"SERVICE_PROJECT", "consumerNetwork":"projects/SERVICE_PROJECT/global/networks/VPC_NETWORK_PATH" } ], "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" }
Cómo desactivar Private Service Connect para una instancia
Puedes desactivar Private Service Connect en una instancia que tenga habilitado el acceso privado a servicios y Private Service Connect. Por motivos de seguridad, es posible que no quieras conectarte a la instancia desde varias redes de VPC que pertenezcan a organizaciones, grupos, equipos o proyectos diferentes.
Puedes desactivar Private Service Connect para una instancia con gcloud CLI o la API.
gcloud
Para desactivar Private Service Connect en una instancia, usa el comando gcloud beta sql instances patch
:
gcloud beta sql instances patch INSTANCE_NAME \ --project=PROJECT_ID \ --no-enable-private-service-connect \ --clear-allowed-psc-projects
Realiza los siguientes reemplazos:
- INSTANCE_NAME: Es el nombre de la instancia.
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia
REST
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: Es el nombre de la instancia.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Cuerpo JSON de la solicitud:
{ "kind": "sql#instance", "name": "INSTANCE_NAME", "project": "PROJECT_ID", "settings": { "ipConfiguration": { "pscConfig": { "pscEnabled": "false", "allowedConsumerProjects": [{}] } }, "kind": "sql#settings" } }
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": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Habilita Private Service Connect para una instancia
Puedes habilitar Private Service Connect para una instancia que ya tenga habilitado el acceso privado a servicios. Puedes usar Private Service Connect para conectarte a una instancia de Cloud SQL desde varias redes de VPC.
Puedes habilitar Private Service Connect para una instancia con gcloud CLI o la API.
gcloud
Para habilitar Private Service Connect para una instancia, usa el comando gcloud beta sql instances patch
:
gcloud beta sql instances patch INSTANCE_NAME \ --project=PROJECT_ID \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --psc-auto-connections=network=VPC_NETWORK_PATH,project=SERVICE_PROJECT
Realiza los siguientes reemplazos:
- INSTANCE_NAME: Es el nombre de la instancia.
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene 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 crear extremos de Private Service Connect en el proyecto para conectarte a la instancia.
- VPC_NETWORK_PATH: Es la ruta de acceso a la red de VPC desde la que se crea el extremo de Private Service Connect. Por ejemplo:
projects/my-host-project/global/networks/default
. SERVICE_PROJECT: El proyecto en el que se crea el extremo de Private Service Connect. Si la red de VPC no es una VPC compartida, este solo puede ser el proyecto host de la red. Si se trata de una VPC compartida, puede ser el proyecto host o el proyecto de servicio.
Los proyectos que especifiques en los parámetros de conexión automática se agregarán a los proyectos permitidos automáticamente.
Para obtener información sobre cómo conectarte a una instancia que tiene habilitado Private Service Connect, consulta Cómo conectarse a una instancia de Cloud SQL.
REST
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.
- ALLOWED_PROJECTS: Una lista de IDs o números de proyectos permitidos, separados por comas. Estos proyectos anulan proyectos que ya están configurados para usar Private Service Connect. Si un proyecto no aparece en esta lista, no puedes crear extremos de Private Service Connect en el proyecto para conectarte a la instancia.
- VPC_NETWORK_PATH: Es la ruta de acceso a la red de VPC desde la que se crea el extremo de Private Service Connect. Por ejemplo:
projects/my-host-project/global/networks/default
. SERVICE_PROJECT: El proyecto en el que se crea el extremo de Private Service Connect. Si la red de VPC no es una VPC compartida, este solo puede ser el proyecto host de la red. Si se trata de una VPC compartida, puede ser el proyecto host o el proyecto de servicio.
Los proyectos que especifiques en los parámetros de conexión automática se agregarán a los proyectos permitidos automáticamente.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Cuerpo JSON de la solicitud:
{ "kind": "sql#instance", "name": "INSTANCE_NAME", "project": "PROJECT_ID", "settings": { "ipConfiguration": { "pscConfig": { "pscAutoConnections": [ { "consumerProject":"SERVICE_PROJECT", "consumerNetwork":"projects/SERVICE_PROJECT/global/networks/VPC_NETWORK_PATH" } ], "pscEnabled": "true", "allowedConsumerProjects": [ALLOWED_PROJECTS] } }, "kind": "sql#settings" } }
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": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Para obtener información sobre cómo conectarte a una instancia que tiene habilitado Private Service Connect, consulta Cómo conectarse a una instancia de Cloud SQL.