Configurare sia l'accesso privato ai servizi sia Private Service Connect

Questa pagina descrive come configurare sia l'accesso ai servizi privati sia Private Service Connect.

Configurando l'accesso privato ai servizi, puoi allocare un intervallo di indirizzi IP e creare una connessione di servizio privato per la rete Virtual Private Cloud (VPC) nel tuo progetto Google Cloud. In questo modo, le risorse nella rete VPC possono connettersi alle tue istanze Cloud SQL.

Configurando Private Service Connect, puoi connetterti a un'istanza Cloud SQL principale o a una delle sue repliche di lettura da più reti VPC appartenenti a gruppi, team, progetti o organizzazioni diversi.

Crea un'istanza che supporti l'accesso ai servizi privati e Private Service Connect

Se crei un'istanza Cloud SQL che supporta sia l'accesso privato ai servizi sia Private Service Connect, puoi usufruire dei vantaggi di entrambi i servizi. Per saperne di più, vedi Opzioni di connessione per le istanze.

Con Private Service Connect puoi connetterti a un'istanza Cloud SQL da più reti VPC appartenenti a gruppi, team, progetti o organizzazioni diversi.

Puoi creare un'istanza Cloud SQL che supporti l'accesso privato ai servizi e Private Service Connect utilizzando gcloud CLI o l'API.

gcloud

Per creare un'istanza che supporti sia l'accesso ai servizi privati sia Private Service Connect, utilizza il 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 \
--database-version=DATABASE_VERSION \
--cpu=NUMBER_OF_vCPUs \
--memory=MEMORY_SIZE \
--root-password=ROOT_PASSWORD \
--network=VPC_NETWORK_NAME \
--psc-auto-connections=network=VPC_NETWORK_PATH,project=SERVICE_PROJECT

Effettua le seguenti sostituzioni:

  • INSTANCE_NAME: il nome dell'istanza.
  • PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza.
  • REGION_NAME: il nome della regione per l'istanza.
  • ALLOWED_PROJECTS: un elenco di ID o numeri di progetto consentiti, separati da virgole. Se un progetto non è incluso in questo elenco, non puoi creare endpoint Private Service Connect nel progetto per connetterti all'istanza.

  • AVAILABILITY_TYPE: abilita l'alta disponibilità per l'istanza. Per questo parametro, specifica uno dei seguenti valori:
    • REGIONAL: abilita la disponibilità elevata ed è consigliato per le istanze di produzione. Viene eseguito il failover dell'istanza in un'altra zona all'interno della regione selezionata.
    • ZONAL: non forniscono funzionalità di failover. Questo è il valore predefinito.

    Per ulteriori informazioni su come impostare e rimuovere l'alta disponibilità per le istanze, consulta Configurare un'istanza esistente per l'alta disponibilità e Disattivare l'alta disponibilità per un'istanza.

  • RANGE_NAME: per questo parametro facoltativo, imposta un nome per un intervallo per il quale è allocato un intervallo IP. Il nome dell'intervallo deve essere conforme a RFC 1035 e contenere da 1 a 63 caratteri.
  • DATABASE_VERSION: la versione del database per l'istanza (ad esempio SQLSERVER_2019_STANDARD).
  • NUMBER_OF_vCPUs: il numero di core per l'istanza.
  • MEMORY_SIZE: la quantità di memoria per l'istanza.
  • ROOT_PASSWORD: la password dell'utente Cloud SQL root.
  • VPC_NETWORK_NAME: il nome e il percorso della rete VPC a cui si connette l'istanza (ad es. "projects/PROJECT_ID/global/networks/default").
  • VPC_NETWORK_PATH: il percorso della rete VPC da cui deve essere creato l'endpoint Private Service Connect. Ad esempio:
    projects/my-host-project/global/networks/default.
  • SERVICE_PROJECT: il progetto in cui viene creato l'endpoint Private Service Connect. Se la rete VPC non è un VPC condiviso, questo può essere solo il progetto host per la rete. Se si tratta di un VPC condiviso, può essere il progetto host o il progetto di servizio.

    Tutti i progetti specificati nei parametri di collegamento automatico vengono aggiunti automaticamente ai progetti consentiti.

Per scoprire come connetterti a un'istanza in cui è abilitato Private Service Connect, consulta Connettersi a un'istanza Cloud SQL.

Per disattivare l'IP pubblico, utilizza il parametro --no-assign-ip.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza.
  • INSTANCE_NAME: il nome dell'istanza.
  • REGION_NAME: il nome della regione per l'istanza.
  • ROOT_PASSWORD: la password dell'utente Cloud SQL root.
  • AVAILABILITY_TYPE: abilita l'alta disponibilità per l'istanza. Per questo parametro, specifica uno dei seguenti valori:
    • REGIONAL: abilita la disponibilità elevata ed è consigliato per le istanze di produzione. Viene eseguito il failover dell'istanza in un'altra zona all'interno della regione selezionata.
    • ZONAL: non forniscono funzionalità di failover. Questo è il valore predefinito.

    Per ulteriori informazioni su come impostare e rimuovere l'alta disponibilità per le istanze, consulta Configurare un'istanza esistente per l'alta disponibilità e Disattivare l'alta disponibilità per un'istanza.

  • VPC_NETWORK_NAME: il nome e il percorso della rete VPC a cui si connette l'istanza (ad es. "projects/PROJECT_ID/global/networks/default").
  • RANGE_NAME: per questo parametro facoltativo, imposta un nome per un intervallo per il quale è allocato un intervallo IP. Il nome dell'intervallo deve essere conforme a RFC 1035 e contenere da 1 a 63 caratteri.
  • ALLOWED_PROJECTS: un elenco di ID o numeri di progetto consentiti, separati da virgole. Se un progetto non è incluso in questo elenco, non puoi creare endpoint Private Service Connect nel progetto per connetterti all'istanza.

  • VPC_NETWORK_PATH: il percorso della rete VPC da cui deve essere creato l'endpoint Private Service Connect. Ad esempio:
    projects/my-host-project/global/networks/default.
  • SERVICE_PROJECT: il progetto in cui viene creato l'endpoint Private Service Connect. Se la rete VPC non è un VPC condiviso, questo può essere solo il progetto host per la rete. Se si tratta di un VPC condiviso, può essere il progetto host o il progetto di servizio.

    Tutti i progetti specificati nei parametri di collegamento automatico vengono aggiunti automaticamente ai progetti consentiti.

  • MACHINE_TYPE: un valore di stringa enumerato che rappresenta il tipo di macchina per l'istanza. Ad esempio: db-custom-NUMBER_OF_vCPUs-MEMORY_SIZE, dove NUMBER_OF_vCPUs e MEMORY_SIZE sono il numero di core e la quantità di memoria che vuoi per l'istanza.

Per scoprire come connetterti a un'istanza in cui è abilitato Private Service Connect, consulta Connettersi a un'istanza Cloud SQL.

Imposti il parametro ipv4Enabled su false perché l'istanza ha un indirizzo IP interno.

Metodo HTTP e URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

Corpo JSON della richiesta:

{
  "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,
      "privateNetwork": VPC_NETWORK_NAME,
      "allocatedIpRange": "RANGE_NAME",
      "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"
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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"
}

Disattivare Private Service Connect per un'istanza

Puoi disattivare Private Service Connect per un'istanza per cui sono abilitati sia l'accesso ai servizi privati sia Private Service Connect. Per motivi di sicurezza, potresti non volerti connettere all'istanza da più reti VPC che appartengono a gruppi, team, progetti o organizzazioni diversi.

Puoi disattivare Private Service Connect per un'istanza utilizzando gcloud CLI o l'API.

gcloud

Per disattivare Private Service Connect per un'istanza, utilizza il 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

Effettua le seguenti sostituzioni:

  • INSTANCE_NAME: il nome dell'istanza
  • PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza
  • INSTANCE_NAME: il nome dell'istanza

Metodo HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

Corpo JSON della richiesta:

{
  "kind": "sql#instance",
  "name": "INSTANCE_NAME",
  "project": "PROJECT_ID",
  "settings": {
    "ipConfiguration": {
      "pscConfig": {
        "pscEnabled": "false",
        "allowedConsumerProjects": [{}]
      }
    },
    "kind": "sql#settings"
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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"
}

Abilita Private Service Connect per un'istanza

Puoi attivare Private Service Connect per un'istanza per cui è già stato attivato l'accesso ai servizi privati. Puoi utilizzare Private Service Connect per connetterti a un'istanza Cloud SQL da più reti VPC.

Puoi attivare Private Service Connect per un'istanza utilizzando gcloud CLI o l'API.

gcloud

Per attivare Private Service Connect per un'istanza, utilizza il 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

Effettua le seguenti sostituzioni:

  • INSTANCE_NAME: il nome dell'istanza
  • PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza
  • ALLOWED_PROJECTS: un elenco di ID o numeri di progetto consentiti, separati da virgole. Se un progetto non è incluso in questo elenco, non puoi creare endpoint Private Service Connect nel progetto per connetterti all'istanza.

  • VPC_NETWORK_PATH: il percorso della rete VPC da cui viene creato l'endpoint Private Service Connect. Ad esempio:
    projects/my-host-project/global/networks/default.
  • SERVICE_PROJECT: il progetto in cui viene creato l'endpoint Private Service Connect. Se la rete VPC non è un VPC condiviso, questo può essere solo il progetto host per la rete. Se si tratta di un VPC condiviso, può essere il progetto host o il progetto di servizio.

    Tutti i progetti specificati nei parametri di collegamento automatico vengono aggiunti automaticamente ai progetti consentiti.

Per scoprire come connetterti a un'istanza in cui è abilitato Private Service Connect, consulta Connettersi a un'istanza Cloud SQL.

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza.
  • INSTANCE_NAME: il nome dell'istanza.
  • ALLOWED_PROJECTS: un elenco di ID o numeri di progetto consentiti, separati da virgole. Questi progetti sostituiscono i progetti già configurati per l'utilizzo di Private Service Connect. Se un progetto non è incluso in questo elenco, non puoi creare endpoint Private Service Connect nel progetto per connetterti all'istanza.
  • VPC_NETWORK_PATH: il percorso della rete VPC da cui viene creato l'endpoint Private Service Connect. Ad esempio:
    projects/my-host-project/global/networks/default.
  • SERVICE_PROJECT: il progetto in cui viene creato l'endpoint Private Service Connect. Se la rete VPC non è un VPC condiviso, questo può essere solo il progetto host per la rete. Se si tratta di un VPC condiviso, può essere il progetto host o il progetto di servizio.

    Tutti i progetti specificati nei parametri di collegamento automatico vengono aggiunti automaticamente ai progetti consentiti.

Metodo HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

Corpo JSON della richiesta:

{
  "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"
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "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"
}

Per scoprire come connetterti a un'istanza in cui è abilitato Private Service Connect, consulta Connettersi a un'istanza Cloud SQL.