Configure o IP público

Esta página descreve como configurar a conetividade de IP público para uma instância do Cloud SQL.

Introdução

Pode configurar a sua instância do Cloud SQL para ter um endereço IPv4 público e aceitar ligações de endereços IP específicos ou um intervalo de endereços adicionando endereços autorizados à sua instância.

Não pode especificar uma rede privada (por exemplo, 10.x.x.x) como uma rede autorizada.

Endereços IP públicos para instâncias do PostgreSQL:

  • IPv6: as instâncias não suportam IPv6.
  • IPv4: as instâncias têm um endereço IPv4 estático atribuído automaticamente. Existe um pequeno custo para o endereço IP sempre que a sua instância está desativada.

Para obter ajuda com a ligação de um cliente de administração à sua instância através de uma ligação IP, consulte o artigo Ligar o cliente psql usando endereços IP.

Se configurar a sua instância para aceitar ligações através do respetivo endereço IP público, também a deve configurar para usar SSL para manter os seus dados seguros. Para mais informações, consulte o artigo Configure o SSL para instâncias.

Para configurar a sua instância com um endereço IP que não esteja exposto à Internet pública, consulte o artigo Configurar a conetividade de IP privado.

Ative o IP público e adicione um endereço ou um intervalo de endereços autorizado

Quando ativa o IP público para a sua instância, o Cloud SQL configura a instância com um endereço IPv4 público e estático. Depois de ativar o IP público, tem de configurar a autorização para as ligações à base de dados. Consulte as Opções de autorização para mais informações.

Se estiver a usar uma autoridade de certificação (CA) partilhada ou uma CA gerida pelo cliente como serverCaMode para a sua instância, a instância requer um reinício quando ativa o IP público para a instância. Para mais informações sobre a configuração do modo de AC do servidor, consulte o artigo Autoridades de certificação (AC).

Para ativar o IP público e adicionar um endereço autorizado:

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. No menu de navegação do SQL, selecione Associações.
  4. Clique no separador Rede.
  5. Selecione a caixa de verificação IP público.
  6. Clique em Adicionar rede.
  7. Opcionalmente, no campo Nome, introduza um nome para esta rede.
  8. No campo Rede, introduza o endereço IP ou o intervalo de endereços a partir dos quais quer permitir ligações.

    Use a notação CIDR.

  9. Clique em Concluído.
  10. Clique em Guardar.

gcloud

  1. Se ainda não o fez, adicione um endereço IPv4 à instância:
    gcloud sql instances patch INSTANCE_NAME\
    --assign-ip
  2. Mostrar todos os endereços autorizados existentes descrevendo a instância:
    gcloud sql instances describe INSTANCE_NAME

    Procure entradas authorizedNetwork em ipConfiguration e tome nota de todos os endereços autorizados que quer manter.

  3. Atualize a lista de redes autorizadas, incluindo todos os endereços que quer incluir.
    gcloud sql instances patch INSTANCE_NAME \
    --authorized-networks=IP_ADDR1,IP_ADDR2...

    Use a notação CIDR.

  4. Confirme as alterações:
    gcloud sql instances describe INSTANCE_NAME

REST v1

  1. Mostrar todos os endereços autorizados existentes descrevendo a instância:

    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
    • machine-type O tipo de máquina da instância
    • zone A zona da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

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

    Deve receber uma resposta JSON semelhante à seguinte:

  2. Atualize a instância, incluindo todos os endereços que quer definir na instância:

    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
    • network_range_1 Um endereço ou um intervalo de IP autorizado
    • network_range_2 Outro endereço ou intervalo de IP autorizado

    Método HTTP e URL:

    PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

    Corpo JSON do pedido:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks":
            [{"value": "network_range_1"}, {"value": "network_range_2"}]
        }
      }
    }
    

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

    Deve receber uma resposta JSON semelhante à seguinte:

    Use a notação CIDR.

  3. Confirme as alterações:

    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
    • ip-address1: a forma CIDR do primeiro endereço IP
    • ip-address-name1: O nome do primeiro endereço IP
    • ip-address2: a forma CIDR do segundo endereço IP
    • ip-address-name2: O nome do segundo endereço IP
    • machine-type O tipo de máquina da instância
    • zone A zona da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

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

    Deve receber uma resposta JSON semelhante à seguinte:

Terraform

Para ativar o IP público e adicionar um endereço ou um intervalo de endereços autorizado, use um recurso do Terraform.

resource "google_sql_database_instance" "postgres_public_ip_instance_name" {
  database_version = "POSTGRES_14"
  name             = "postgres-public-ip-instance-name"
  region           = "asia-southeast2"
  settings {
    availability_type = "ZONAL"
    ip_configuration {
      # Add optional authorized networks
      # Update to match the customer's networks
      authorized_networks {
        name  = "test-net-3"
        value = "203.0.113.0/24"
      }
      # Enable public IP
      ipv4_enabled = true
    }
    tier = "db-custom-2-7680"
  }
  # 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
}

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 v1beta4

  1. Mostrar todos os endereços autorizados existentes descrevendo a instância:

    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
    • machine-type O tipo de máquina da instância
    • zone A zona da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

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

    Deve receber uma resposta JSON semelhante à seguinte:

  2. Atualize a instância, incluindo todos os endereços que quer definir na instância:

    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
    • network_range_1 Um endereço ou um intervalo de IP autorizado
    • network_range_2 Outro endereço ou intervalo de IP autorizado

    Método HTTP e URL:

    PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    Corpo JSON do pedido:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks":
            [{"value": "network_range_1"}, {"value": "network_range_2"}]
        }
      }
    }
    

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

    Deve receber uma resposta JSON semelhante à seguinte:

    Use a notação CIDR.

  3. Confirme as alterações:

    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
    • ip-address1: a forma CIDR do primeiro endereço IP
    • ip-address-name1: O nome do primeiro endereço IP
    • ip-address2: a forma CIDR do segundo endereço IP
    • ip-address-name2: O nome do segundo endereço IP
    • machine-type O tipo de máquina da instância
    • zone A zona da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

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

    Deve receber uma resposta JSON semelhante à seguinte:

Remova um endereço ou um intervalo de endereços autorizado

Para remover uma morada autorizada:

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 SQL.
  4. Clique no ícone de eliminação Eliminar. junto à morada que quer eliminar.
  5. Clique em Guardar para atualizar a instância.

gcloud

  1. Mostrar todos os endereços autorizados existentes descrevendo a instância:
    gcloud sql instances describe INSTANCE_NAME

    Procure entradas authorizedNetwork em ipConfiguration e tome nota de todos os endereços autorizados que quer manter.

  2. Atualize a lista de redes autorizadas, removendo todos os endereços que quer remover.
    gcloud sql instances patch INSTANCE_NAME \
    --authorized-networks=IP_ADDR1,IP_ADDR2...
  3. Confirme as alterações:
    gcloud sql instances describe INSTANCE_NAME

REST v1

  1. Mostrar todos os endereços autorizados existentes descrevendo a instância:

    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
    • ip-address1: a forma CIDR do primeiro endereço IP
    • ip-address-name1: O nome do primeiro endereço IP
    • ip-address2: a forma CIDR do segundo endereço IP
    • ip-address-name2: O nome do segundo endereço IP
    • machine-type O tipo de máquina da instância
    • zone A zona da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

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

    Deve receber uma resposta JSON semelhante à seguinte:

  2. Atualize a instância, incluindo todas as moradas que quer manter e removendo as moradas que quer remover:

    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
    • network_range_1 O endereço IP ou o intervalo de rede autorizado a remover

    Método HTTP e URL:

    PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

    Corpo JSON do pedido:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks":
            [{"value": "network_range_1"}]
        }
      }
    }
    
    

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

    Deve receber uma resposta JSON semelhante à seguinte:

  3. Confirme as alterações:

    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
    • ip-address: o formulário CIDR do endereço IP
    • ip-address-name: O nome do endereço IP
    • machine-type O tipo de máquina da instância
    • zone A zona da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

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

    Deve receber uma resposta JSON semelhante à seguinte:

REST v1beta4

  1. Mostrar todos os endereços autorizados existentes descrevendo a instância:

    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
    • ip-address1: a forma CIDR do primeiro endereço IP
    • ip-address-name1: O nome do primeiro endereço IP
    • ip-address2: a forma CIDR do segundo endereço IP
    • ip-address-name2: O nome do segundo endereço IP
    • machine-type O tipo de máquina da instância
    • zone A zona da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

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

    Deve receber uma resposta JSON semelhante à seguinte:

  2. Atualize a instância, incluindo todas as moradas que quer manter e removendo as moradas que quer remover:

    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
    • network_range_1 O endereço IP ou o intervalo de rede autorizado a remover

    Método HTTP e URL:

    PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    Corpo JSON do pedido:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks":
            [{"value": "network_range_1"}]
        }
      }
    }
    
    

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

    Deve receber uma resposta JSON semelhante à seguinte:

  3. Confirme as alterações:

    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
    • ip-address: o formulário CIDR do endereço IP
    • ip-address-name: O nome do endereço IP
    • machine-type O tipo de máquina da instância
    • zone A zona da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

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

    Deve receber uma resposta JSON semelhante à seguinte:

Configure uma instância para recusar todas as ligações de IP público

Para configurar uma instância de forma a recusar todas as ligações de IP público:

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 SQL.
  4. Clique no ícone de eliminação Eliminar. para todas as moradas autorizadas.
  5. Clique em Guardar para atualizar a instância.

gcloud

  1. Limpe a lista de endereços autorizados:
    gcloud sql instances patch INSTANCE_NAME \
    --clear-authorized-networks
  2. Confirme as alterações:
    gcloud sql instances describe INSTANCE_NAME

REST v1

  1. Mostrar todos os endereços autorizados existentes descrevendo a instância:

    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
    • ip-address1: a forma CIDR do primeiro endereço IP
    • ip-address-name1: O nome do primeiro endereço IP
    • ip-address2: a forma CIDR do segundo endereço IP
    • ip-address-name2: O nome do segundo endereço IP
    • machine-type O tipo de máquina da instância
    • zone A zona da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

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

    Deve receber uma resposta JSON semelhante à seguinte:

  2. Atualize a instância com uma lista de endereços vazia:

    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

    Método HTTP e URL:

    PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

    Corpo JSON do pedido:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks": []
        }
      }
    }
    

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

    Deve receber uma resposta JSON semelhante à seguinte:

  3. Confirme as alterações:

    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
    • machine-type O tipo de máquina da instância
    • zone A zona da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

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

    Deve receber uma resposta JSON semelhante à seguinte:

REST v1beta4

  1. Mostrar todos os endereços autorizados existentes descrevendo a instância:

    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
    • ip-address1: a forma CIDR do primeiro endereço IP
    • ip-address-name1: O nome do primeiro endereço IP
    • ip-address2: a forma CIDR do segundo endereço IP
    • ip-address-name2: O nome do segundo endereço IP
    • machine-type O tipo de máquina da instância
    • zone A zona da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

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

    Deve receber uma resposta JSON semelhante à seguinte:

  2. Atualize a instância com uma lista de endereços vazia:

    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

    Método HTTP e URL:

    PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    Corpo JSON do pedido:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks": []
        }
      }
    }
    

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

    Deve receber uma resposta JSON semelhante à seguinte:

  3. Confirme as alterações:

    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
    • machine-type O tipo de máquina da instância
    • zone A zona da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

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

    Deve receber uma resposta JSON semelhante à seguinte:

Desativar IP público

Pode desativar o IP público, mas apenas se a sua instância também estiver configurada para usar o IP privado. Para ativar o IP privado, consulte o artigo Configurar uma instância existente para usar o IP privado.

Se estiver a usar uma autoridade de certificação (AC) partilhada ou uma AC gerida pelo cliente como serverCaMode para a sua instância, a instância requer um reinício quando desativa o IP público para a instância. Para mais informações sobre a configuração do modo de AC do servidor, consulte o artigo Autoridades de certificação (AC).

Para desativar o IP público:

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 SQL.
  4. Desmarque a caixa de verificação IP público.
  5. Clique em Guardar para atualizar a instância.

gcloud

  1. Atualize a instância:
    gcloud sql instances patch INSTANCE_NAME \
    --no-assign-ip
  2. Confirme as alterações:
    gcloud sql instances describe INSTANCE_NAME

REST v1

  1. Mostrar todos os endereços autorizados existentes descrevendo a instância:

    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
    • ip-address1: a forma CIDR do primeiro endereço IP
    • ip-address-name1: O nome do primeiro endereço IP
    • ip-address2: a forma CIDR do segundo endereço IP
    • ip-address-name2: O nome do segundo endereço IP
    • machine-type O tipo de máquina da instância
    • zone A zona da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

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

    Deve receber uma resposta JSON semelhante à seguinte:

  2. Atualize a instância:

    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:

  3. Confirme as alterações:

    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
    • machine-type O tipo de máquina da instância
    • zone A zona da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

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

    Deve receber uma resposta JSON semelhante à seguinte:

REST v1beta4

  1. Mostrar todos os endereços autorizados existentes descrevendo a instância:

    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
    • ip-address1: a forma CIDR do primeiro endereço IP
    • ip-address-name1: O nome do primeiro endereço IP
    • ip-address2: a forma CIDR do segundo endereço IP
    • ip-address-name2: O nome do segundo endereço IP
    • machine-type O tipo de máquina da instância
    • zone A zona da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

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

    Deve receber uma resposta JSON semelhante à seguinte:

  2. Atualize a instância:

    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:

  3. Confirme as alterações:

    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
    • machine-type O tipo de máquina da instância
    • zone A zona da instância

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

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

    Deve receber uma resposta JSON semelhante à seguinte:

Resolver problemas

Problema Resolução de problemas
Aborted connection. O problema pode ser:
  • Instabilidade de rede.
  • Nenhuma resposta aos comandos TCP keep-alive (o cliente ou o servidor não está a responder, possivelmente sobrecarregado)
  • O tempo de vida da ligação do motor da base de dados foi excedido e o servidor termina a ligação.

As aplicações têm de tolerar falhas de rede e seguir as práticas recomendadas , como a pool de ligações e a repetição. A maioria dos agrupadores de ligações deteta estes erros sempre que possível. Caso contrário, a aplicação tem de tentar novamente ou falhar sem problemas.

Para repetir a ligação, recomendamos os seguintes métodos:

  1. Retirada exponencial. Aumente o intervalo de tempo entre cada nova tentativa de forma exponencial.
  2. Adicione também uma repetição aleatória.

A combinação destes métodos ajuda a reduzir a limitação.

Certificate verify failed.

Os certificados de cliente expiraram ou o caminho para os certificados não está correto.

Regenerar os certificados recriando-os.

FATAL: database 'user' does not exist. gcloud sql connect --user só funciona com o utilizador postgres predefinido.

Ligue-se ao utilizador predefinido e, em seguida, altere os utilizadores.

Quer saber quem está ligado. Inicie sessão na base de dados e execute este comando:

SELECT datname,
usename,
application_name as appname,
client_addr,
state,
now() - backend_start as conn_age,
now() - state_change as last_activity_age
FROM pg_stat_activity
WHERE backend_type = 'client backend'
ORDER BY 6 DESC
LIMIT 20
   

Hostname/IP does not match certificate's altnames: Host: localhost. is not in the cert's altnames.

O endereço do anfitrião não corresponde ao endereço nos nomes alternativos do certificado do servidor.

Se estiver a usar o Node.js com verify-full ou o respetivo equivalente, use o nome de DNS para o parâmetro servername. Pode encontrar o nome DNS no certificado do servidor através do openssl. Por exemplo, openssl x509 -in server-cert.pem -noout -text |grep 'DNS:'.

 ssl: {
  rejectUnauthorized: true,
  ca: fs.readFileSync("/path/to/server/CA"),
  servername: 'N-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx.us-central1.sql.goog'
}

O que se segue?