Autorize com redes autorizadas

Esta página descreve como usar as definições de redes autorizadas para estabelecer ligação a instâncias do Cloud SQL que usam endereços IP.

Configure redes autorizadas

O endereço IP ou o intervalo de endereços da sua aplicação cliente tem de ser configurado como authorized networks para as seguintes condições:

  • A sua aplicação cliente está a estabelecer ligação diretamente a uma instância do Cloud SQL no respetivo endereço IP público.
  • A sua aplicação cliente está a estabelecer ligação diretamente a uma instância do Cloud SQL no respetivo endereço IP privado e o endereço IP do cliente é um endereço não RFC 1918

O endereço IP pode ser um único ponto final ou consistir num intervalo na notação CIDR.

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. Na secção Redes autorizadas, expanda Novo intervalo de IPs.
  7. No campo Nome, introduza um nome para o Novo intervalo de IPs.
  8. No campo Intervalo de IPs, introduza o endereço IPv4 público ou o intervalo de endereços a partir do qual quer permitir ligações.
    Em alternativa, clique em Usar o meu IP para permitir que o Cloud SQL preencha o endereço IPv4 da máquina cliente a partir da qual está a aceder Google Cloud.
    A opção Usar o meu IP não está disponível para clientes que usam endereços IPv6.

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

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

gcloud

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

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" "instance" {
  name             = "mysql-instance-with-authorized-network"
  region           = "us-central1"
  database_version = "MYSQL_8_0"
  settings {
    tier = "db-f1-micro"
    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 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

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

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:

REST v1beta4

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

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:

Limitações

  • Não é possível adicionar alguns intervalos de endereços IP como redes autorizadas.
    Intervalo de endereços Notas
    10.0.0.0/8 Intervalo de endereços RFC 1918. Estas são incluídas automaticamente e implicitamente nas redes autorizadas pelo Cloud SQL
    172.16.0.0/12 Intervalo de endereços RFC 1918. Estas são incluídas automaticamente e implicitamente nas redes autorizadas pelo Cloud SQL
    192.168.0.0/16 Intervalo de endereços RFC 1918. Estas são incluídas automaticamente e implicitamente nas redes autorizadas pelo Cloud SQL
  • O Cloud SQL não suporta redes autorizadas IPv6. Se o seu computador cliente usar o protocolo IPv6, o botão opcional Usar o meu IP não está disponível no separador Rede da consola Google Cloud .
  • Se estiver a usar uma VPN ou um servidor proxy, a opção Usar o meu IP não apresenta o endereço IP real do computador cliente. Isto é intencional.

O que se segue?