Visão geral
O peering de VPC funciona configurando as VPCs para se comunicarem entre si. Se a origem estiver no mesmo projeto do Google Cloud no Cloud SQL ou no Compute Engine, o destino poderá se comunicar diretamente com a origem. Se a origem estiver em uma VPN (por exemplo, na AWS ou na sua própria VPN local), configure a VPN de origem e a VPN do Google Cloud para que funcionem entre si. Para mais informações, consulte como conectar VPCs por VPNs.Não há suporte para encadeamento de VPC. Se a origem estiver em um projeto diferente do Google Cloud , consulte Visão geral da VPC compartilhada para saber como conectar recursos de vários projetos a uma rede VPC comum para peering de VPC.
O firewall do servidor de banco de dados de origem precisa ser configurado para permitir todo o intervalo de IPs interno alocado para a conexão de serviço particular da rede VPC que a instância de destino do Cloud SQL vai usar como o campo privateNetwork das configurações de ipConfiguration.
Para encontrar o intervalo de IP interno no console:
Acesse a página "Redes VPC" no console do Google Cloud .
Selecione a rede VPC que você quer usar.
Selecione a guia CONEXÃO DE SERVIÇO PARTICULAR.
O peering de VPC usa o acesso a serviços particulares,
que precisa ser configurado uma vez para cada projeto que usa o peering de VPC. Depois de
estabelecer private services access
, teste o
job de migração para verificar a conectividade.
Como configurar o acesso a serviços particulares para o Database Migration Service
Se você estiver usando o IP particular em qualquer uma das suas instâncias do Database Migration Service, basta configurar o acesso a serviços particulares uma vez para cada projeto do Google Cloud que tenha ou precise se conectar a uma instância do Database Migration Service.
Para estabelecer o acesso a serviços particulares, é necessário ter o papel do IAM compute.networkAdmin. Depois que o acesso a serviços particulares for estabelecido na rede, o papel de compute.networkAdmin
do IAM não será mais necessário para configurar uma instância para usar o IP particular.
O Acesso particular a serviços exige que você primeiro aloque um intervalo de endereços IP internos, crie uma conexão particular e exporte uma rota personalizada.
Um intervalo alocado é um bloco CIDR reservado que não pode ser usado na sua rede VPC local. Ao criar uma conexão particular, você especifica uma alocação. A conexão particular vincula sua rede VPC à rede VPC subjacente ("produtor de serviços").
Quando você cria uma conexão particular, a rede VPC e a rede do produtor de serviços trocam apenas rotas de sub-rede. Exporte as rotas personalizadas da rede VPC para que a rede do provedor de serviços possa importá-las e rotear o tráfego corretamente para sua rede local.
Uma configuração de peering estabelece a intent de se conectar a outra rede VPC. Sua rede e a outra só estarão conectadas depois que cada uma tiver uma configuração de peering para a outra. Quando a outra rede tiver uma configuração correspondente para fazer peering com a sua, o estado de peering será alterado para ATIVO nas duas redes, que serão conectadas. Se não houver uma configuração de peering correspondente na outra rede, o estado de peering vai permanecer como INATIVO, indicando que sua rede não está conectada à outra.
Depois de conectadas, as duas redes sempre trocam rotas de sub-rede. Uma alternativa é importar rotas personalizadas estáticas e dinâmicas de uma rede com peering caso ela tenha sido configurada para exportá-las.
Há duas partes no processo de configuração do acesso privado a serviços:
- Alocar um intervalo de endereços IP. O intervalo abrange todas as suas instâncias.
- Criar uma conexão privada da sua rede VPC com a rede do produtor de serviços.
Como alocar um intervalo de endereços IP
Console
- Acesse a página "Redes VPC" no console do Google Cloud .
- Selecione a rede VPC que você quer usar.
- Selecione a guia Conexão de serviço particular.
- Selecione a guia Intervalos de IP alocados para serviços.
- Clique em Alocar intervalo de IP.
Para o Nome do intervalo alocado, especifique
google-managed-services-VPC_NETWORK_NAME
, em queVPC_NETWORK_NAME
é o nome da rede VPC que você está conectando (por exemplo,google-managed-services-default
). A Descrição é opcional.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
eprefix-length
. Por exemplo, para alocar o bloco CIDR192.168.0.0/16
, especifique192.168.0.0
como endereço e16
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), basta usar 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. O exemplo a seguir seleciona um intervalo de endereços IP não utilizado com um tamanho de prefixo de16
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 que os recursos na
rede VPC my-vpc-network
se conectem a instâncias do Database Migration Service
usando um IP particular.
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
- Acesse a página "Redes VPC" no console do Google Cloud .
- Selecione a rede VPC que você quer usar.
- Selecione a guia Conexão de serviço particular.
- Selecione a guia Conexões particulares com os serviços.
- Clique em Criar conexão para criar uma conexão particular entre sua rede e um produtor de serviços.
- Em Alocação atribuída, selecione um ou mais intervalos alocados que não estejam sendo usados por outros produtores de serviço e clique em OK.
- Clique em CONECTAR para criar a conexão.
gcloud
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]
Substitua
[VPC_NETWORK_NAME]
pelo nome da rede VPC e[PROJECT_ID]
pelo ID do projeto que contém a rede VPC.O comando inicia uma operação de longa duração, que retorna um nome de operação.
Verifique se a operação foi bem-sucedida.
gcloud services vpc-peerings operations describe \ --name=[OPERATION_NAME]
Substitua
[OPERATION_NAME]
pelo nome da operação retornado na etapa anterior.
É possível 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 exportar rotas personalizadas
Atualize uma conexão atual com o Peering de redes VPC para alterar se sua rede VPC exportará rotas personalizadas para a rede VPC com peering ou as importará dela.
Sua rede importará rotas personalizadas somente se a rede com peering também estiver exportando rotas personalizadas. A rede com peering só vai receber rotas personalizadas se as importar.
Console
- Acesse a página "Peering de rede VPC" no console do Google Cloud .
Acessar a página "Peering de rede VPC" - Selecione a conexão de peering a ser atualizada.
- Clique em EDITAR.
- Atualize as configurações de rotas personalizadas marcando ou desmarcando Importar rotas personalizadas ou Exportar rotas personalizadas.
- Clique em SALVAR.
gcloud
Atualize a conexão de peering para alterar as configurações de importação ou exportação das rotas personalizadas.
gcloud compute networks peerings update [PEERING-NAME] \ --network=[MY-LOCAL-NETWORK] \ [--[no-]import-custom-routes] \ [--[no-]export-custom-routes]
Como conceder o papel roles/servicenetworking.serviceAgent
gcloud beta services identity create \
--service=servicenetworking.googleapis.com \
--project=project-id
gcloud projects add-iam-policy-binding project-id \
--member="service-account-prefix@service-networking.iam.gserviceaccount.com" \
--role="roles/servicenetworking.serviceAgent"