Como configurar o Acesso privado do Google para hosts locais

O Acesso privado do Google para hosts locais possibilita o acesso às APIs e os serviços do Google por meio de um túnel do Cloud VPN ou da conexão do Cloud Interconnect. Os hosts não precisam de um endereço IP externo. Para saber mais detalhes sobre essa e outras opções de acesso privado, consulte Opções de acesso privado para serviços.

Para consultar as APIs e os serviços qualificados que podem ser usados com o Acesso privado do Google para hosts locais, consulte os serviços compatíveis na visão geral do produto.

Requisitos

  • Ative as APIs que você quer acessar na página APIs e serviços do Console do Google Cloud Platform.
  • Proprietários de projetos, editores e membros do IAM com o papel de administrador de rede podem criar ou atualizar sub-redes e atribuir endereços IP. Para saber mais informações sobre papéis, leia a documentação sobre os papéis do IAM.
  • O Acesso privado do Google requer uma rede VPC. Redes VPC de modo automático e personalizado são compatíveis. Redes legadas não são compatíveis.
  • Sua rede VPC precisa rotear o tráfego destinado a 199.36.153.4/30 usando uma rota que tenha o gateway de Internet padrão definido como próximo salto. Você pode fazer isso usando a rota padrão ou uma rota estática personalizada.

Como configurar o Acesso privado do Google para hosts locais

Para configurar o Acesso privado do Google para hosts locais, é necessário concluir as seguintes tarefas:

  • Configure rotas para que o tráfego da API do Google seja encaminhado por meio da sua conexão do Cloud VPN ou do Google Cloud Interconnect. Para saber mais informações, consulte Como configurar rotas. Se você tiver vários túneis ou interconexões, não será possível criar rotas assimétricas entre regiões de volta à sua rede local. O GCP não oferece suporte.
  • Configure regras no seu firewall local para permitir que o tráfego dos seus hosts locais atinja o intervalo de IP das APIs restritas do Google. Para mais informações, consulte Como configurar regras de firewall.
  • Configure o DNS de modo que o tráfego para as APIs do Google seja resolvido no intervalo de IPs das APIs restritas do Google. Para saber mais informações, consulte Como configurar o DNS.

Como configurar rotas

Divulgações personalizadas do Cloud Router

Você pode usar a divulgação de rota personalizada do Cloud Router para divulgar os endereços IP das APIs restritas do Google na sua rede local. O intervalo de endereços IP das APIs restritas do Google é 199.36.153.4/30. Embora esse intervalo seja público, o Google não divulga as próprias rotas publicamente. Esse intervalo de endereços IP é acessível apenas a hosts locais que podem alcançar sua rede VPC por meio de endereços IP internos, usando um túnel do Cloud VPN ou a conexão do Cloud Interconnect, entre outros.

Para anunciar o intervalo de endereços restrito, adicione uma divulgação de rota personalizada usando o Cloud Router. Você pode adicionar essa divulgação ao Cloud Router ou a uma sessão do BGP determinada (por exemplo, para um único túnel do Cloud VPN ou anexo de VLAN).

Se você quiser criar uma divulgação de rota personalizada para o intervalo restrito de todas as sessões do BGP em um Cloud Router existente, siga estas etapas:

Console


  1. Acesse a página do Cloud Router no Console do Google Cloud Platform.
    Lista de roteadores do Cloud
  2. Selecione o roteador do Cloud a ser atualizado.
  3. Na página de detalhes do Cloud Router, selecione Editar.
  4. Expanda a seção Rotas divulgadas.
  5. Em Rotas, selecione Criar rotas personalizadas.
  6. Selecione Anunciar todas as sub-redes visíveis para o Cloud Router para continuar divulgando as sub-redes disponíveis para o Cloud Router. A ativação dessa opção imita o comportamento padrão do Cloud Router.
  7. Selecione Adicionar rota personalizada para adicionar uma rota anunciada.
  8. Configure a divulgação de rota.
    • Origem: selecione Intervalo de IP personalizado para especificar um intervalo de IP personalizado.
    • Intervalo de endereços IP: especifique 199.36.153.4/30.
    • Descrição: adicione uma descrição dos Restricted Google APIs IPs.
  9. Quando terminar de adicionar as rotas, selecione Salvar.

gcloud


Execute o comando update, usando os sinalizadores --set-advertisement-ranges ou --add-advertisement-ranges para especificar os intervalos de IP personalizados:

  • Para definir intervalos de IP personalizados, use a sinalização --set-advertisement-ranges. Todas as divulgações personalizadas existentes serão substituídas. O exemplo a seguir atualiza o Cloud Router my-router para divulgar todas as sub-redes e os intervalos de IP 199.36.153.4/30 das APIs restritas do Google:

    gcloud compute routers update my-router \
        --advertisement-mode CUSTOM \
        --set-advertisement-groups ALL_SUBNETS \
        --set-advertisement-ranges 199.36.153.4/30
    
  • Para adicionar intervalos de IP personalizados a uma divulgação existente, use a sinalização --add-advertisement-ranges. Ela exige que o modo de divulgação do Cloud Router já esteja configurado como custom. O exemplo a seguir acrescenta o IP personalizado Restricted Google APIs IPs às divulgações do Cloud Router:

    gcloud compute routers update my-router \
        --add-advertisement-ranges 199.36.153.4/30
    

Se você quiser criar uma divulgação de rota personalizada para o intervalo restrito em uma sessão do BGP específica de um Cloud Router existente, siga estas etapas:

Console


  1. Acesse a página do Cloud Router no Console do Google Cloud Platform.
    Lista de roteadores do Cloud Router
  2. Selecione o roteador do Cloud Router que contém a sessão do BGP a ser atualizada.
  3. Na página de detalhes do Cloud Router, selecione a sessão do BGP a ser atualizada.
  4. Na página de detalhes da sessão do BGP, selecione Editar.
  5. Em Rotas, selecione Criar rotas personalizadas.
  6. Selecione Anunciar todas as sub-redes visíveis para o Cloud Router para continuar divulgando as sub-redes disponíveis para o Cloud Router. A ativação dessa opção imita o comportamento padrão do Cloud Router.
  7. Selecione Adicionar rota personalizada para adicionar uma rota anunciada.
  8. Configure a divulgação de rota.
    • Origem: selecione Intervalo de IP personalizado para especificar um intervalo de IP personalizado.
    • Intervalo de endereços IP: especifique 199.36.153.4/30.
    • Descrição: adicione uma descrição dos Restricted Google APIs IPs.
  9. Quando terminar de adicionar as rotas, selecione Salvar.

gcloud


Execute o comando update-bgp-peer usando os sinalizadores --set-advertisement-ranges ou --add-advertisement-ranges para especificar os intervalos de IP personalizados.

  • Para definir intervalos de IP personalizados, use a sinalização --set-advertisement-ranges. Todas as divulgações personalizadas existentes serão substituídas. O exemplo a seguir atualiza a sessão my-bgp-session do BGP no my-router do Cloud Router para divulgar todas as sub-redes e o intervalo de IP personalizado 199.36.153.4/30:

    gcloud compute routers update-bgp-peer my-router \
        --peer-name my-bgp-session \
        --advertisement-mode CUSTOM \
        --set-advertisement-groups ALL_SUBNETS \
        --set-advertisement-ranges 199.36.153.4/30
    
  • Para adicionar intervalos de IP personalizados a outros já existentes, use o sinalizador --add-advertisement-ranges. Ela exige que o modo de divulgação do Cloud Router já esteja configurado como custom. O exemplo a seguir acrescenta os IPs 199.36.153.4/30 das APIs do Google restritas às divulgações do Cloud Router:

    gcloud compute routers update-bgp-peer my-router \
        --peer-name my-bgp-session \
        --add-advertisement-ranges 199.36.153.4/30
    

    Para saber mais informações, consulte Divulgações de rota personalizadas.

Requisito para a rota de rede VPC

Sua rede VPC precisa ser configurada para rotear o tráfego ao endereço 199.36.153.4/30 que usa o gateway de Internet padrão como o próximo salto. Em uma rede VPC recém-criada, isso é feito com a rota padrão. No entanto, você também pode criar uma rota estática personalizada configurando o destino como 199.36.153.4/30 e o próximo salto como o gateway de Internet padrão. Se você remover a rota padrão, será necessário criar uma rota estática personalizada.

Como configurar regras de firewall

Você precisa configurar seu firewall local para permitir que o tráfego dos seus hosts locais alcance 199.36.153.4/30.

Como configurar DNS

Configure seu próprio servidor DNS para resolver *.googleapis.com como um CNAME para restricted.googleapis.com. Use o BIND para configurar o DNS.

É possível usar zonas de DNS privado do Cloud DNS ou BIND.

  • Com as zonas DNS privadas do Cloud DNS, é possível hospedar uma zona DNS acessível a partir de redes VPC autorizadas e, se você configurar o encaminhamento, a partir de determinados servidores de nomes locais. Crie uma zona privada para googleapis.com com um registro A para restricted.googleapis.com e registros CNAME apropriados para cada nome *.googleapis.com. As zonas privadas do Cloud DNS não suportam substituições parciais, o que significa que você só pode optar por redirecionar todas as solicitações para *.googleapis.com para restricted.googleapis.com. Consequentemente, não será possível usar APIs e serviços do Google que não ofereçam suporte ao uso do VIP do restricted.googleapis.com. Para mais informações, consulte Como gerenciar zonas.
  • Não é possível usar o BIND e o VIP do restricted.googleapis.com no Cloud Dataflow, porque a resolução de DNS do Cloud Dataflow não pode ser personalizada.

Como configurar o DNS com o Cloud DNS

Para ativar a resolução de DNS no Acesso privado do Google usando o Cloud DNS, use o procedimento a seguir:

gcloud


  1. Crie uma zona privada gerenciada para sua rede VPC.

    gcloud dns managed-zones create apis \
        --visibility private \
        --networks https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/[NETWORK] \
        --dns-name googleapis.com \
        --description "Private Google APIs access"
    
  2. Crie uma política e ative o encaminhamento de entrada para sua rede VPC.

    gcloud beta dns policies create apipolicy \
        --networks https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/[NETWORK] \
        --enable-inbound-forwarding \
        --description "enable inbound forwarding for Private Google APIs"
    
  3. Inicie uma transação.

    gcloud dns record-sets transaction start -z apis
    
  4. Adicione registros de DNS.

    gcloud dns record-sets transaction add --name=*.googleapis.com. \
        --type=CNAME restricted.googleapis.com. --zone apis --ttl 300
    
    gcloud dns record-sets transaction add --name=restricted.googleapis.com. \
        --type=A 199.36.153.4 199.36.153.5 199.36.153.6 199.36.153.7 \
        --zone apis --ttl 300
    
  5. Execute a transação.

    gcloud dns record-sets transaction execute --zone apis
    
  6. Na sua rede local, ajuste seu DNS local para o endereço IP do encaminhador do Cloud DNS. Para encontrar o endereço IP do encaminhador, use o comando compute addresses list:

    gcloud compute addresses list --filter='name ~ ^dns-forwarding.*' \
        --format='csv[no-heading](address, subnetwork)'
    

Como configurar o DNS com o BIND

Se você usar o BIND na sua resolução de DNS local, poderá configurá-lo para resolver solicitações da API do Google para as APIs do Google restritas. Basta aplicar zonas de política de resposta (RPZ, na sigla em inglês), conforme mostrado na seguinte configuração do BIND:

  1. Adicione as seguintes linhas ao /etc/bind/named.conf:

    include "/etc/bind/named.conf.options";
    include "/etc/bind/named.conf.local";
    
  2. Adicione as seguintes linhas ao /etc/bind/named.conf.options:

    options {
      directory "/var/cache/bind";
    
      dnssec-validation no;
    
      auth-nxdomain no;    # conform to RFC 1035
      listen-on-v6 { any; };
      listen-on { any; };
      response-policy { zone "googleapis.zone"; };
      allow-query { any;};
    };
    
  3. Adicione as seguintes linhas ao /etc/bind/named.conf.local:

    include "/etc/bind/named.conf.default-zones";
    
    zone "googleapis.zone" {
      type master;
      file "/etc/bind/db.googleapis.zone";
      allow-query {none;};
    };
    
  4. Adicione as seguintes linhas ao /etc/bind/db.googleapis.zone:

    $TTL 1H
    @                       SOA LOCALHOST. noreply.localhost(1 1h 15m 30d 2h)
                            NS  LOCALHOST.
    
    *.googleapis.com CNAME restricted.googleapis.com.
    restricted.googleapis.com CNAME rpz-passthru.
    

A seguir

Esta página foi útil? Conte sua opinião sobre: