Opções de acesso particular para serviços

O Google Cloud oferece várias opções de acesso particular. Cada uma permite que instâncias de máquina virtual (VM) com endereços IP internos (RFC 1918, link em inglês) acessem determinados serviços e APIs. Escolha uma opção que seja compatível com as APIs e os serviços que você precisa acessar.

A tabela a seguir resume cada opção, e é possível configurar apenas uma ou todas elas. Cada uma funciona de forma independente.

Opção Clientes Conexão Serviços compatíveis Uso
Acesso privado do Google
Instâncias de VM do Google Cloud sem endereços IP externos. Conecte-se aos endereços IP padrão ou aos VIPs e domínios do Acesso privado do Google para serviços e APIs do Google por meio do gateway de Internet padrão da rede de nuvem privada virtual (VPC). Compatível com a maioria dos serviços e das APIs do Google. E também com o acesso a aplicativos do App Engine. Use essa opção para se conectar a serviços e APIs do Google sem fornecer endereços IP externos a recursos do Google Cloud.
Acesso privado do Google para hosts locais
Hosts locais com ou sem endereços IP externos. Conecte-se a serviços e APIs do Google pela rede local por meio do Cloud Interconnect ou de um túnel do Cloud VPN usando um dos VIPs e domínios específicos de Acesso privado do Google . Os serviços do Google que podem ser acessados dependem do domínio específico de Acesso privado do Google que você usa. Use essa opção para se conectar a serviços e APIs do Google por meio de uma rede VPC. Este método não exige que os hosts locais tenham endereços IP externos.
Acesso particular a serviços
Instâncias de VM do Google Cloud com ou sem endereços IP externos. Conecte-se a uma rede VPC gerenciada por terceiros ou pelo Google por meio de uma conexão de peering de redes VPC. Compatível com alguns serviços do Google ou de terceiros Use essa opção para se conectar a serviços específicos do Google e de terceiros sem atribuir endereços IP externos ao Google Cloud e a recursos do Google ou de terceiros.
Acesso VPC sem servidor
Instâncias de VM do Google Cloud com ou sem endereços IP externos. Conecte-se diretamente dos serviços do Google sem servidor por meio de uma conexão com a VPC interna. Cloud Functions e ambiente padrão do App Engine Use esta opção para se conectar pelo Cloud Functions ou pelo ambiente padrão do App Engine diretamente aos recursos em uma rede VPC usando endereços IP internos.

Acesso privado do Google

As instâncias de VM que só têm endereços IP internos, ou seja, sem endereços externos, podem usar o Acesso privado do Google. Elas podem acessar os endereços IP externos de serviços e APIs do Google. O endereço IP de origem do pacote pode ser o endereço IP interno principal da interface de rede ou um endereço em um intervalo de IPs de alias atribuído à interface. Se você desativar o Acesso privado do Google, as instâncias de VM não poderão mais acessar serviços e APIs do Google. Elas só poderão enviar tráfego dentro da rede VPC.

O Acesso privado do Google não afeta as instâncias que têm endereços IP externos. Instâncias com endereços IP externos podem acessar a Internet, de acordo com os requisitos de acesso à Internet. Elas não precisam de uma configuração especial para fazer solicitações aos endereços IP externos de serviços e APIs do Google.

O Acesso privado do Google é ativado por sub-rede e é uma configuração para sub-redes em uma rede VPC. Para ativar o Acesso privado do Google em uma sub-rede e ver os requisitos, consulte Como configurar o Acesso privado do Google.

Serviços compatíveis

O Acesso privado do Google permite acesso às APIs do Cloud e de desenvolvedor, bem como à maioria dos serviços do Google Cloud, exceto:

  • Memcache do App Engine
  • Filestore
  • Memorystore
  • Cloud SQL

Em vez disso, o acesso particular a serviços pode ser compatível com um ou mais deles.

Exemplo

A rede VPC usada no exemplo a seguir atende ao requisito de roteamento do Acesso privado do Google porque tem rotas para os endereços IP públicos de serviços e APIs do Google em que os próximos saltos são o gateway de Internet padrão. O Acesso privado do Google está ativado para subnet-a, mas não para subnet-b.

Implementação do Acesso privado do Google (clique para ampliar)

A lista a seguir fornece detalhes sobre o diagrama acima:

  • As regras de firewall na rede VPC foram configuradas para permitir a saída para 0.0.0.0/0 (ou pelo menos para os IPs de servidor para serviços e APIs do Google).
  • VM A1 pode acessar serviços e APIs do Google, inclusive o Cloud Storage, porque a interface de rede dela está localizada em subnet-a, que tem o Acesso privado do Google ativado. Esse tipo de acesso se aplica à instância porque ela tem apenas um endereço IP interno.
  • VM B1 não pode acessar serviços e APIs do Google porque tem apenas um endereço IP interno e o Acesso privado do Google está desativado para subnet-b.
  • VM A2 e VM B2 podem acessar serviços e APIs do Google, inclusive o Cloud Storage, porque cada uma delas tem endereços IP externos. O Acesso privado do Google não determina se essas instâncias podem ou não acessar serviços e APIs do Google porque ambas têm endereços IP externos.

Acesso privado do Google para hosts locais

Hosts locais podem acessar serviços e APIs do Google no Google Cloud, usando o Cloud VPN ou o Cloud Interconnect pela rede local. Hosts locais podem enviar tráfego dos seguintes tipos de endereços IP de origem:

  • Um endereço IP particular, como um endereço RFC 1918 (em inglês).
  • Um endereço IP público de uso particular, exceto um endereço IP público do Google. O Acesso privado do Google para hosts locais não é compatível com a reutilização de endereços IP públicos do Google como origens na rede local.

Para ativar o Acesso privado do Google para hosts locais, é necessário configurar o DNS, as regras de firewall e as rotas nas suas redes locais e VPC. Não é necessário ativar o Acesso privado do Google para qualquer sub-rede na sua rede VPC, como seria feito para o Acesso privado do Google para instâncias de VM do Google Cloud.

Hosts locais precisam se conectar aos serviços e às APIs do Google usando os endereços IP virtuais (VIPs, na sigla em inglês) de um destes domínios: restricted.googleapis.com ou private.googleapis.com. Consulte VIPs e domínios específicos de Acesso privado do Google para mais detalhes.

O Google divulga publicamente os registros A de DNS que resolvem os domínios para um intervalo de VIPs. Mesmo que os intervalos sejam de um intervalo de IPs públicos, o Google não divulga rotas para eles. Portanto, é necessário adicionar uma divulgação de rota personalizada em um Cloud Router e ter uma rota estática personalizada apropriada em sua rede VPC para o destino do VIP.

A rota precisa ter um destino correspondente a um dos intervalos de VIPs e ter o gateway de Internet padrão como próximo salto. O tráfego enviado para o intervalo de VIPs permanece dentro da rede do Google em vez de passar pela Internet pública porque o Google não divulga rotas para eles externamente.

Para informações sobre configuração, consulte Como configurar o Acesso privado do Google para hosts locais.

VIPs e domínios específicos de Acesso privado do Google

A tabela a seguir descreve os nomes de domínio e o intervalo de VIPs correspondente. Use um desses VIPs para o Acesso privado do Google para hosts locais.

VIPs e domínios Serviços compatíveis Exemplo de uso
restricted.googleapis.com
199.36.153.4/30
Permite o acesso da API a APIs e serviços do Google compatíveis com o VPC Service Controls.
Bloqueia o acesso a APIs e serviços do Google que não são compatíveis com o VPC Service Controls. Não é compatível com aplicativos da Web do G Suite ou APIs do G Suite.
Use restricted.googleapis.com para disponibilizar apenas os serviços restritos do VPC Service Controls aos hosts na rede VPC ou na rede local.
private.googleapis.com
199.36.153.8/30
Permite o acesso da API à maioria das APIs e serviços do Google, independentemente de serem compatíveis com o VPC Service Controls. Inclui acesso da API ao Google Maps, Google Ads, Google Cloud Platform e à maioria das APIs do Google que têm nomes terminados em googleapis.com. Não é compatível com aplicativos da Web do G Suite. Use private.googleapis.com quando precisar acessar serviços e APIs do Google nas seguintes circunstâncias:
  • Você não está usando o VPC Service Controls.
  • Você está usando o VPC Service Controls, mas é necessário acessar os serviços que não são compatíveis com o VPC Service Controls.

Serviços compatíveis

Os serviços disponíveis para hosts locais são limitados àqueles compatíveis com o nome de domínio e VIP usados para acessá-los. Consulte VIPs e domínios específicos de Acesso privado do Google para detalhes.

Exemplo

No exemplo a seguir, a rede local é conectada a uma rede VPC por meio de um túnel do Cloud VPN. O tráfego de hosts locais para as APIs do Google viaja pelo túnel até a rede VPC. Depois que o tráfego atinge essa rede, ele é enviado por meio de uma rota que usa o gateway de Internet padrão como próximo salto. Esse próximo salto permite que o tráfego deixe a rede VPC e seja entregue a restricted.googleapis.com (199.36.153.4/30).

Acesso privado do Google para caso de uso de nuvem híbrida (clique para ampliar)
  • A configuração de DNS local mapeia as solicitações *.googleapis.com para restricted.googleapis.com, que são resolvidas para 199.36.153.4/30.
  • O Cloud Router foi configurado para divulgar o intervalo de endereços IP 199.36.153.4/30 por meio do túnel do Cloud VPN usando uma divulgação de rota personalizada. O tráfego encaminhado para as APIs do Google é roteado pelo túnel até a rede VPC.
  • Uma rota estática personalizada foi adicionada à rede VPC, que direciona o tráfego com o destino 199.36.153.4/30 para o gateway de Internet padrão (como o próximo salto). O Google então o direciona para a API ou o serviço apropriado.
  • Se você criou uma zona privada gerenciada do Cloud DNS para *.googleapis.com mapeada para 199.36.153.4/30 e autorizou que ela fosse usada pela rede VPC, as solicitações para qualquer coisa no domínio googleapis.com são enviadas para os endereços IP usados por restricted.googleapis.com. Somente as APIs compatíveis são acessíveis com essa configuração, o que pode tornar outros serviços inacessíveis. O Cloud DNS não aceita modificações parciais. Se você precisar de modificações parciais, use o BIND.

Acesso particular a serviços

O Google e terceiros, conhecidos conjuntamente como produtores de serviços, podem oferecer serviços com endereços IP internos hospedados em uma rede VPC. O acesso particular a serviços permite que você acesse esses endereços IP internos. Isso é útil quando você quer que as instâncias de VM na sua rede VPC usem endereços IP internos em vez de endereços IP externos. Para detalhes sobre como usar o acesso particular a serviços, consulte Como configurar o acesso particular a serviços.

O acesso particular a serviços exige que você primeiro aloque um intervalo de endereços IP internos e crie uma conexão particular. Um intervalo alocado é um bloco CIDR reservado que não pode ser usado na sua rede VPC local. Ele é reservado apenas para fornecedores de serviços e evita sobreposições entre sua rede VPC e a rede VPC do fornecedor de serviços. Quando você cria uma conexão particular, precisa especificar uma alocação.

A conexão particular vincula sua rede VPC à rede VPC do produtor de serviços. Essa conexão permite que instâncias de VM na sua rede VPC usem endereços IP internos para acessar os recursos de serviço que têm endereços IP internos. As instâncias podem ter endereços IP externos, mas eles não são um requisito nem são usados pelo acesso particular a serviços.

Se um produtor de serviços oferecer vários serviços, você precisará apenas de uma conexão particular. Você usa a API Service Networking quando cria uma conexão particular. No entanto, o Google Cloud implementa essa conexão como uma conexão de peering de redes VPC entre sua rede VPC e a do produtor de serviços. Por exemplo, sua rede VPC a mostra como uma conexão de peering e, para excluir a conexão particular, é preciso excluir a conexão de peering.

Use o acesso particular a serviços apenas com serviços compatíveis. Confira com o produtor de serviços antes de criar uma conexão particular.

Rede do produtor de serviços

No lado do produtor de serviços, a conexão particular é uma rede VPC, em que os recursos de serviço são provisionados. A rede do produtor de serviços é criada exclusivamente para você e contém apenas os seus recursos.

Um recurso na rede do produtor de serviços é semelhante a outro recurso na sua rede VPC. Por exemplo, pode ser acessado com endereços IP internos por outros recursos na sua rede VPC. É possível também criar regras de firewall em sua rede VPC para controlar o acesso à rede do fornecedor de serviços.

Para detalhes sobre o lado do produtor de serviços, consulte Como ativar o acesso particular a serviços na documentação do Service Infrastructure. Essa documentação é apenas informativa e não é necessária para ativar ou usar o acesso particular a serviços.

Acesso particular a serviços e conectividade no local

Em cenários de rede híbrida, uma rede local é conectada a uma rede VPC por meio de uma conexão com o Cloud VPN ou o Cloud Interconnect. Por padrão, os hosts locais não podem acessar a rede do produtor de serviços usando o acesso particular a serviços.

Na rede VPC, é possível ter rotas personalizadas dinâmicas ou estáticas para direcionar corretamente o tráfego para a rede local. No entanto, a rede do produtor de serviços não contém essas mesmas rotas. Quando você cria uma conexão particular, a rede VPC e a rede do produtor de serviços apenas trocam rotas de sub-rede.

Exporte as rotas personalizadas da rede VPC para que a rede do produtor de serviços possa importá-las e rotear o tráfego corretamente para sua rede local.

Para exportar rotas personalizadas, crie uma conexão particular e modifique a configuração básica de peering de VPC para exportar rotas personalizadas. Para mais informações sobre como criar uma conexão particular, consulte Como configurar o Acesso particular a serviços. Para mais informações sobre como exportar rotas personalizadas, consulte Como atualizar uma conexão de peering.

Serviços compatíveis

Os seguintes serviços do Google são compatíveis com o acesso particular a serviços:

Exemplo

No exemplo a seguir, a rede VPC do cliente alocou o intervalo de endereços 10.240.0.0/16 para serviços do Google e estabeleceu uma conexão particular que usa o intervalo alocado. Cada serviço do Google cria uma sub-rede a partir do bloco alocado para provisionar novos recursos em uma determinada região, como instâncias do Cloud SQL.

Acesso particular a serviços (clique para ampliar)
  • A conexão particular é atribuída ao intervalo alocado 10.240.0.0/16. A partir dessa alocação, os serviços do Google podem criar sub-redes em que novos recursos serão provisionados.
  • No lado de serviços do Google da conexão particular, o Google cria um projeto para o cliente. O projeto é isolado, o que significa que ele não é compartilhado com nenhum outro cliente e o cliente é cobrado apenas pelos recursos provisionados.
  • Cada serviço do Google cria uma sub-rede para provisionar recursos. O intervalo de endereços IP da sub-rede geralmente é um bloco CIDR /24 escolhido pelo serviço e proveniente do intervalo de endereços IP alocado. Não é possível modificar a sub-rede do produtor de serviços. Um serviço provisiona novos recursos nas sub-redes regionais atuais que foram criadas anteriormente por esse serviço. Se uma sub-rede estiver cheia, o serviço criará uma nova sub-rede na mesma região.
  • As instâncias de VM na rede do cliente podem acessar recursos de serviço em qualquer região quando o serviço é compatível. No entanto, alguns serviços podem não aceitar a comunicação entre regiões. Por exemplo, as instâncias de VM só podem se comunicar com instâncias do Cloud SQL que estejam na mesma região. Para mais informações, consulte a documentação do serviço relevante.
  • Quando uma instância de VM se comunica com recursos de uma região diferente, os custos de saída para tráfego entre regiões continuam sendo aplicáveis.
  • A instância do Cloud SQL recebe o endereço IP 10.240.0.2. Na rede VPC do cliente, as solicitações com o destino 10.240.0.2 são roteadas para a conexão particular pela rede do produtor de serviços. Quando elas alcançam a rede do serviço, essa rede encaminha a solicitação para o recurso correto.
  • O tráfego entre redes VPC é transmitido internamente na rede do Google, e não pela Internet pública.

Acesso VPC sem servidor

O acesso VPC sem servidor permite que você se conecte pelo Cloud Functions ou pelo ambiente padrão do App Engine diretamente à sua rede VPC. Essa conexão possibilita que o Cloud Functions e os aplicativos do ambiente padrão do App Engine acessem recursos na rede VPC por meio de endereços IP internos.

Com o acesso VPC sem servidor, você cria um conector no seu projeto do Google Cloud e o anexa a uma rede VPC. Em seguida, você configura os serviços sem servidor (como o Cloud Functions ou aplicativos do App Engine) para usar esse conector para tráfego de rede interno.

O acesso VPC sem servidor permite que o aplicativo ou a função envie solicitações a recursos da rede VPC e receba respostas a essas solicitações. A comunicação na direção oposta, em que uma VM inicia uma solicitação para um aplicativo ou uma função, exige que você use o endereço público do aplicativo ou da função. Para mais informações, consulte Acesso privado do Google.

O Acesso VPC sem servidor não é compatível com redes legadas ou redes vpc_shared_vpc. Para mais informações, consulte Como configurar o acesso VPC sem servidor.

Serviços compatíveis

Os seguintes serviços do Google são compatíveis com conectores de acesso VPC sem servidor:

  • Ambiente padrão do App Engine
    • Todos os ambientes de execução, exceto PHP 5.5 e Go 1.9
  • Cloud Functions

Exemplo

No exemplo a seguir, o Cloud Functions e um aplicativo de ambiente padrão do App Engine usam um conector de Acesso VPC sem servidor para enviar solicitações a recursos internos na rede VPC.

Exemplo de acesso VPC sem servidor (clique para ampliar)
Exemplo de acesso VPC sem servidor (clique para ampliar)
  • O conector de acesso VPC sem servidor está no mesmo projeto e na mesma região que o Cloud Functions e o aplicativo do App Engine.
  • O conector está anexado à rede VPC que contém os recursos de destino. Ele poderá acessar recursos em outras redes VPC e projetos do Google Cloud se você usar o peering de redes VPC.
  • O conector recebe o intervalo de IPs 10.8.0.0/28. As solicitações enviadas do conector para o destino têm um endereço IP de origem nesse intervalo.
  • O Cloud Functions e o aplicativo do App Engine acessam os recursos de destino enviando solicitações para os respectivos endereços IP internos, 10.0.0.4 e 10.1.0.2. Os recursos de destino podem estar em qualquer região. Os custos de saída se aplicam ao tráfego enviado do conector para um recurso em uma região diferente.
  • As solicitações enviadas do Cloud Functions e do App Engine para endereços IP internos (particulares) são transmitidas internamente por meio do conector de Acesso VPC sem servidor até o recurso de destino. As solicitações enviadas para endereços IP externos (públicos) são transmitidas pela Internet pública.

A seguir