É possível usar o VPC Network Peering para permitir que o Datastream se comunique com recursos na sua rede de nuvem privada virtual (VPC) de forma particular. A conexão de peering de rede VPC entre sua rede VPC e a rede VPC do Datastream permite que o Datastream se conecte a:
- Recursos como máquinas virtuais (VMs) e balanceadores de carga internos na sua rede VPC.
- Recursos em outras redes conectadas à sua rede VPC usando túneis do Cloud VPN, anexos de VLAN de Interconexão dedicada, anexos de VLAN de Interconexão por parceiro e Cloud Routers do Network Connectivity Center.
A conexão de peering de rede VPC entre sua rede VPC e a rede VPC do Datastream não permite que o Datastream se conecte a:
- Endpoints do Private Service Connect localizados na sua rede VPC.
- Recursos localizados em outra rede VPC, com peering na sua rede VPC, mas não com a rede VPC do Datastream. Isso ocorre porque o peering de rede VPC não oferece roteamento transitivo.
Para estabelecer a conectividade entre o Datastream e um recurso que só pode ser acessado pela rede VPC, use uma VM de tradução de endereço de rede (NAT) na rede VPC. Um caso de uso comum para uma VM NAT é quando o Datastream precisa se conectar a uma instância do Cloud SQL.
Esta página descreve um exemplo de configuração de VM NAT que permite que o Datastream se conecte de forma particular a uma instância do Cloud SQL.
Pré-requisitos de peering de VPC
Antes de criar uma configuração de conectividade particular, siga as etapas abaixo para que o Datastream possa criar a conexão de peering de VPC com seu projeto:
- Ter uma rede VPC que possa fazer peering com a rede privada do Datastream e que atenda aos requisitos descritos na página Peering de rede VPC. Para mais informações sobre como criar essa rede, consulte Como usar o Peering de redes VPC.
- Identifique um intervalo de IP disponível (com um bloco CIDR de /29) na rede VPC. Não pode ser um intervalo de IP que já exista como uma sub-rede, um intervalo de IP pré-alocado para acesso a serviços privados ou qualquer rota (exceto a rota padrão 0.0.0.0) que inclua o intervalo de IP. O Datastream usa esse intervalo de IP para criar uma sub-rede e se comunicar com o banco de dados de origem. A tabela a seguir descreve os intervalos de IP válidos.
Intervalo | Descrição |
---|---|
10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
|
Endereços IP particulares RFC 1918 |
100.64.0.0/10 |
Espaço de endereços compartilhado RFC 6598 |
192.0.0.0/24 |
Atribuições do protocolo IETF RFC 6890 |
192.0.2.0/24 (TEST-NET-1)198.51.100.0/24 (TEST-NET-2)203.0.113.0/24 (TEST-NET-3) |
Documentação RFC 5737 |
192.88.99.0/24 |
Retransmissão IPv6 para IPv4 (descontinuado) RFC 7526 |
198.18.0.0/15 |
Teste de comparativo de mercado RFC 2544 |
Verifique se Google Cloud e o firewall local permitem o tráfego do intervalo de IP selecionado. Caso contrário, crie uma regra de firewall de entrada que permita o tráfego na porta do banco de dados de origem e verifique se o intervalo de endereços IPv4 na regra de firewall é o mesmo que o intervalo de endereços IP alocado ao criar o recurso de conectividade particular:
gcloud compute firewall-rules create FIREWALL-RULE-NAME \ --direction=INGRESS \ --priority=PRIORITY \ --network=PRIVATE_CONNECTIVITY_VPC \ --project=VPC_PROJECT \ --action=ALLOW \ --rules=FIREWALL_RULES \ --source-ranges=IP-RANGE
Substitua:
- FIREWALL-RULE-NAME: o nome da regra de firewall a ser criada.
- PRIORITY: a prioridade da regra, expressa como um número inteiro entre 0 e 65.535. O valor precisa ser menor que o definido para a regra de bloqueio de tráfego, se houver. Valores de prioridade mais baixos implicam precedência mais alta.
- PRIVATE_CONNECTIVITY_VPC: a rede VPC que pode fazer peering com a rede privada do Datastream e que atende aos requisitos descritos na página Peering de rede VPC. Essa é a VPC que você especifica ao criar sua configuração de conectividade particular.
- VPC_PROJECT: o projeto da rede VPC.
- FIREWALL_RULES: a lista de protocolos e portas a que a
regra de firewall se aplica, por exemplo,
tcp:80
. A regra precisa permitir o tráfego TCP para o endereço IP e a porta do banco de dados de origem ou do proxy. Como a conectividade particular pode oferecer suporte a vários bancos de dados, a regra precisa considerar o uso real da configuração. IP-RANGE: o intervalo de endereços IP que o Datastream usa para se comunicar com o banco de dados de origem. Esse é o mesmo intervalo que você indica no campo Alocar um intervalo de IP ao criar sua configuração de conectividade particular.
Talvez também seja necessário criar uma regra de firewall de saída idêntica para permitir o tráfego de volta ao Datastream.
São atribuídas a um papel que contém a permissão
compute.networks.list
. Essa permissão fornece as permissões do IAM necessárias para listar redes VPC no projeto. Para saber quais papéis contêm essa permissão, consulte a referência de permissões do IAM.
Pré-requisitos da VPC compartilhada
Se você estiver usando a VPC compartilhada, realize as seguintes ações além das etapas descritas na seção Pré-requisitos da VPC:
No projeto de serviço:
- Ative a API Datastream.
Encontre o endereço de e-mail usado para a conta de serviço do Datastream. As contas de serviço do Datastream são criadas quando você realiza uma das seguintes ações:
- Você cria um recurso do Datastream, como um perfil de conexão ou um fluxo.
- Crie uma configuração de conectividade particular, selecione a VPC compartilhada e clique em Criar conta de serviço do Datastream. A conta de serviço é criada no projeto host.
Para encontrar o endereço de e-mail usado para a conta de serviço do Datastream, procure o Número do projeto na página inicial do Google Cloud console. O endereço de e-mail da conta de serviço é
service-[project_number]@gcp-sa-datastream.iam.gserviceaccount.com
.
No projeto host:
Conceda a permissão de papel de gerenciamento de identidade e acesso (IAM)
compute.networkAdmin
à conta de serviço do Datastream. Esse papel só é necessário quando você cria o peering da VPC. Depois que o peering for estabelecido, você não vai mais precisar do papel.Se a sua organização não permitir a concessão da permissão, crie um papel personalizado com as seguintes permissões mínimas para criar e excluir recursos de conexão particulares:
Para mais informações sobre papéis personalizados, consulte Criar e gerenciar funções personalizadas.
Configurar uma VM NAT
Identifique o endereço IP da instância do Cloud SQL à qual o Datastream precisa se conectar.
Identifique sua rede VPC. Essa é a rede VPC que está conectada à rede VPC do Datastream usando o peering de rede VPC.
Crie uma configuração de conectividade particular no Datastream, se ainda não tiver feito isso. Isso cria a conexão de peering de rede VPC que conecta sua rede VPC e a rede VPC do Datastream. Anote o intervalo de endereços IP usado pela configuração de conectividade particular do Datastream.
Escolha um tipo de máquina para usar na VM NAT que você vai criar na próxima etapa. Google Cloud impõe um limite máximo de largura de banda de saída por instância, para pacotes roteados pelos próximos saltos em uma rede VPC, de acordo com o tipo de máquina da instância da VM. Para mais informações, consulte Saída para destinos roteáveis em uma rede VPC e Largura de banda de saída máxima por instância.
Crie a VM NAT na rede VPC. Se a rede VPC for compartilhada, você poderá criar a VM NAT no projeto host ou em qualquer projeto de serviço, desde que a interface de rede da VM NAT esteja na rede VPC compartilhada.
- Para minimizar o tempo de ida e volta da rede, crie a VM NAT na mesma região que o Datastream.
- Neste exemplo, presumimos que a VM NAT tem uma única interface de rede.
- Execute o script em uma distribuição do Linux, por exemplo, Debian 12.
- Use o seguinte script de inicialização. O script de inicialização é executado pelo root sempre que a VM é iniciada. Esse script inclui comentários que explicam o que cada linha faz. No script, substitua CLOUD_SQL_INSTANCE_IP pelo endereço IP da instância do Cloud SQL e DATABASE_PORT pela porta de destino usada pelo software do banco de dados.
#! /bin/bash export DB_ADDR=CLOUD_SQL_INSTANCE_IP export DB_PORT=DATABASE_PORT # Enable the VM to receive packets whose destinations do # not match any running process local to the VM echo 1 > /proc/sys/net/ipv4/ip_forward # Ask the Metadata server for the IP address of the VM nic0 # network interface: md_url_prefix="http://169.254.169.254/computeMetadata/v1/instance" vm_nic_ip="$(curl -H "Metadata-Flavor: Google" ${md_url_prefix}/network-interfaces/0/ip)" # Clear any existing iptables NAT table entries (all chains): iptables -t nat -F # Create a NAT table entry in the prerouting chain, matching # any packets with destination database port, changing the destination # IP address of the packet to the SQL instance IP address: iptables -t nat -A PREROUTING \ -p tcp --dport $DB_PORT \ -j DNAT \ --to-destination $DB_ADDR # Create a NAT table entry in the postrouting chain, matching # any packets with destination database port, changing the source IP # address of the packet to the NAT VM's primary internal IPv4 address: iptables -t nat -A POSTROUTING \ -p tcp --dport $DB_PORT \ -j SNAT \ --to-source $vm_nic_ip # Save iptables configuration: iptables-save
Crie uma regra de firewall de permissão de entrada (ou uma regra em uma política de firewall de rede global, política de firewall de rede regional ou política de firewall hierárquica) com estas características:
- Direção: entrada
- Ação: permitir
- Parâmetro de destino: pelo menos a VM NAT
- Parâmetro de origem: o intervalo de endereços IP usado pela configuração de conectividade privada do Datastream
- Protocolo: TCP
- Porta: precisa incluir pelo menos DATABASE_PORT
A regra de firewall de saída de permissão implícita permite que a VM NAT envie pacotes para qualquer destino. Se a rede VPC usar regras de firewall de negação de saída, talvez seja necessário criar uma regra de firewall de permissão de saída para permitir que a VM NAT envie pacotes para a instância do Cloud SQL. Se uma regra de permissão de saída for necessária, use estes parâmetros:
- Direção: saída
- Ação: permitir
- Parâmetro de destino: pelo menos a VM NAT
- Parâmetro de destino: o endereço IP da instância do Cloud SQL
- Protocolo: TCP
- Porta: precisa incluir pelo menos DATABASE_PORT
Verifique se você configurou a instância do Cloud SQL para aceitar conexões do endereço IPv4 interno principal usado pela interface de rede da VM NAT. Para saber como fazer isso, consulte Autorizar com redes autorizadas na documentação do Cloud SQL.
Crie um perfil de conexão no Datastream. Nos detalhes de conexão do perfil, especifique o endereço IPv4 interno principal da VM NAT que você criou. Insira a porta do banco de dados de origem no campo de porta do perfil de conexão.
Configurar um par de VMs NAT e um balanceador de carga de rede de passagem interna
Para melhorar a confiabilidade de uma solução de VM NAT, considere a seguinte arquitetura, que usa um par de VMs NAT e um balanceador de carga de rede de passagem interno:
Crie duas VMs NAT em zonas diferentes da mesma região. Siga as instruções de Configurar uma VM NAT para criar cada VM e coloque cada VM no próprio grupo de instâncias não gerenciadas da zona.
Como alternativa, é possível criar um grupo de instâncias gerenciadas regional. No modelo de grupo de instâncias gerenciadas, inclua um script de inicialização como o exemplo nas instruções de Configurar uma VM NAT.
Crie um balanceador de carga de rede de passagem interna cujo serviço de back-end usa o grupo de instâncias ou os grupos da etapa anterior como back-ends. Para um exemplo de balanceador de carga de rede de passagem interna, consulte Configurar um balanceador de carga de rede de passagem interna com back-ends de grupos de instâncias de VM.
Ao configurar a verificação de integridade do balanceador de carga, é possível usar uma verificação de integridade TCP que use uma porta TCP de destino correspondente à DATABASE_PORT. Os pacotes de verificação de integridade são roteados para o CLOUD_SQL_INSTANCE_IP de acordo com a configuração da VM NAT. Como alternativa, é possível executar um processo local na VM NAT que responde a uma verificação de integridade TCP ou HTTP em uma porta personalizada.
Crie regras de firewall e configure as redes autorizadas do Cloud SQL, conforme descrito nas instruções de Configurar uma VM NAT. Verifique se as redes autorizadas do Cloud SQL incluem o endereço IPv4 interno principal das duas VMs NAT.
Ao criar um perfil de conexão do Datastream, especifique o endereço IP da regra de encaminhamento do balanceador de carga de rede de passagem interna nos detalhes de conexão do perfil.
A seguir
- Saiba como criar uma configuração de conectividade particular.
- Saiba como acessar a configuração de conectividade privada.
- Saiba como excluir uma configuração de conectividade particular.