Como configurar a conectividade do IP público

Veja nesta página como configurar a conectividade IP pública para uma instância do Cloud SQL.

Introdução

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

Não é possível especificar uma rede particular (por exemplo, 10.x.x.x) como uma rede autorizada.

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

  • IPv6: as instâncias não são compatíveis com IPv6.
  • IPv4: as instâncias têm um endereço IPv4 estático atribuído automaticamente. Há uma pequena cobrança pelo endereço IP sempre que a instância é desativada.

Para ajuda sobre como conectar um cliente de administração à instância por uma conexão IP, consulte Conectar o cliente sqlcmd usando endereços IP.

Se você configurar sua instância para aceitar conexões usando o endereço IP público, configure-a para usar SSL e manter seus dados seguros. Para ver mais informações, consulte Configurar SSL para instâncias.

Para configurar sua instância com um endereço IP que não esteja exposto à Internet pública, consulte Como configurar a conectividade IP privada.

Ativar o IP público e adicionar um endereço ou intervalo de endereços autorizados

Quando você ativa o IP público para 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, é necessário configurar a autorização para as conexões de banco de dados. Consulte as Opções de autorização para mais informações.

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

Console

  1. No Console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Clique no nome da instância para abrir a página Visão geral correspondente.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Marque a caixa de seleção IP público.
  5. Clique em Adicionar rede.
  6. No campo Rede, insira o endereço IP ou o intervalo de endereços do qual quer permitir conexões.

    Use a notação CIDR.

  7. Como opção, insira um nome para essa entrada.
  8. Clique em Concluir.
  9. Clique em Salvar para atualizar a instância.

gcloud

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

    Procure as entradas authorizedNetwork em ipConfiguration e observe os endereços que quer manter.

  3. Atualize a lista de rede autorizada incluindo todos os endereços que você quiser.
    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. Mostre todos os endereços autorizados existentes descrevendo a instância:

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

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

    Você receberá uma resposta JSON semelhante a esta:

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

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

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • network_range_1: um intervalo ou endereço IP autorizado
    • network_range_2: outro intervalo ou endereço IP autorizado

    Método HTTP e URL:

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

    Corpo JSON da solicitação:

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

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

    Você receberá uma resposta JSON semelhante a esta:

    Use a notação CIDR.

  3. Confirme as alterações:

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

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • ip-address1: o formulário CIDR do primeiro endereço IP
    • ip-address-name1: o nome do primeiro endereço IP
    • ip-address2: o formulário 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 a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

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

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

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

    Você receberá uma resposta JSON semelhante a esta:

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

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

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • network_range_1: um intervalo ou endereço IP autorizado
    • network_range_2: outro intervalo ou endereço IP autorizado

    Método HTTP e URL:

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

    Corpo JSON da solicitação:

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

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

    Você receberá uma resposta JSON semelhante a esta:

    Use a notação CIDR.

  3. Confirme as alterações:

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

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • ip-address1: o formulário CIDR do primeiro endereço IP
    • ip-address-name1: o nome do primeiro endereço IP
    • ip-address2: o formulário 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 a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

Como remover um endereço ou intervalo de endereços autorizado

Para remover um endereço autorizado:

Console

  1. No Console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Clique no nome da instância para abrir a página Visão geral correspondente.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Clique no ícone de exclusão Excluir. do endereço que você quer excluir.
  5. Clique em Salvar para atualizar a instância.

gcloud

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

    Procure as entradas authorizedNetwork em ipConfiguration e observe os endereços que quer manter.

  2. Atualize a lista de rede autorizada descartando os endereços que quiser 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. Mostre todos os endereços autorizados existentes descrevendo a instância:

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

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • ip-address1: o formulário CIDR do primeiro endereço IP
    • ip-address-name1: o nome do primeiro endereço IP
    • ip-address2: o formulário 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 a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

  2. Atualize a instância, incluindo todos os endereços que você quer manter e descartando os que quer remover:

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

    • 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 ser removido

    Método HTTP e URL:

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

    Corpo JSON da solicitação:

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

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

    Você receberá uma resposta JSON semelhante a esta:

  3. Confirme as alterações:

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

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

    Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

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

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

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • ip-address1: o formulário CIDR do primeiro endereço IP
    • ip-address-name1: o nome do primeiro endereço IP
    • ip-address2: o formulário 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 a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

  2. Atualize a instância, incluindo todos os endereços que você quer manter e descartando os que quer remover:

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

    • 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 ser removido

    Método HTTP e URL:

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

    Corpo JSON da solicitação:

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

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

    Você receberá uma resposta JSON semelhante a esta:

  3. Confirme as alterações:

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

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

    Você receberá uma resposta JSON semelhante a esta:

Configurar uma instância para recusar todas as conexões IP públicas

Para configurar uma instância para recusar todas as conexões IP públicas:

Console

  1. No Console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Clique no nome da instância para abrir a página Visão geral correspondente.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Clique no ícone de exclusão Excluir. de todos os endereços autorizados.
  5. Clique em Salvar para atualizar a instância.

gcloud

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

REST v1

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

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

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • ip-address1: o formulário CIDR do primeiro endereço IP
    • ip-address-name1: o nome do primeiro endereço IP
    • ip-address2: o formulário 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 a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

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

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

    • 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 da solicitação:

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

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

    Você receberá uma resposta JSON semelhante a esta:

  3. Confirme as alterações:

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

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

    Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

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

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

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • ip-address1: o formulário CIDR do primeiro endereço IP
    • ip-address-name1: o nome do primeiro endereço IP
    • ip-address2: o formulário 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 a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

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

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

    • 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 da solicitação:

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

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

    Você receberá uma resposta JSON semelhante a esta:

  3. Confirme as alterações:

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

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

    Você receberá uma resposta JSON semelhante a esta:

Desativar o IP público

É possível desativar o IP público, mas apenas se sua instância também estiver configurada para usar IP privado. Para ativar o IP privado, consulte Como configurar uma instância existente para usar IP privado.

Para desativar o IP público:

Console

  1. No Console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Clique no nome da instância para abrir a página Visão geral correspondente.
  3. Selecione Conexões no menu de navegação do SQL.
  4. Desmarque a caixa de seleção IP público.
  5. Clique em Salvar 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. Mostre todos os endereços autorizados existentes descrevendo a instância:

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

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • ip-address1: o formulário CIDR do primeiro endereço IP
    • ip-address-name1: o nome do primeiro endereço IP
    • ip-address2: o formulário 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 a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

  2. Atualize a instância:

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

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • vpc-name: o nome da rede VPC que você quer usar para a instância.
    • allocated-ip-range: opcional. Se especificado, define um nome de intervalo para o qual um intervalo de IP é alocado. O nome do intervalo precisa obedecer a RFC-1035 e ter de 1 a 63 caracteres.

    Método HTTP e URL:

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

    Corpo JSON da solicitação:

    {
      "name": "instance-id",
      "region": "region",
      "databaseVersion": "database-version",
      "settings": {
        "tier": "machine-type",
        "ipConfiguration": {
          "ipv4Enabled": false,
          "privateNetwork": "projects/project-id/global/networks/vpc-name",
          "allocatedIpRange": "allocated-ip-range"
        }
      }
    }
    

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

    Você receberá uma resposta JSON semelhante a esta:

  3. Confirme as alterações:

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

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

    Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

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

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

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • ip-address1: o formulário CIDR do primeiro endereço IP
    • ip-address-name1: o nome do primeiro endereço IP
    • ip-address2: o formulário 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 a solicitação, expanda uma destas opções:

    Você receberá uma resposta JSON semelhante a esta:

  2. Atualize a instância:

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

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • vpc-name: o nome da rede VPC que você quer usar para a instância.
    • allocated-ip-range: opcional. Se especificado, define um nome de intervalo para o qual um intervalo de IP é alocado. O nome do intervalo precisa obedecer a RFC-1035 e ter de 1 a 63 caracteres.

    Método HTTP e URL:

    POST https://sqladmin.googleapis.com/v1beta4/projects/project-id/instances

    Corpo JSON da solicitação:

    {
      "name": "instance-id",
      "region": "region",
      "databaseVersion": "database-version",
      "settings": {
        "tier": "machine-type",
        "ipConfiguration": {
          "ipv4Enabled": false,
          "privateNetwork": "projects/project-id/global/networks/vpc-name",
          "allocatedIpRange": "allocated-ip-range"
        }
      }
    }
    

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

    Você receberá uma resposta JSON semelhante a esta:

  3. Confirme as alterações:

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

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

    Você receberá uma resposta JSON semelhante a esta:

Solução de problemas

Problema Solução de problemas
Aborted connection O problema pode ser:
  • Instabilidade de rede.
  • Nenhuma resposta aos comandos de sinal de atividade do TCP (o cliente ou o servidor não é responsivo, possivelmente sobrecarregado)
  • A vida útil da conexão do mecanismo de banco de dados foi excedida e o servidor encerra a conexão.

Os aplicativos devem tolerar falhas de rede e seguir as práticas recomendadas, como a repetição e o pooling de conexões. A maioria dos pools de conexão identifica esses erros sempre que possível. Caso contrário, o aplicativo precisará tentar novamente ou falhar normalmente.

Para novas tentativas de conexão, recomendamos os métodos a seguir:

  1. Espera exponencial. Aumente o intervalo de tempo entre cada nova tentativa, exponencialmente.
  2. Adicione também a espera aleatória.

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

A seguir