Como configurar o acesso privado a serviços

Nesta página, você verá como configurar o Acesso privado a serviços na sua rede VPC.

O acesso a serviços particulares é implementado como uma conexão de peering de VPC entre sua rede VPC e a rede VPC subjacente do Google que contém a instância do Cloud SQL. A conexão particular permite que as instâncias de VM na sua rede VPC e os serviços que você acessa se comuniquem exclusivamente usando endereços IP internos. As instâncias de VM não precisam de acesso à Internet ou de endereços IP externos para alcançar serviços disponíveis por meio do acesso a serviços privados.

Antes de começar

O Cloud SQL requer acesso a serviços privados para cada rede VPC usada em conexões de IP privado.

Para gerenciar uma conexão de acesso a serviços particulares, o usuário precisa ter as permissões do IAM a seguir. Se você não tiver as permissões necessárias, é possível que receba erros de permissões insuficientes.

  • compute.networks.list
  • compute.addresses.create
  • compute.addresses.list
  • servicenetworking.services.addPeering

Se você estiver usando uma rede VPC compartilhada, também precisará adicionar seu usuário ao projeto host e atribuir as mesmas permissões a ele no projeto host.

Como configurar acesso privado a serviços para o Cloud SQL

Há duas partes no processo de configuração do acesso privado a serviços:

  • Selecionar um intervalo atual ou alocar um novo intervalo de endereços IP.

    Também é possível permitir que o Google aloque o intervalo para você. Nesse caso, o Google vai alocar automaticamente um intervalo de IP com tamanho de prefixo /20 e usar o nome default-ip-range.

    Se você for criar instâncias em várias regiões ou para tipos diferentes de banco de dados, use um intervalo de /20 ou maior.

  • Criar uma conexão privada pela sua rede VPC à rede do produtor de serviços.

Como alocar um intervalo de endereços IP

Console

  1. No Console do Google Cloud, acesse a página redes VPC.

    Acessar redes VPC

  2. Selecione a rede VPC que você quer usar.
  3. Selecione a guia Conexão de serviço particular.
  4. Selecione a guia Intervalos de IP alocados para serviços.
  5. Clique em Alocar intervalo de IP.
  6. Para o Nome do intervalo alocado, especifique google-managed-services-VPC_NETWORK_NAME, em que VPC_NETWORK_NAME é o nome da rede VPC que você está conectando (por exemplo, google-managed-services-default). A Descrição é opcional.
  7. Na notação CIDR, selecione a opção Personalizado e insira o intervalo de endereços IP a ser alocado.
  8. Clique em Alocar para criar o intervalo alocado.

gcloud

Siga uma destas ações:

  • Para especificar um intervalo de endereços e um tamanho de prefixo (máscara de sub-rede), use os sinalizadores addresses e prefix-length. Por exemplo, para alocar o bloco CIDR 192.168.0.0/16, especifique 192.168.0.0 como endereço e 16 como tamanho de prefixo.

    gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \
    --global \
    --purpose=VPC_PEERING \
    --addresses=192.168.0.0 \
    --prefix-length=16 \
    --network=VPC_NETWORK_NAME
    
  • Para especificar apenas um tamanho de prefixo (máscara de sub-rede), use a sinalização prefix-length. Quando você omitir o intervalo de endereços, o Google Cloud selecionará automaticamente um intervalo de endereços não utilizado na sua rede VPC. No exemplo a seguir, é selecionado um intervalo de endereços IP não utilizado com um tamanho de prefixo de 16 bits.

    gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=16 \
    --network=VPC_NETWORK_NAME
    

Substitua VPC_NETWORK_NAME pelo nome da sua rede VPC, como my-vpc-network.

O exemplo a seguir aloca um intervalo de IP que permite aos recursos na rede VPC my-vpc-network conectarem-se às instâncias do Cloud SQL usando IP privado.

gcloud compute addresses create google-managed-services-my-vpc-network \
--global \
--purpose=VPC_PEERING \
--prefix-length=16 \
--network=my-vpc-network \
--project=my-project

Como criar uma conexão particular

Console

  1. No Console do Google Cloud, acesse a página redes VPC.

    Acessar redes VPC

  2. Selecione a rede VPC que você quer usar.
  3. Selecione a guia Conexão de serviço particular.
  4. Selecione a guia Conexões particulares com os serviços.
  5. Clique em Criar conexão para criar uma conexão particular entre sua rede e um produtor de serviços.
  6. Em Alocação atribuída, selecione um ou mais intervalos alocados que não estejam sendo usados por outros fornecedores de serviços.
  7. Clique em Conectar para criar a conexão.

gcloud

  1. Crie uma conexão particular.

    gcloud services vpc-peerings connect \
    --service=servicenetworking.googleapis.com \
    --ranges=google-managed-services-VPC_NETWORK_NAME \
    --network=VPC_NETWORK_NAME \
    --project=PROJECT_ID
    

    O comando inicia uma operação de instância de longa duração do Cloud SQL, retornando um ID de operação.

  2. Verifique se a operação foi bem-sucedida.

    gcloud services vpc-peerings operations describe \
    --name=OPERATION_ID
    

Você pode especificar mais de um intervalo alocado ao criar uma conexão privada. Por exemplo, se um intervalo tiver sido esgotado, será possível atribuir mais intervalos alocados. O serviço usa endereços IP de todos os intervalos fornecidos na ordem que você especificou.

Como mudar a configuração do acesso privado a serviços

É possível mudar o intervalo de endereços alocado de uma conexão privada a serviços sem modificar nenhuma instância atual do Cloud SQL. Para mudar o endereço IP privado de uma instância do Cloud SQL, siga estas etapas.

Para modificar o intervalo de endereços alocado:

Console

  1. No Console do Google Cloud, acesse a página redes VPC.

    Acessar redes VPC

  2. Selecione a rede VPC que você quer usar.
  3. Selecione a guia Conexão de serviço particular.
  4. Selecione a guia Intervalos de IP alocados para serviços.
  5. Selecione o nome do intervalo que você quer excluir.
  6. Clique em Liberar.
  7. Clique em Alocar intervalo de IP.
  8. Crie um novo intervalo com o mesmo nome.

    O nome é importante porque a conexão privada já foi estabelecida usando esse nome de endereço.

gcloud services vpc-peerings update \
--network=VPC_NETWORK \
--ranges=ALLOCATED_RANGES \
--service=servicenetworking.googleapis.com \
--force

Como mudar o endereço IP particular de uma instância do Cloud SQL

Para mudar o endereço IP particular de uma instância existente do Cloud SQL, mova-a para uma rede VPC temporária. Em seguida, altere a configuração de acesso particular a serviços e mova a instância do Cloud SQL de volta:

Para migrar para uma rede VPC diferente, siga todas as etapas abaixo. Ignore a etapa final: como migrar a instância de volta. A [TEMPORARY_VPC_NETWORK_NAME] é a nova rede VPC, neste caso. Além disso, exclua a conexão particular antiga. Pode levar alguns dias para que a conexão particular excluída desapareça do Console do Google Cloud.

Console

  1. No Console do Google Cloud, acesse a página redes VPC.

    Acessar redes VPC

  2. Crie uma rede VPC temporária.
  3. Mova a instância do Cloud SQL para a rede VPC temporária.

    gcloud beta sql instances patch INSTANCE_ID \
    --project=PROJECT_ID \
    --network=TEMPORARY_VPC_NETWORK_NAME \
    --no-assign-ip
    
  4. Mude a configuração do acesso privado a serviços.

  5. Mova a instância do Cloud SQL de volta para a rede VPC original.

    gcloud beta sql instances patch INSTANCE_ID \
    --project=PROJECT_ID \
    --network=ORIGINAL_VPC_NETWORK_NAME \
    --no-assign-ip