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.
-
No console Google Cloud , acesse a página Instâncias do Cloud SQL.
- Para abrir a página Visão geral de uma instância, clique no nome da instância.
- No menu de navegação SQL, selecione Conexões.
- Clique na guia Rede.
- Marque a caixa de seleção IP público.
- Clique em adicionar uma rede.
- No campo Nome, insira um nome para Nova rede.
- 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).
- Clique em Concluído.
- Clique em Salvar.
A configuração de redes autorizadas substitui a lista atual de redes autorizadas.
gcloud sql instances patchINSTANCE_ID \ --authorized-networks=NETWORK_RANGE_1 ,NETWORK_RANGE_2 ...
Para configurar redes autorizadas, use um recurso do Terraform.
Aplique as alterações
Para aplicar a configuração do Terraform em um projeto Google Cloud , siga as etapas nas seções a seguir.
Preparar o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o projeto Google Cloud padrão 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.
-
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 demain.tf
.mkdir
DIRECTORY && cdDIRECTORY && touch main.tf -
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.
- Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
- Salve as alterações.
-
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
-
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.
-
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!".
- Abra seu Google Cloud projeto para ver os resultados. No console Google Cloud , navegue até seus recursos na UI para verificar se foram criados ou atualizados pelo Terraform.
Excluir as alterações
Para excluir as mudanças, faça o seguinte:
- Para desativar a proteção contra exclusão, no arquivo de configuração do Terraform, defina o argumento
deletion_protection
comofalse
.deletion_protection = "false"
- Para aplicar a configuração atualizada do Terraform, execute o comando a seguir e digite
yes
no prompt:terraform apply
-
Remova os recursos aplicados anteriormente com a configuração do Terraform executando o seguinte comando e inserindo
yes
no prompt:terraform destroy
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:
curl (Linux, macOS ou Cloud Shell)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id "
PowerShell (Windows)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id " | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
Resposta
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ", "targetProject": "project-id " }
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:
curl (Linux, macOS ou Cloud Shell)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id "
PowerShell (Windows)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id " | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
Resposta
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "UPDATE", "name": "operation-id ", "targetId": "instance-id ", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ", "targetProject": "project-id " }
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
Saiba mais sobre o controle de acesso à instância.
Configure a instância para usar SSL/TLS.
Conecte-se à instância com o cliente psql por meio de SSL/TLS.