Autorizar com redes autorizadas

Nesta página, você verá como usar as configurações de redes autorizadas para se conectar a instâncias do Cloud SQL que usam endereços IP.

Configurar redes autorizadas

O endereço IP ou o intervalo de endereços do aplicativo cliente precisa ser configurado como authorized networks para as seguintes condições:

  • O aplicativo cliente está se conectando diretamente a uma instância do Cloud SQL no endereço IP público.
  • O aplicativo cliente está se conectando diretamente a uma instância do Cloud SQL no endereço IP particular, e o endereço IP do cliente é um endereço não RFC 1918.

O endereço IP pode ser um único endpoint ou consistir em um intervalo na notação CIDR.

Console

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

    Acesse "Instâncias do Cloud SQL"

  2. Para abrir a página Visão geral de uma instância, clique no nome da instância.
  3. No menu de navegação SQL, selecione Conexões.
  4. Clique na guia Rede.
  5. Marque a caixa de seleção IP público.
  6. Clique em adicionar uma rede.
  7. No campo Nome, insira um nome para Nova rede.
  8. No campo Rede*, insira o endereço IPv4 público ou o intervalo de endereços do qual quer permitir conexões.

    Para o intervalo de endereços, use uma notação CIDR válida (por exemplo, 10.10.10.0/24).

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

gcloud

A configuração de redes autorizadas substitui a lista atual de redes autorizadas.

gcloud sql instances patch INSTANCE_ID \
--authorized-networks=NETWORK_RANGE_1,NETWORK_RANGE_2...
    

Terraform

Para configurar redes autorizadas, use um recurso do Terraform.

resource "google_sql_database_instance" "default" {
  name             = "sqlserver-instance-with-authorized-network"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier = "db-custom-2-7680"
    ip_configuration {
      authorized_networks {
        name            = "Network Name"
        value           = "192.0.2.0/24"
        expiration_time = "3021-11-15T16:19:00.094Z"
      }
    }
  }
  # 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 em um projeto do Google Cloud, conclua as etapas nas seções a seguir.

Preparar o Cloud Shell

  1. Inicie o Cloud Shell.
  2. Defina o projeto padrão do Google Cloud em que você quer aplicar as configurações do Terraform.

    Você só precisa executar esse comando uma vez por projeto, e ele pode ser executado em qualquer diretório.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    As variáveis de ambiente serão substituídas se você definir valores explícitos no arquivo de configuração do Terraform.

Preparar o diretório

Cada arquivo de configuração do Terraform precisa ter o próprio diretório, também chamado de módulo raiz.

  1. No Cloud Shell, crie um diretório e um novo arquivo dentro dele. O nome do arquivo precisa ter a extensão .tf, por exemplo, main.tf. Neste tutorial, o arquivo é chamado de main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se você estiver seguindo um tutorial, poderá copiar o exemplo de código em cada seção ou etapa.

    Copie o exemplo de código no main.tf recém-criado.

    Se preferir, copie o código do GitHub. Isso é recomendado quando o snippet do Terraform faz parte de uma solução de ponta a ponta.

  3. Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
  4. Salve as alterações.
  5. Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
    terraform init

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

    terraform init -upgrade

Aplique as alterações

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

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

  2. Para aplicar a configuração do Terraform, execute o comando a seguir e digite yes no prompt:
    terraform apply

    Aguarde até que o Terraform exiba a mensagem "Apply complete!".

  3. Abra seu projeto do Google Cloud para ver os resultados. No console do Google Cloud, navegue até seus recursos na IU para verificar se foram criados ou atualizados pelo Terraform.

Excluir as alterações

Para excluir as mudanças, faça o seguinte:

  1. Para desativar a proteção contra exclusão, no arquivo de configuração do Terraform, defina o argumento deletion_protection como false.
    deletion_protection =  "false"
  2. Para aplicar a configuração atualizada do Terraform, execute o comando a seguir e digite yes no prompt:
    terraform apply
  1. Remova os recursos aplicados anteriormente com a configuração do Terraform executando o seguinte comando e inserindo yes no prompt:

    terraform destroy

REST v1

A configuração de redes autorizadas substitui a lista atual de redes autorizadas.

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:

REST v1beta4

A configuração de redes autorizadas substitui a lista atual de redes autorizadas.

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:

Limitações

Alguns intervalos de endereços IP não podem ser adicionados como redes autorizadas.

Intervalo de endereços Observações
10.0.0.0/8 Intervalo de endereços do RFC 1918. Elas são incluídas automática e implicitamente nas redes autorizadas pelo Cloud SQL
172.16.0.0/12 Intervalo de endereços do RFC 1918. Elas são incluídas automática e implicitamente nas redes autorizadas pelo Cloud SQL
192.168.0.0/16 Intervalo de endereços do RFC 1918. Elas são incluídas automática e implicitamente nas redes autorizadas pelo Cloud SQL

A seguir