Configure o IP privado

Esta página descreve como configurar uma instância do Cloud SQL para usar o IP privado.

Para ver informações sobre como funciona o IP privado, bem como os requisitos de gestão e ambiente, consulte o artigo IP privado.

Antes de começar

Requisitos da API e da IAM

  • Tem de ativar a API Service Networking para o seu Google Cloud projeto.
  • Se estiver a usar uma rede VPC partilhada, também tem de ativar esta API para o projeto anfitrião.

  • Para gerir uma ligação de acesso a serviços privados, o utilizador tem de ter as seguintes autorizações de gestão de identidade e de acesso (IAM). Se não tiver as autorizações necessárias, pode receber erros de autorizações insuficientes.
    • compute.networks.list
    • compute.addresses.create
    • compute.addresses.list
    • servicenetworking.services.addPeering

    Se estiver a usar uma rede VPC partilhada, também tem de adicionar o utilizador ao projeto anfitrião e atribuir as mesmas autorizações ao utilizador no projeto anfitrião.

Acesso a serviços privados

Quando cria uma nova rede de nuvem virtual privada (VPC) no seu projeto, tem de configurar o acesso privado a serviços para atribuir um intervalo de endereços IP e criar uma ligação de serviço privado. Isto permite que os recursos na rede VPC se liguem a instâncias do Cloud SQL. A consola Google Cloud oferece um assistente para ajudar a configurar esta configuração.

Configure uma instância para usar o IP privado

Pode configurar uma instância do Cloud SQL para usar o IP privado quando cria a instância ou para uma instância existente.

Configure o IP privado para uma nova instância

Para configurar uma instância do Cloud SQL para usar o IP privado ao criar uma instância:

Consola

  1. Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Clique em Criar instância.
  3. Expanda Mostrar opções de configuração.
  4. Expanda Ligações.
  5. Selecione IP privado.

    Uma lista pendente mostra as redes VPC disponíveis no seu projeto. Se o seu projeto for o projeto de serviço de uma VPC partilhada, também são apresentadas as redes VPC do projeto anfitrião.

  6. Selecione a rede de VPC que quer usar.
  7. Se vir uma mensagem a indicar que tem de configurar uma ligação de serviço privado, faça o seguinte:

    1. Clique em Configurar associação.
    2. Na secção Atribua um intervalo de IPs, selecione uma das seguintes opções:
      • Selecione um ou mais intervalos de IP existentes ou crie um novo no menu pendente. O menu pendente inclui intervalos atribuídos anteriormente, se existirem, ou pode selecionar Atribuir um novo intervalo de IPs e introduzir um novo intervalo e nome.
      • Use um intervalo de IP atribuído automaticamente na sua rede.
    3. Clique em Continuar.
    4. Clique em Criar associação.
    5. Confirme se vê a mensagem: Private service connection for network VPC_NETWORK_NAME has been successfully created.
  8. Opcionalmente, pode especificar um intervalo de IPs atribuído para as suas instâncias usarem para ligações.
    1. Expanda a opção Mostrar intervalo de IPs atribuídos.
    2. Selecione um intervalo de IPs no menu pendente.
  9. Opcional. Se quiser permitir que outros Google Cloud serviços, como o BigQuery, acedam aos dados no Cloud SQL e façam consultas a estes dados através de uma ligação de IP privada, selecione Ativar caminho privado.
  10. Conclua a configuração da instância.
  11. Clique em Criar instância.

gcloud

Antes de criar uma instância com um endereço IP privado, certifique-se de que o seu projeto está configurado para o acesso a serviços privados.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • INSTANCE_ID: o ID da instância
  • PROJECT_ID: o ID do projeto
  • NETWORK_PROJECT_ID: o ID do projeto da rede VPC

  • VPC_NETWORK_NAME: o nome da rede da VPC
  • RANGE_NAME: opcional. Se especificado, define um nome de intervalo para o qual é atribuído um intervalo de IPs. O nome do intervalo tem de estar em conformidade com RFC-1035 e conter entre 1 e 63 carateres.
  • REGION_NAME: o nome da região
Para especificar o nome da sua rede VPC, use o parâmetro --network. Para desativar o IP público, use a flag --no-assign-ip.

Além disso, opcionalmente, use o parâmetro --enable-google-private-path para permitir que outros serviços Google Cloud , como o BigQuery, acedam aos dados no Cloud SQL e façam consultas a estes dados através de uma ligação IP privada. Este parâmetro só é válido se:

  • Usar o parâmetro --no-assign-ip.
  • Use o parâmetro --network para especificar o nome da rede VPC que quer usar para criar uma ligação privada.

Para aplicar a utilização da nova arquitetura de rede à instância, use a flag --enforce-new-network-architecture. Certifique-se de que atribuiu endereços IP suficientes. Quando usa a aplicação da nova arquitetura de rede antes de um projeto ser totalmente atualizado, pode ocorrer uma falha na criação de instâncias se não houver espaço de endereço IP suficiente disponível. Para mais informações, consulte os artigos Atualize uma instância para a nova arquitetura de rede e Atribua um intervalo de endereços IP.

gcloud beta sql instances create INSTANCE_ID \
--project=PROJECT_ID \
--network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
--no-assign-ip \
--allocated-ip-range-name=RANGE_NAME \
--enable-google-private-path \
--enforce-new-network-architecture

Terraform

Para configurar o IP privado para uma nova instância, use os seguintes recursos do Terraform:


resource "google_compute_network" "peering_network" {
  name                    = "private-network"
  auto_create_subnetworks = "false"
}

resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = google_compute_network.peering_network.id
}

resource "google_service_networking_connection" "default" {
  network                 = google_compute_network.peering_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

resource "google_sql_database_instance" "instance" {
  name             = "private-ip-sql-instance"
  region           = "us-central1"
  database_version = "MYSQL_8_0"

  depends_on = [google_service_networking_connection.default]

  settings {
    tier = "db-f1-micro"
    ip_configuration {
      ipv4_enabled    = "false"
      private_network = google_compute_network.peering_network.id
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

resource "google_compute_network_peering_routes_config" "peering_routes" {
  peering              = google_service_networking_connection.default.peering
  network              = google_compute_network.peering_network.name
  import_custom_routes = true
  export_custom_routes = true
}


## Uncomment this block after adding a valid DNS suffix

# resource "google_service_networking_peered_dns_domain" "default" {
#   name       = "example-com"
#   network    = google_compute_network.peering_network.name
#   dns_suffix = "example.com."
#   service    = "servicenetworking.googleapis.com"
# }

Aplique as alterações

Para aplicar a configuração do Terraform num Google Cloud projeto, conclua os passos nas secções seguintes.

Prepare o Cloud Shell

  1. Inicie o Cloud Shell.
  2. Defina o Google Cloud projeto predefinido onde quer aplicar as suas configurações do Terraform.

    Só tem de executar este comando uma vez por projeto e pode executá-lo em qualquer diretório.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    As variáveis de ambiente são substituídas se definir valores explícitos no ficheiro de configuração do Terraform.

Prepare o diretório

Cada ficheiro de configuração do Terraform tem de ter o seu próprio diretório (também denominado módulo raiz).

  1. No Cloud Shell, crie um diretório e um novo ficheiro nesse diretório. O nome do ficheiro tem de ter a extensão .tf, por exemplo, main.tf. Neste tutorial, o ficheiro é denominado main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se estiver a seguir um tutorial, pode copiar o código de exemplo em cada secção ou passo.

    Copie o exemplo de código para o ficheiro main.tf criado recentemente.

    Opcionalmente, copie o código do GitHub. Isto é recomendado quando o fragmento do Terraform faz parte de uma solução completa.

  3. Reveja e modifique os parâmetros de exemplo para aplicar ao seu ambiente.
  4. Guarde as alterações.
  5. Inicialize o Terraform. Só tem de fazer isto uma vez por diretório.
    terraform init

    Opcionalmente, para usar a versão mais recente do fornecedor Google, inclua a opção -upgrade:

    terraform init -upgrade

Aplique as alterações

  1. Reveja a configuração e verifique se os recursos que o Terraform vai criar ou atualizar correspondem às suas expetativas:
    terraform plan

    Faça as correções necessárias à configuração.

  2. Aplique a configuração do Terraform executando o seguinte comando e introduzindo yes no comando:
    terraform apply

    Aguarde até que o Terraform apresente a mensagem "Apply complete!" (Aplicação concluída!).

  3. Abra o seu Google Cloud projeto para ver os resultados. Na Google Cloud consola, navegue para os seus recursos na IU para se certificar de que o Terraform os criou ou atualizou.

Eliminar as alterações

Para eliminar as alterações, faça o seguinte:

  1. Para desativar a proteção contra eliminação, no ficheiro de configuração do Terraform, defina o argumento deletion_protection como false.
    deletion_protection =  "false"
  2. Aplique a configuração do Terraform atualizada executando o seguinte comando e introduzindo yes no comando:
    terraform apply
  1. Remova os recursos aplicados anteriormente com a sua configuração do Terraform executando o seguinte comando e introduzindo yes no comando:

    terraform destroy

REST v1

Crie uma nova instância com um endereço IP privado:

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: O ID do projeto
  • INSTANCE_ID: O ID da instância
  • VPC_NETWORK_NAME: Especifique o nome da rede de nuvem virtual privada (VPC) que quer usar para esta instância. O acesso a serviços privados já tem de estar configurado para a rede.
  • RANGE_NAME: Opcional. Se especificado, define um nome de intervalo para o qual é alocado um intervalo de IP. O nome do intervalo tem de estar em conformidade com RFC-1035 e conter entre 1 e 63 carateres.
  • AUTHORIZED_NETWORKS: Para ligações de IP público, especifique as ligações de redes autorizadas que podem estabelecer ligação à sua instância.

Para o parâmetro ipv4Enabled, defina o valor como true se estiver a usar um endereço IP público para a sua instância ou false se a sua instância tiver um endereço IP privado.

Se definir o parâmetro enablePrivatePathForGoogleCloudServices como true, permite que outros Google Cloud serviços, como o BigQuery, acedam aos dados no Cloud SQL e façam consultas a estes dados através de uma ligação IP privada. Se definir este parâmetro como false, outros Google Cloud serviços não podem aceder a dados no Cloud SQL através de uma ligação IP privada.

Pode usar o campo sqlNetworkArchitecture para aplicar a utilização da nova arquitetura de rede à instância no momento da criação, mesmo que o projeto não esteja totalmente atualizado. Para mais detalhes sobre a nova arquitetura de rede e as respetivas implicações, consulte os artigos Atualize uma instância para a nova arquitetura de rede e Atribua um intervalo de endereços IP.

Método HTTP e URL:

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

Corpo JSON do pedido:

{
  "name": "INSTANCE_ID",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

REST v1beta4

Crie uma nova instância com um endereço IP privado:

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: O ID do projeto
  • INSTANCE_ID: O ID da instância
  • VPC_NETWORK_NAME: Especifique o nome da rede de nuvem virtual privada (VPC) que quer usar para esta instância. O acesso a serviços privados já tem de estar configurado para a rede.
  • RANGE_NAME: Opcional. Se especificado, define um nome de intervalo para o qual é alocado um intervalo de IP. O nome do intervalo tem de estar em conformidade com RFC-1035 e conter entre 1 e 63 carateres.
  • AUTHORIZED_NETWORKS: Para ligações de IP público, especifique as ligações de redes autorizadas que podem estabelecer ligação à sua instância.

Para o parâmetro ipv4Enabled, defina o valor como true se estiver a usar um endereço IP público para a sua instância ou false se a sua instância tiver um endereço IP privado.

Se definir o parâmetro enablePrivatePathForGoogleCloudServices como true, permite que outros Google Cloud serviços, como o BigQuery, acedam aos dados no Cloud SQL e façam consultas a estes dados através de uma ligação IP privada. Se definir este parâmetro como false, outros Google Cloud serviços não podem aceder a dados no Cloud SQL através de uma ligação IP privada.

Pode usar o campo sqlNetworkArchitecture para aplicar a utilização da nova arquitetura de rede à instância no momento da criação, mesmo que o projeto não esteja totalmente atualizado. Para mais detalhes sobre a nova arquitetura de rede e as respetivas implicações, consulte os artigos Atualize uma instância para a nova arquitetura de rede e Atribua um intervalo de endereços IP.

Método HTTP e URL:

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

Corpo JSON do pedido:

{
  "name": "INSTANCE_ID",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

Configure o IP privado para uma instância existente

A configuração de uma instância do Cloud SQL existente para usar o IP privado faz com que a instância seja reiniciada, o que resulta em tempo de inatividade.

Para configurar uma instância existente para usar o IP privado:

Consola

  1. Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Para abrir a página Vista geral de uma instância, clique no nome da instância.
  3. Selecione Associações no menu de navegação do Cloud SQL.
  4. No separador Rede, selecione a caixa de verificação IP privado.

    Uma lista pendente mostra as redes disponíveis no seu projeto.

  5. Selecione a rede de VPC que quer usar:
  6. Se vir a mensagem Ligação de serviço privada necessária:

    1. Clique em Configurar associação.
    2. Na secção Atribua um intervalo de IPs, escolha uma das seguintes opções:
      • Selecione um ou mais intervalos de IP existentes ou crie um novo no menu pendente. O menu pendente inclui intervalos atribuídos anteriormente, se existirem, ou pode selecionar Atribuir um novo intervalo de IPs e introduzir um novo intervalo e nome.
      • Use um intervalo de IP atribuído automaticamente na sua rede.
    3. Clique em Continuar.
    4. Clique em Criar associação.
    5. Verifique se vê o estado Private service connection for network VPC_NETWORK_NAME has been successfully created (Ligação de serviço privado para a rede VPC_NETWORK_NAME criada com êxito).
  7. Opcional. Se quiser permitir que outros Google Cloud serviços, como o BigQuery, acedam a dados no Cloud SQL e façam consultas a estes dados através de uma ligação IP privada, selecione a caixa de verificação Ativar caminho privado.
  8. Clique em Guardar.

gcloud

Certifique-se de que o seu projeto está configurado para o acesso a serviços privados.

Atualize a instância do Cloud SQL com o parâmetro --network para especificar o nome da rede VPC selecionada.

Para aplicar a utilização da nova arquitetura de rede à instância quando adicionar uma configuração de rede IP privada, use a flag --enforce-new-network-architecture. Certifique-se de que atribuiu espaço de endereço IP suficiente no seu intervalo de IP. Quando usa a aplicação da nova arquitetura de rede antes de um projeto ser totalmente atualizado, pode ocorrer uma falha na criação de instâncias se não houver espaço de endereço IP suficiente disponível.

Para mais informações, consulte os artigos Atualize uma instância para a nova arquitetura de rede e Atribua um intervalo de endereços IP.

gcloud beta sql instances patch INSTANCE_ID \
--project=PROJECT_ID \
--network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
--no-assign-ip \
--enable-google-private-path \
--enforce-new-network-architecture

REST v1

Crie uma nova instância com um endereço IP privado:

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: O ID do projeto
  • INSTANCE_ID: O ID da instância
  • VPC_NETWORK_NAME: Especifique o nome da rede de nuvem virtual privada (VPC) que quer usar para esta instância. O acesso a serviços privados já tem de estar configurado para a rede.
  • RANGE_NAME: Opcional. Se especificado, define um nome de intervalo para o qual é alocado um intervalo de IP. O nome do intervalo tem de estar em conformidade com RFC-1035 e conter entre 1 e 63 carateres.
  • AUTHORIZED_NETWORKS: Para ligações de IP público, especifique as ligações de redes autorizadas que podem estabelecer ligação à sua instância.

Para o parâmetro ipv4Enabled, defina o valor como true se estiver a usar um endereço IP público para a sua instância ou false se a sua instância tiver um endereço IP privado.

Se definir o parâmetro enablePrivatePathForGoogleCloudServices como true, permite que outros Google Cloud serviços, como o BigQuery, acedam aos dados no Cloud SQL e façam consultas a estes dados através de uma ligação IP privada. Se definir este parâmetro como false, outros Google Cloud serviços não podem aceder a dados no Cloud SQL através de uma ligação IP privada.

Pode usar o campo sqlNetworkArchitecture para aplicar a utilização da nova arquitetura de rede à instância no momento da criação, mesmo que o projeto não esteja totalmente atualizado. Para mais detalhes sobre a nova arquitetura de rede e as respetivas implicações, consulte os artigos Atualize uma instância para a nova arquitetura de rede e Atribua um intervalo de endereços IP.

Método HTTP e URL:

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

Corpo JSON do pedido:

{
  "settings":
  {
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

REST v1beta4

Crie uma nova instância com um endereço IP privado:

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • PROJECT_ID: O ID do projeto
  • INSTANCE_ID: O ID da instância
  • VPC_NETWORK_NAME: Especifique o nome da rede de nuvem virtual privada (VPC) que quer usar para esta instância. O acesso a serviços privados já tem de estar configurado para a rede.
  • RANGE_NAME: Opcional. Se especificado, define um nome de intervalo para o qual é alocado um intervalo de IP. O nome do intervalo tem de estar em conformidade com RFC-1035 e conter entre 1 e 63 carateres.
  • AUTHORIZED_NETWORKS: para ligações de IP público, especifique as ligações de redes autorizadas que podem estabelecer ligação à sua instância.

Para o parâmetro ipv4Enabled, defina o valor como true se estiver a usar um endereço IP público para a sua instância ou false se a sua instância tiver um endereço IP privado.

Se definir o parâmetro enablePrivatePathForGoogleCloudServices como true, permite que outros Google Cloud serviços, como o BigQuery, acedam aos dados no Cloud SQL e façam consultas a estes dados através de uma ligação IP privada. Se definir este parâmetro como false, outros Google Cloud serviços não podem aceder a dados no Cloud SQL através de uma ligação IP privada.

Pode usar o campo sqlNetworkArchitecture para aplicar a utilização da nova arquitetura de rede à instância no momento da criação, mesmo que o projeto não esteja totalmente atualizado. Para mais detalhes sobre a nova arquitetura de rede e as respetivas implicações, consulte os artigos Atualize uma instância para a nova arquitetura de rede e Atribua um intervalo de endereços IP.

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

Corpo JSON do pedido:

{
  "settings":
  {
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

Para enviar o seu pedido, expanda uma destas opções:

Deve receber uma resposta JSON semelhante à seguinte:

Estabeleça ligação a uma instância através do respetivo IP privado

Usa o acesso privado a serviços para estabelecer ligação a instâncias do Cloud SQL a partir de instâncias do Compute Engine ou do Google Kubernetes Engine na mesma rede VPC (definidas aqui como origens internas ) ou a partir do exterior dessa rede (uma origem externa).

Faça a ligação a partir de uma origem interna

Para estabelecer ligação a partir de uma origem no mesmo Google Cloud projeto que a sua instância do Cloud SQL, como o proxy Auth do Cloud SQL em execução num recurso do Compute Engine, esse recurso tem de estar na mesma rede de VPC onde o acesso privado aos serviços foi estabelecido para a instância do Cloud SQL.

Para estabelecer ligação a partir de uma origem sem servidor, como o ambiente padrão do App Engine, Cloud Run, ou funções do Cloud Run, a sua aplicação ou função estabelece ligação diretamente à sua instância através do acesso a VPC sem servidor sem o Cloud SQL Auth Proxy.

Estabeleça ligação a partir de uma origem externa

Se uma rede externa (por exemplo, uma rede no local ou uma rede VPC) estiver ligada à rede VPC à qual a sua instância do Cloud SQL está ligada, pode usar a Cloud VPN ou o Cloud Interconnect para se ligar à instância a partir de um cliente na rede externa.

Para permitir ligações a partir de uma rede externa, faça o seguinte:

  1. Certifique-se de que a sua rede VPC está ligada à rede externa através de um túnel do Cloud VPN ou de uma associação de VLAN para o Dedicated Interconnect ou o Partner Interconnect.
  2. Certifique-se de que as sessões do Border Gateway Protocol (BGP) nos Cloud Routers que gerem os seus túneis da Cloud VPN e anexos do Cloud Interconnect (VLANs) receberam prefixos específicos (destinos) da sua rede no local.

    Não é possível importar encaminhamentos predefinidos (destino 0.0.0.0/0) para a rede VPC do Cloud SQL porque essa rede tem o seu próprio encaminhamento predefinido local. As rotas locais para um destino são usadas mesmo que o peering do Cloud SQL esteja configurado para importar rotas personalizadas da sua rede VPC.

  3. Identifique as associações de pares produzidas pela ligação de serviços privados. Consoante o serviço, a ligação de serviços privados pode criar uma ou mais das seguintes ligações de peering, mas não necessariamente todas:
    • cloudsql-mysql-googleapis-com
    • cloudsql-postgres-googleapis-com
    • servicenetworking-googleapis-com
  4. Atualize todas as ligações de intercâmbio para ativar a opção Exportar encaminhamentos personalizados.
  5. Identifique o intervalo atribuído usado pela ligação de serviços privados.
  6. Configure o modo de anúncio personalizado do Cloud Router para o intervalo atribuído nos Cloud Routers que gerem sessões BGP para os seus túneis Cloud VPN ou anexos Cloud Interconnect (VLANs).

Estabeleça ligação a partir do Cloud Shell

O Cloud Shell usa uma máquina virtual do Compute Engine gerida pela Google e que está fora da sua rede VPC. Google Cloud Por conseguinte, não existe um caminho de conetividade entre o Cloud Shell e o espaço de endereços IP privados da sua rede VPC.

Como resultado, o Cloud Shell não suporta a ligação a uma instância do Cloud SQL que tenha apenas um endereço IP privado.

Para estabelecer ligação a instâncias do Cloud SQL a partir de uma rede externa através da conetividade de IP privado, consulte o artigo Estabeleça ligação a uma instância do Cloud SQL a partir do exterior da respetiva VPC.

Estabeleça ligação a partir de endereços IP não RFC 1918

A RFC 1918 especifica endereços IP atribuídos para utilização interna (ou seja, numa organização) e que não são encaminhados na Internet. Especificamente, são:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

As ligações a uma instância do Cloud SQL através de um endereço IP privado são autorizadas automaticamente para intervalos de endereços RFC 1918. Desta forma, todos os clientes privados podem aceder à base de dados sem passar pelo proxy.

Para estabelecer ligação a partir de um endereço IP não RFC 1918, tem de definir a autorização de IP por instância para permitir o tráfego de intervalos de endereços IP não RFC 1918.

Por exemplo, use um comando gcloud como o seguinte:

gcloud sql instances patch INSTANCE_NAME \
--authorized-networks=192.88.99.0/24,11.0.0.0/24

Por predefinição, o Cloud SQL não aprende trajetos de sub-redes não RFC 1918 da sua rede VPC. Tem de atualizar a interligação de redes para o Cloud SQL para exportar quaisquer trajetos não RFC 1918.

gcloud compute networks peerings update PEERING_CONNECTION \
--network=VPC_NETWORK_NAME \
--export-subnet-routes-with-public-ip \
--project=PROJECT_ID

    Substitua o seguinte:

  • PEERING_CONNECTION é o nome da ligação de intercâmbio produzida pela ligação de serviços privados entre a sua rede da VPC e a rede do produtor de serviços.
  • VPC_NETWORK_NAME é o nome da sua rede VPC.
  • PROJECT_ID é o ID do projeto da rede VPC. Se estiver a usar a VPC partilhada, use o ID do projeto anfitrião.

Para mitigar o esgotamento de endereços IP, pode usar endereços IP públicos usados de forma privada.

Estabeleça ligação a partir de endereços IP públicos usados de forma privada

Se quiser configurar a sua instância num intervalo de endereços IP públicos usados de forma privada, ative o export-subnet-routes-with-public-ip no peering de rede entre a sua rede e a rede do Cloud SQL.

gcloud compute networks peerings update PEERING_CONNECTION \
--network=VPC_NETWORK_NAME \
--export-subnet-routes-with-public-ip \
--project=PROJECT_ID

    Substitua o seguinte:

  • PEERING_CONNECTION é o nome da ligação de peering produzida pela ligação de serviços privados entre a sua rede VPC e a rede do produtor de serviços. Para saber o nome da ligação de peering, aceda à página Peering de redes VPC.
  • VPC_NETWORK_NAME é o nome da sua rede VPC.
  • PROJECT_ID é o ID do projeto da rede VPC. Se estiver a usar a VPC partilhada, use o ID do projeto anfitrião.

Estabeleça ligação a uma instância configurada com endereços IP públicos usados de forma privada

Se a sua instância estiver configurada num intervalo de endereços IP públicos usados de forma privada e quiser estabelecer ligação à mesma, ative import-subnet-routes-with-public-ip na interligação de redes entre a sua rede e a rede do Cloud SQL.

gcloud compute networks peerings update PEERING_CONNECTION \
--network=VPC_NETWORK_NAME \
--import-subnet-routes-with-public-ip \
--project=PROJECT_ID

Substitua o seguinte:

  • PEERING_CONNECTION é o nome da ligação de intercâmbio produzida pela ligação de serviços privados entre a sua rede da VPC e a rede do produtor de serviços. Para saber o nome da ligação de peering, aceda à página Peering de redes VPC.
  • VPC_NETWORK_NAME é o nome da sua rede VPC.
  • PROJECT_ID é o ID do projeto da rede VPC. Use o ID do projeto anfitrião se estiver a usar a VPC partilhada.

Estabeleça ligação através de um ponto final de gravação

Além de um endereço IP privado, pode usar um ponto final de gravação numa string de ligação SQL. Um ponto final de escrita é um nome de serviço de nomes de domínio (DNS) global que é resolvido automaticamente para o endereço IP da instância principal atual. Ao usar um ponto final de gravação, pode evitar ter de fazer alterações à ligação da aplicação quando ocorre uma falha na região.

Se ocorrer uma transferência ou comutação por falha de uma réplica, o ponto final de gravação pode ajudar a gerir os endereços IP privados das instâncias. Quando isto acontece, use o ponto final de escrita para estabelecer ligação à instância que funciona como instância principal.

Como o Cloud SQL cria um ponto final de escrita

Se ativar a API Cloud DNS para o seu Google Cloud projeto e, em seguida, criar uma instância principal da edição Cloud SQL Enterprise Plus, promover a réplica para a instância, ou atualizar a instância a partir da edição Cloud SQL Enterprise, o Cloud SQL gera automaticamente um ponto final de gravação e atribui-o à instância.

Se a instância principal for alterada durante os processos de comutação ou de comutação por falha, o Cloud SQL atribui o ponto final de gravação à réplica de comutação por falha, porque esta réplica é a nova instância principal.

Para mais informações, consulte o artigo Veja o ponto final de gravação.

Atribua um ponto final de gravação a uma instância

Se não ativar a API Cloud DNS para o seu Google Cloud projeto e, em seguida, criar, promover ou atualizar a sua instância, o Cloud SQL não atribui automaticamente o ponto final de gravação à instância.

Para que o Cloud SQL gere um ponto final de escrita e o atribua à instância, consulte o artigo Gerar o ponto final de escrita.

Resolver problemas

Consulte a resolução de problemas para problemas de conetividade conhecidos e a depuração de problemas de ligação para obter ajuda com o autodiagnóstico.

O que se segue?