Configurar o acesso a serviços particulares e o Private Service Connect

Esta página descreve como configurar o Acesso privado a serviços e o Private Service Connect.

Ao configurar o acesso a serviços particulares, você pode alocar um intervalo de endereços IP e criar uma conexão de serviço particular para a rede de nuvem privada virtual (VPC) no seu projeto do Google Cloud. Isso permite que os recursos na rede VPC se conectem às suas instâncias do Cloud SQL.

Ao configurar o Private Service Connect, você pode se conectar a uma instância primária do Cloud SQL ou a qualquer uma das réplicas de leitura de várias redes VPC que pertencem a diferentes grupos, equipes, projetos ou organizações.

Criar uma instância com suporte ao acesso a serviços privados e ao Private Service Connect

Ao criar uma instância do Cloud SQL com suporte ao acesso a serviços privados e ao Private Service Connect, você aproveita os benefícios de ambos os serviços. Para mais informações, consulte Opções de conexão para instâncias.

Com o Private Service Connect, você pode se conectar a uma instância do Cloud SQL de várias redes VPC que pertencem a diferentes grupos, equipes, projetos ou organizações.

É possível criar uma instância do Cloud SQL com suporte para o Acesso a serviços privados e o Private Service Connect usando a gcloud CLI ou a API.

gcloud

Para criar uma instância compatível com o acesso a serviços particulares e o Private Service Connect, use o 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

Faça as seguintes substituições:

  • INSTANCE_NAME: o nome da instância.
  • PROJECT_ID: o ID ou número do projeto do Google Cloud que contém a instância.
  • REGION_NAME: o nome da região da instância.
  • ALLOWED_PROJECTS: uma lista de IDs ou números de projetos permitidos, separados por vírgulas. Se um projeto não estiver na lista, não será possível criar endpoints do Private Service Connect no projeto para se conectar à instância.

  • AVAILABILITY_TYPE: ativar a alta disponibilidade para a promovida. Para esse parâmetro, especifique um dos seguintes valores:
    • REGIONAL: ativa a alta disponibilidade e é recomendado para instâncias de produção. A instância faz o failover para outra zona na sua região selecionada.
    • ZONAL: não fornece capacidade de failover. Esse é o valor padrão.

    Para mais informações sobre como configurar e remover a alta disponibilidade de instâncias, consulte Configurar uma instância existente para alta disponibilidade e Desativar a alta disponibilidade de uma instância.

  • RANGE_NAME: para esse parâmetro opcional, defina um nome de intervalo para o qual um intervalo de IP é alocado. O nome do intervalo precisa obedecer a RFC 1035 e conter de 1 a 63 caracteres.
  • MACHINE_TYPE: o tipo de máquina da instância.
  • DATABASE_VERSION: a versão do banco de dados para a instância (por exemplo, MYSQL_8_0).
  • VPC_NETWORK_NAME: o nome e o caminho da rede VPC à qual a instância se conecta (por exemplo, "projects/PROJECT_ID/global/networks/default").
  • VPC_NETWORK_PATH: o caminho para a rede VPC em que o endpoint do Private Service Connect precisa ser criado. Examplo:
    projects/my-host-project/global/networks/default.
  • SERVICE_PROJECT: o projeto em que o endpoint do Private Service Connect é criado. Se a rede VPC não for compartilhada, esse projeto só poderá ser o host da rede. Se for uma VPC compartilhada, ela pode ser o projeto host ou de serviço.

    Todos os projetos especificados nos parâmetros de conexão automática são adicionados aos projetos permitidos automaticamente.

Para saber como se conectar a uma instância com o Private Service Connect ativado, consulte Conectar-se a uma instância do Cloud SQL.

Para desativar o IP público, use o parâmetro --no-assign-ip.

Como opção, use o parâmetro --enable-google-private-path para permitir que outros serviços do Google Cloud, como o BigQuery, acessem dados no Cloud SQL e façam consultas nesses dados em uma conexão IP particular. Esse parâmetro só será válido se:

  • Use o parâmetro --no-assign-ip.
  • Use o parâmetro --network para especificar o nome da rede VPC que você quer usar para criar uma conexão particular.

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o ID ou número do projeto do Google Cloud que contém a instância.
  • INSTANCE_NAME: o nome da instância.
  • REGION_NAME: o nome da região da instância.
  • AVAILABILITY_TYPE: ativa a alta disponibilidade para a promovida. Para esse parâmetro, especifique um dos seguintes valores:
    • REGIONAL: ativa a alta disponibilidade e é recomendado para instâncias de produção. A instância faz o failover para outra zona na sua região selecionada.
    • ZONAL: não fornece capacidade de failover. Esse é o valor padrão.

    Para mais informações sobre como configurar e remover a alta disponibilidade de instâncias, consulte Configurar uma instância existente para alta disponibilidade e Desativar a alta disponibilidade de uma instância.

  • VPC_NETWORK_NAME: o nome e o caminho da rede VPC à qual a instância se conecta (por exemplo, "projects/PROJECT_ID/global/networks/default").
  • RANGE_NAME: para esse parâmetro opcional, defina um nome de intervalo para o qual um intervalo de IP é alocado. O nome do intervalo precisa obedecer a RFC 1035 e conter de 1 a 63 caracteres.
  • ALLOWED_PROJECTS: uma lista de IDs ou números de projetos permitidos, separados por vírgulas. Se um projeto não estiver na lista, não será possível criar endpoints do Private Service Connect no projeto para se conectar à instância.

  • VPC_NETWORK_PATH: o caminho para a rede VPC em que o endpoint do Private Service Connect precisa ser criado. Examplo:
    projects/my-host-project/global/networks/default.
  • SERVICE_PROJECT: o projeto em que o endpoint do Private Service Connect é criado. Se a rede VPC não for compartilhada, esse projeto só poderá ser o host da rede. Se for uma VPC compartilhada, ela pode ser o projeto host ou de serviço.

    Todos os projetos especificados nos parâmetros de conexão automática são adicionados aos projetos permitidos automaticamente.

  • MACHINE_TYPE: o tipo de máquina da instância.

Para saber como se conectar a uma instância com o Private Service Connect ativado, consulte Conectar-se a uma instância do Cloud SQL.

Você definiu o parâmetro ipv4Enabled como false porque a instância tem um endereço IP interno.

Se você definir o parâmetro opcional enablePrivatePathForGoogleCloudServices como true, permitirá que outros serviços do Google Cloud, como o BigQuery, acessem dados no Cloud SQL e façam consultas nesses dados em uma conexão IP interna. Ao definir esse parâmetro como false, outros serviços do Google Cloud não podem acessar dados no Cloud SQL por uma conexão de IP interna.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

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

Desativar o Private Service Connect para uma instância

É possível desativar o Private Service Connect em uma instância que tenha o acesso a serviços particulares e o Private Service Connect ativados. Por motivos de segurança, talvez você não queira se conectar à instância de várias redes VPC que pertencem a diferentes grupos, equipes, projetos ou organizações.

É possível desativar o Private Service Connect para uma instância usando a gcloud CLI ou a API.

gcloud

Para desativar o Private Service Connect em uma instância, use o 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

Faça as seguintes substituições:

  • INSTANCE_NAME: o nome da instância.
  • PROJECT_ID: o ID ou número do projeto do Google Cloud que contém a instância

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o ID ou número do projeto do Google Cloud que contém a instância
  • INSTANCE_NAME: o nome da instância

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

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

Ativar o Private Service Connect para uma instância

É possível ativar o Private Service Connect para uma instância que já tenha o acesso a serviços particulares ativado. Use o Private Service Connect para se conectar a uma instância do Cloud SQL de várias redes VPC.

É possível ativar o Private Service Connect para uma instância usando a gcloud CLI ou a API.

gcloud

Para ativar o Private Service Connect em uma instância, use o 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

Faça as seguintes substituições:

  • INSTANCE_NAME: o nome da instância.
  • PROJECT_ID: o ID ou número do projeto do Google Cloud que contém a instância
  • ALLOWED_PROJECTS: uma lista de IDs ou números de projetos permitidos, separados por vírgulas. Se um projeto não estiver na lista, não será possível criar endpoints do Private Service Connect no projeto para se conectar à instância.

  • VPC_NETWORK_PATH: o caminho para a rede VPC em que o endpoint do Private Service Connect é criado. Examplo:
    projects/my-host-project/global/networks/default.
  • SERVICE_PROJECT: o projeto em que o endpoint do Private Service Connect é criado. Se a rede VPC não for compartilhada, esse projeto só poderá ser o host da rede. Se for uma VPC compartilhada, ela pode ser o projeto host ou de serviço.

    Todos os projetos especificados nos parâmetros de conexão automática são adicionados aos projetos permitidos automaticamente.

Para saber como se conectar a uma instância com o Private Service Connect ativado, consulte Conectar-se a uma instância do Cloud SQL.

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o ID ou número do projeto do Google Cloud que contém a instância.
  • INSTANCE_NAME: o nome da instância.
  • ALLOWED_PROJECTS: uma lista de IDs ou números de projetos permitidos, separados por vírgulas. Eles substituem os projetos que já estão configurados para usar o Private Service Connect. Se um projeto não estiver na lista, não será possível criar endpoints do Private Service Connect no projeto para se conectar à instância.
  • VPC_NETWORK_PATH: o caminho para a rede VPC em que o endpoint do Private Service Connect é criado. Examplo:
    projects/my-host-project/global/networks/default.
  • SERVICE_PROJECT: o projeto em que o endpoint do Private Service Connect é criado. Se a rede VPC não for compartilhada, esse projeto só poderá ser o host da rede. Se for uma VPC compartilhada, ela pode ser o projeto host ou de serviço.

    Todos os projetos especificados nos parâmetros de conexão automática são adicionados aos projetos permitidos automaticamente.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "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 saber como se conectar a uma instância com o Private Service Connect ativado, consulte Conectar-se a uma instância do Cloud SQL.