Configure o acesso a serviços privados

O acesso privado aos serviços é uma ligação privada entre a sua rede VPC e uma rede pertencente à Google ou a terceiros. A Google ou as entidades terceiras que oferecem serviços também são conhecidas como produtores de serviços. A ligação privada permite que as instâncias de VM na sua rede VPC e os serviços aos quais acede comuniquem exclusivamente através de endereços IP internos. As instâncias de VM não precisam de acesso à Internet nem de endereços IP externos para alcançar serviços disponíveis através do acesso a serviços privados.

Para saber mais acerca do acesso a serviços privados e outras opções de acesso privado, consulte o artigo Opções de acesso privado para serviços.

A um nível elevado, para usar o acesso a serviços privados, tem de atribuir um intervalo de endereços IP (bloco CIDR) na sua rede VPC e, em seguida, criar uma ligação privada a um produtor de serviços.

Antes de começar

Para estabelecer uma ligação privada, conclua os seguintes pré-requisitos:

  • Verifique se o serviço que está a usar suporta o acesso a serviços privados.
  • Crie um Google Cloud projeto ou escolha um existente. Para saber como criar um projeto, consulte o artigo Criar e gerir projetos. Google Cloud
  • Ative a API Service Networking no seu projeto. A API é necessária para criar uma ligação privada.
  • Crie ou escolha uma rede de VPC que vai usar para se ligar à rede do produtor do serviço. As instâncias de VM têm de usar esta rede VPC para se ligarem a serviços através de uma ligação privada.
  • Instale a CLI gcloud se quiser executar os exemplos de linha de comandos neste guia.gcloud

Autorizações

Os proprietários do projeto e os membros da IAM com a função de administrador da rede de computação (roles/compute.networkAdmin) podem criar intervalos de endereços IP alocados e gerir ligações privadas.

Para mais informações acerca das funções, leia a documentação sobre as funções de IAM da VPC.

Cenário de VPC partilhada

Se estiver a usar a VPC partilhada, crie o intervalo de IPs atribuído e a ligação privada no projeto anfitrião. Normalmente, um administrador de rede no projeto de anfitrião tem de realizar estas tarefas. Após a configuração do projeto anfitrião, as instâncias de VM nos projetos de serviço podem usar a ligação privada.

Quotas e limites

Uma vez que uma ligação privada é implementada como uma ligação de intercâmbio da VPC, a mesma quota e limites que se aplicam ao intercâmbio da rede da VPC também se aplicam ao acesso a serviços privados.

Intervalos de endereços IP atribuídos para serviços

Antes de criar uma ligação privada, tem de atribuir um intervalo de endereços IPv4 a ser usado pela rede VPC do produtor de serviços. Isto garante que não existe uma colisão de endereços IP entre a sua rede VPC e a rede do produtor do serviço. Crie um intervalo alocado para cada produtor de serviços.

Quando atribui um intervalo na sua rede VPC, esse intervalo não é elegível para sub-redes (intervalos primários e secundários) nem destinos de rotas estáticas personalizadas.

A utilização de intervalos de endereços IPv6 com acesso a serviços privados não é suportada.

Tamanho do intervalo de endereços IP

Intervalos de acesso a serviços privados.
Intervalos de acesso a serviços privados (clique para aumentar).

Quando um produtor de serviços cria uma sub-rede no seu lado da ligação, é selecionado um intervalo aberto da atribuição para o intervalo de endereços IP da sub-rede.

Cada produtor de serviços requer um tamanho mínimo do intervalo de endereços IP. Para a Google, o tamanho mínimo é um único bloco /24 (256 endereços), mas o tamanho recomendado é um bloco /16 (65 536 endereços).

O tamanho que escolher depende de vários fatores, por exemplo:

  • O número de serviços e regiões que usa.
  • Os requisitos dos serviços que utiliza.
    • O tamanho mínimo do intervalo de endereços IP para os serviços.
    • Se o fornecedor de serviços requer intervalos de IP separados para cada instância do serviço que criar ou se pode usar o mesmo intervalo de IP para várias instâncias do serviço.

Se não tiver um bloco /16 contíguo, pode começar com uma atribuição menor e adicionar novas se precisar de mais endereços IP mais tarde.

Acerca da sub-rede do produtor de serviços

Quando estabelece uma ligação privada e cria um recurso com um endereço IP privado, o serviço cria uma sub-rede na qual aprovisionar o recurso. O serviço seleciona um intervalo de endereços IP disponível a partir do intervalo atribuído. Não pode selecionar nem modificar o intervalo de endereços IP da sub-rede do produtor de serviços. A sub-rede é eliminada pelo serviço apenas quando elimina todos os recursos na sub-rede.

À medida que aprovisiona recursos adicionais, o serviço aprovisiona-os em sub-redes regionais existentes que criou anteriormente. Se uma sub-rede estiver cheia, o serviço cria uma nova nessa região.

Considerações

Antes de atribuir um intervalo de endereços IP, considere o seguinte:

  • Selecione um intervalo alocado que esteja completamente separado dos intervalos de sub-redes atuais e futuros, incluindo intervalos de sub-redes de redes ligadas através da interligação de redes de VPC e intervalos de sub-redes de raios de VPC ligados ao mesmo hub do Network Connectivity Center.
  • Selecione um intervalo que não corresponda exatamente nem contenha os destinos de nenhuma rota estática ou dinâmica personalizada.

    Quando um produtor de serviços seleciona uma parte não usada de um intervalo atribuído para usar como candidato para novos recursos, exclui todos os destinos de rotas personalizadas que correspondam exatamente ou se enquadrem no intervalo atribuído. Quando uma rede de VPC contém um intervalo alocado e rotas personalizadas com destinos que correspondem ou se enquadram no intervalo alocado, a porção utilizável do intervalo alocado é reduzida. Esta configuração pode originar erros de alocação esgotada inesperados.

    Por exemplo, se criar um intervalo alocado para 10.0.0.0/16, aplica-se o seguinte:

    • Se existir um trajeto personalizado com um destino para 10.0.0.0/16 ou for criado posteriormente, todo o intervalo de 10.0.0.0/16 é considerado indisponível. Se um produtor de serviços tentar usar o intervalo atribuído, Google Cloud devolve um erro de atribuição esgotada.

    • Se existir um trajeto personalizado com um destino para 10.0.0.0/20 ou for criado posteriormente, a parte 10.0.0.0/20 do intervalo 10.0.0.0/16 atribuído é considerada indisponível. Se um produtor de serviços tentar usar o intervalo atribuído e a parte disponível do seu intervalo atribuído for insuficiente para um produtor de serviços, Google Cloud é devolvido um erro de atribuição esgotada.

    • Se existir um trajeto personalizado com um destino para 10.0.0.0/8 ou for criado posteriormente, isto não afeta a disponibilidade do intervalo atribuído de 10.0.0.0/16.

  • Selecione um intervalo que não entre em conflito com as suas outras necessidades de endereços IP:

    • Alguns produtos Google e de terceiros usam 172.17.0.0/16 para o encaminhamento no sistema operativo convidado. Por exemplo, a rede de ponte Docker predefinida usa este intervalo. Se depender de um produto que use 172.17.0.0/16, não use 172.17.0.0/16 num intervalo atribuído para acesso a serviços privados.
    • Se estiver a usar uma rede VPC no modo automático, não pode criar um intervalo alocado que corresponda ou se sobreponha a 10.128.0.0/9. A Google usa o intervalo 10.128.0.0/9 para sub-redes criadas automaticamente, incluindo as de regiões futuras.
  • Selecione um bloco CIDR suficientemente grande para satisfazer as suas necessidades atuais e futuras. Se, mais tarde, verificar que o alcance não tem um tamanho suficiente, expanda o alcance, se possível. Embora possa atribuir várias alocações a um único produtor de serviços, a Google aplica uma quota ao número de intervalos de endereços IP que pode atribuir, mas não ao tamanho (máscara de rede) de cada intervalo.

  • Se adicionar um intervalo atribuído adicional a uma ligação privada, expande o intervalo de endereços IP disponíveis para o produtor de serviços quando cria novos recursos de serviço para qualquer serviço que forneça. Não pode reservar um intervalo atribuído específico numa ligação privada para utilização por um serviço específico.

  • Não volte a usar o mesmo intervalo atribuído para vários produtores de serviços. Embora seja possível, fazê-lo pode levar a uma sobreposição de endereços IP. Cada produtor de serviços tem visibilidade apenas na respetiva rede e não consegue saber que endereços IP outros produtores de serviços estão a usar.

  • Só pode atribuir um bloco CIDR a um intervalo alocado quando cria a alocação. Se precisar de expandir o intervalo de endereços IP, não pode adicionar mais blocos a uma atribuição. Em alternativa, pode criar outra atribuição ou recriar a existente usando um bloco maior que abranja os intervalos novos e existentes.

  • Se criar a atribuição você mesmo em vez de deixar que a Google o faça (por exemplo, através do Cloud SQL), pode usar a mesma convenção de nomenclatura para sinalizar a outros utilizadores ou serviços Google que já existe uma atribuição para a Google. Quando um serviço Google atribui um intervalo em seu nome, o serviço usa o seguinte formato para nomear a atribuição: google-managed-services-[your network name]. Se esta atribuição existir, os serviços Google usam a atribuição existente em vez de criar outra.

  • Uma vez que uma ligação privada é implementada como uma ligação de intercâmbio da rede da VPC, os comportamentos e as restrições das ligações de intercâmbio também se aplicam a ligações privadas, como os limites de intercâmbio da rede da VPC.

  • Se planeia alterar o endereço IP interno de uma instância de serviço existente que usa a VPC, considere se esta ação pode ser perturbadora, por exemplo, se requer a eliminação e a recriação da instância de serviço. Para mais informações, reveja a documentação do serviço gerido associado. Por exemplo, se estiver a usar o Cloud SQL, consulte o artigo Altere o endereço IP privado de uma instância do Cloud SQL existente.

Crie uma atribuição de IP

Os passos seguintes descrevem como criar um intervalo de endereços IP atribuídos.

Consola

  1. Na Google Cloud consola, aceda à página Redes VPC.

    Aceda a redes de VPC

  2. Selecione a rede de VPC que vai estabelecer ligação a um serviço produtor.

  3. Selecione o separador Acesso a serviços privados.

  4. No separador Acesso a serviços privados, selecione o separador Intervalos de IP atribuídos para serviços.

  5. Clique em Atribuir intervalo de IPs.

  6. Introduza um Nome e uma Descrição para o intervalo atribuído.

  7. Especifique um intervalo de IPs para a atribuição:

    • Para especificar um intervalo de endereços IP, selecione Personalizado e, de seguida, introduza um bloco CIDR, como 192.168.0.0/16.
    • Para especificar um comprimento do prefixo e permitir que a Google selecione um intervalo disponível, selecione Automático e, em seguida, introduza um comprimento do prefixo, como 16.
  8. Clique em Atribuir para criar o intervalo atribuído.

gcloud

Para criar um intervalo atribuído na sua rede VPC, use o comando addresses create.

  • Para especificar um intervalo de endereços e um comprimento do prefixo (máscara de sub-rede), use as flags addresses e prefix-length. Por exemplo, para atribuir o bloco CIDR 192.168.0.0/16, especifique 192.168.0.0 para o endereço e 16 para o comprimento do prefixo.

    gcloud compute addresses create RESERVED_RANGE_NAME \
        --global \
        --purpose=VPC_PEERING \
        --addresses=192.168.0.0 \
        --prefix-length=16 \
        --description="DESCRIPTION" \
        --network=VPC_NETWORK
    
  • Para especificar apenas um comprimento do prefixo (máscara de sub-rede), basta usar a flag prefix-length. Quando omite o intervalo de endereços, Google Cloud seleciona automaticamente um intervalo de endereços não usado na sua rede VPC. O exemplo seguinte seleciona um intervalo de endereços IP não usado com um comprimento do prefixo de 16 bits.

    gcloud compute addresses create RESERVED_RANGE_NAME \
        --global \
        --purpose=VPC_PEERING \
        --prefix-length=16 \
        --description="DESCRIPTION" \
        --network=VPC_NETWORK
    

Substitua o seguinte:

  • RESERVED_RANGE_NAME: um nome para o intervalo atribuído, como my-allocated-range.

  • DESCRIPTION: uma descrição do intervalo, como allocated for my-service.

  • VPC_NETWORK: o nome da sua rede VPC, como my-vpc-network.

O exemplo seguinte cria uma ligação privada à Google para que as instâncias de VM na rede VPC possam usar o acesso a serviços privados para alcançar os serviços Google que o suportam.my-network

gcloud compute addresses create google-managed-services-my-network \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=16 \
    --description="peering range for Google" \
    --network=my-network

Terraform

Para criar um intervalo alocado na sua rede VPC, use o recurso google_compute_global_address.

resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = google_compute_network.peering_network.id
}

Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.

Se vir um erro sobre a autorização compute.globalAddresses.list para o projeto, consulte o artigo Autorizações da conta de serviço.

Liste os intervalos de endereços IP atribuídos

Para apresentar uma lista dos intervalos de endereços IP atribuídos, use o comando addresses list.

gcloud compute addresses list --global --filter="purpose=VPC_PEERING"

Crie uma ligação privada

Depois de criar um intervalo alocado, pode criar uma ligação privada a um produtor de serviços. A ligação privada estabelece uma ligação de intercâmbio da rede da VPC entre a sua rede da VPC e a rede do produtor do serviço.

As ligações privadas são uma relação individual entre a sua rede VPC e um produtor de serviços. Se um único produtor de serviços oferecer vários serviços, só precisa de uma ligação privada para todos os serviços do produtor.

Se um único produtor de serviços oferecer vários serviços e quiser controlar que intervalos atribuídos são usados para diferentes recursos de serviço, pode usar várias redes VPC, cada uma com as suas próprias ligações privadas. Esta configuração permite-lhe selecionar uma rede específica quando cria um novo recurso de serviço gerido para garantir que os intervalos atribuídos associados são usados para o novo recurso.

Se estabelecer ligação a vários produtores de serviços, use uma atribuição única para cada produtor de serviços. Esta prática ajuda a gerir as definições de rede, como rotas e regras de firewall, para cada produtor de serviços.

Consola

  1. Na Google Cloud consola, aceda à página Redes VPC.

    Aceda a redes de VPC

  2. Selecione a rede de VPC que vai estabelecer ligação a um serviço produtor.

  3. Selecione o separador Acesso a serviços privados.

  4. No separador Acesso a serviços privados, selecione o separador Ligações privadas a serviços.

  5. Clique em Criar ligação para criar uma ligação privada entre a sua rede e um produtor de serviços.

  6. Para a Atribuição atribuída, selecione um ou mais intervalos atribuídos existentes que não estejam a ser usados por outros produtores de serviços.

  7. Clique em Associar para criar a associação.

gcloud

  1. Use o comando vpc-peerings connect.

    gcloud services vpc-peerings connect \
        --service=servicenetworking.googleapis.com \
        --ranges=RESERVED_RANGE_NAME \
        --network=VPC_NETWORK
    

    Substitua o seguinte:

    • RESERVED_RANGE_NAME: o nome de um ou mais intervalos atribuídos.

    • VPC_NETWORK: o nome da sua rede VPC.

    O comando inicia uma operação de longa duração, devolvendo um nome de operação.

  2. Para verificar se a operação foi bem-sucedida, use o comando vpc-peerings operations describe.

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

    Substitua OPERATION_NAME pelo nome da operação que foi devolvido no passo anterior.

Pode especificar mais do que um intervalo atribuído quando cria uma ligação privada. Por exemplo, se um intervalo tiver sido esgotado, pode atribuir intervalos adicionais. O serviço vai usar endereços IP de todos os intervalos fornecidos pela ordem que especificou.

Terraform

Para criar uma ligação privada, use o recurso google_service_networking_connection.

resource "google_service_networking_connection" "default" {
  network                 = google_compute_network.peering_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

Liste as ligações privadas

Depois de criar uma ligação privada, pode listá-la para verificar se existe. A lista também mostra a lista de intervalos atribuídos associados a cada ligação. Por exemplo, se não se lembrar do intervalo atribuído a uma associação, consulte a lista para o saber.

Consola

  1. Na Google Cloud consola, aceda à página Redes VPC.

    Aceda a redes de VPC

  2. Selecione a rede de VPC que contém as ligações.

  3. Selecione o separador Acesso a serviços privados.

  4. No separador Acesso privado aos serviços, selecione o separador Ligações privadas aos serviços para ver todas as ligações privadas da rede.

gcloud

Use o comando vpc-peerings list.

gcloud services vpc-peerings list \
    --network=VPC_NETWORK

Substitua VPC_NETWORK pelo nome da sua rede VPC.

Modifique uma associação privada

Para associações privadas existentes, pode adicionar ou remover intervalos de endereços IP atribuídos sem interromper o tráfego. Por exemplo, à medida que cresce, pode adicionar um intervalo atribuído se estiver perto de esgotar o existente.

Quando remove um intervalo de uma ligação privada, aplica-se o seguinte:

  • O intervalo atribuído já não está associado à ligação privada, mas não é eliminado.

  • Os recursos do produtor de serviços existentes podem continuar a usar o intervalo removido.

  • O acesso privado aos serviços não usa os intervalos removidos para atribuir novas sub-redes.

Consola

  1. Na Google Cloud consola, aceda à página Redes VPC.

    Aceda a redes de VPC

  2. Selecione a rede de VPC que contém as ligações.

  3. Selecione o separador Acesso a serviços privados.

  4. No separador Acesso privado aos serviços, selecione o separador Ligações privadas aos serviços para ver todas as ligações privadas da rede.

  5. Clique no nome de uma associação na lista.

  6. Na lista Atribuição atribuída, selecione os intervalos atribuídos que quer associar à associação privada. Desmarque as caixas de verificação de todos os intervalos atribuídos que quer remover da ligação privada.

  7. Clique em OK.

gcloud

Para adicionar ou remover intervalos de endereços IP alocados atribuídos numa ligação privada existente, use o comando vpc-peerings update.

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

Substitua o seguinte:

  • RESERVED_RANGE_NAME: uma lista de um ou mais nomes de intervalos atribuídos a atribuir à ligação privada.

    RESERVED_RANGE_NAME substitui a lista anterior de intervalos atribuídos. Se omitir um intervalo que tenha sido associado anteriormente a esta ligação privada, o intervalo é removido da ligação. Tem de usar a opção --force para remover um intervalo.

  • VPC_NETWORK: o nome da sua rede VPC.

Elimine um intervalo de endereços IP atribuído

Antes de eliminar um intervalo de endereços IP atribuído, verifique se o intervalo está a ser usado por uma ligação privada.

Se o intervalo de endereços IP atribuído estiver em utilização, primeiro modifique a ligação privada para remover o intervalo. Em seguida, elimine o intervalo de endereços IP atribuído.

Se eliminar um endereço IP atribuído que está em utilização e não modificar a ligação privada, aplica-se o seguinte:

  • As ligações existentes permanecem ativas, mas não existe nada que impeça a sua rede VPC de usar endereços IP que se sobreponham à rede do produtor do serviço.

  • Se eliminar o único intervalo de endereços IP atribuído associado a uma ligação privada, o serviço não pode criar novas sub-redes porque não existe nenhum intervalo de endereços IP atribuído a partir do qual possa selecionar.

  • Se criar posteriormente um intervalo de endereços IP atribuído que corresponda ou se sobreponha ao intervalo eliminado, a adição do intervalo a uma ligação privada falha.

Para evitar estes problemas, modifique sempre as suas ligações privadas quando eliminar um intervalo de endereços IP atribuídos em utilização.

Consola

  1. Na Google Cloud consola, aceda à página Redes VPC.

    Aceda a redes de VPC

  2. Selecione a rede de VPC que contém as atribuições a eliminar.

  3. Selecione o separador Acesso a serviços privados.

  4. No separador Acesso a serviços privados, selecione o separador Intervalos de IP atribuídos para serviços.

  5. Selecione a atribuição a eliminar.

  6. Clique em Libertar para devolver o intervalo de endereços IP atribuído ao conjunto de endereços IP internos disponíveis da rede.

    Se o intervalo de endereços IP atribuído ainda estiver atribuído a uma ligação existente, tem de introduzir uma confirmação adicional antes de poder libertar a atribuição.

  7. Clique novamente em Libertar para confirmar a eliminação.

gcloud

Elimine a atribuição especificando o nome da atribuição.

gcloud compute addresses delete NAME \
    --global

SubstituaNAME pelo nome do intervalo atribuído que quer eliminar.

Elimine uma ligação privada

Para eliminar uma ligação privada, conclua o procedimento nesta secção. Não tente eliminar uma ligação privada eliminando diretamente a ligação de intercâmbio das redes da VPC associada.

Antes de eliminar uma ligação privada, tem de eliminar todas as instâncias de serviço às quais acede através da ligação. Por exemplo, se quiser eliminar uma ligação privada que é usada para aceder ao Cloud SQL, tem de eliminar primeiro as instâncias do Cloud SQL que usam essa ligação. Depois de eliminar as instâncias de serviço, os recursos do produtor de serviços são eliminados, mas esta eliminação pode não ocorrer imediatamente. Alguns produtores de serviços atrasam a eliminação até que decorra um período de espera. Não pode eliminar a ligação privada durante o período de espera. Tem de aguardar até que os recursos do produtor do serviço sejam eliminados antes de poder eliminar a associação.

Por exemplo, se eliminar uma instância do Cloud SQL, recebe uma resposta de êxito, mas o serviço aguarda quatro dias antes de eliminar os recursos do produtor de serviços. O período de espera significa que, se mudar de ideias acerca da eliminação do serviço, pode pedir a reposição dos recursos. Se tentar eliminar a associação durante o período de espera, a eliminação falha com uma mensagem a indicar que os recursos ainda estão a ser usados pelo produtor do serviço.

Consola

  1. Na Google Cloud consola, aceda à página Redes VPC.

    Aceda a redes de VPC

  2. Selecione a rede de VPC que contém as associações a eliminar.

  3. Selecione o separador Acesso a serviços privados.

  4. No separador Acesso a serviços privados, selecione o separador Ligação privada a serviços.

  5. Selecione a ligação privada a eliminar.

  6. Clique em Eliminar para eliminar.

  7. Clique novamente em Eliminar para confirmar a eliminação.

gcloud

Para eliminar a ligação de VPC Network Peering de uma ligação privada, use o comando vpc-peerings delete.

gcloud services vpc-peerings delete \
    --service=servicenetworking.googleapis.com \
    --network=VPC_NETWORK

Substitua VPC_NETWORK pelo nome da sua rede VPC.

Partilhe zonas de DNS privado com produtores de serviços

As zonas privadas do Cloud DNS são privadas para a sua rede VPC. Se quiser permitir que uma rede de produtor de serviços resolva nomes da sua zona privada, pode configurar o peering de DNS entre as duas redes.

Quando configura o peering de DNS, fornece uma rede VPC e um sufixo DNS. Se o produtor do serviço precisar de resolver um endereço com esse sufixo de DNS, o produtor do serviço encaminha essas consultas para a sua rede VPC para serem resolvidas.

Estes serviços suportados suportam o peering de DNS, com exceção do Cloud SQL.

Se quiser ativar o peering de DNS, tem de ativar a API Cloud DNS no seu projeto

Estabeleça uma relação de intercâmbio de DNS com um produtor de serviços

gcloud

Para configurar o peering de DNS entre a sua rede VPC e a rede do fornecedor de serviços, use o comando peered-dns-domains create.

gcloud services peered-dns-domains create PEERING_NAME \
    --network=VPC_NETWORK \
    --dns-suffix=DNS_SUFFIX

Substitua o seguinte:

  • PEERING_NAME: um nome para esta configuração de peering de DNS.

  • VPC_NETWORK: o nome da sua rede VPC que está ligada ao produtor de serviços através do acesso a serviços privados.

  • DNS_SUFFIX: o sufixo DNS com o qual quer estabelecer uma relação de interconexão com o serviço produtor. Tem de indicar um nome de domínio DNS completo, incluindo o ponto. Por exemplo, example.com. é um sufixo DNS válido.

Terraform

Para configurar o peering de DNS entre a sua rede VPC e a rede do fornecedor de serviços, use o recurso google_service_networking_peered_dns_domain.


## Uncomment this block after adding a valid DNS suffix

# resource "google_service_networking_peered_dns_domain" "default" {
#   name       = "example-com"
#   network    = google_compute_network.peering_network.name
#   dns_suffix = "example.com."
#   service    = "servicenetworking.googleapis.com"
# }

Liste as configurações de intercâmbio de DNS

gcloud

Use o comando peered-dns-domains list.

gcloud services peered-dns-domains list \
    --network=VPC_NETWORK

Substitua VPC_NETWORK pelo nome da sua rede VPC.

Elimine uma configuração de interligação de DNS

gcloud

Use o comando peered-dns-domains delete.

gcloud services peered-dns-domains delete PEERING_NAME \
    --network=VPC_NETWORK

Substitua o seguinte:

  • PEERING_NAME: o nome da configuração de peering de DNS.

  • VPC_NETWORK: o nome da sua rede VPC.

Resolução de problemas

Que parte da minha atribuição está a ser usada?

Quando cria uma ligação privada com um produtor de serviços, atribui-lhe um intervalo de endereços IP para usar. Se usar vários serviços de um produtor de serviços, cada serviço reserva uma parte dos endereços IP desse intervalo atribuído. Pode verificar que serviços estão a usar que endereços IP para, por exemplo, ver que serviços estão a usar grandes blocos de endereços IP e evitar o esgotamento de endereços IP.

Para ver a taxa de atribuição dos seus intervalos atribuídos, use o analisador de rede. Para mais informações, consulte o artigo Resumo da utilização do endereço IP de acesso a serviços privados.

Em alternativa, para ver que serviço está a usar um intervalo de endereços IP específico:

  1. Liste as suas ligações privadas.
  2. Encontre o nome da ligação de peering que lhe permite estabelecer ligação ao produtor de serviços relevante.
  3. Liste as rotas para a sua rede VPC.
  4. Encontre os trajetos com um próximo salto que corresponda ao nome da ligação de peering. O intervalo de destino das rotas indica os endereços IP que cada serviço está a usar.

Esgotamento do intervalo de endereços IP

Para uma determinada ligação privada, se esgotar o espaço de endereços IP atribuído, Google Cloud devolve este erro: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges.

Pode ver este erro porque o intervalo alocado não é suficiente para a sua utilização ou porque uma rota estática ou dinâmica personalizada está a impedir a utilização total do intervalo alocado. Para mais informações sobre as considerações de encaminhamento, consulte Considerações.

Pode expandir a atribuição existente ou adicionar novas. A atribuição expandida tem de ser um intervalo de endereços IP contíguo que inclua o intervalo existente. Recomendamos que expanda uma atribuição, uma vez que não existe limite para o tamanho de uma atribuição, mas existe um limite para o número de atribuições que pode criar.

Para expandir uma atribuição existente:

  1. Liste as suas ligações privadas e registe o nome do intervalo atribuído que precisa de expandir.
  2. Elimine o intervalo atribuído existente.
  3. Crie um novo intervalo atribuído com o mesmo nome do intervalo eliminado. Especifique um intervalo de endereços IP que inclua o intervalo de endereços IP eliminado. Desta forma, os recursos com peering existentes que estão a usar o intervalo atribuído antigo podem continuar a usar os mesmos endereços IP sem entrar em conflito com os recursos na sua rede VPC. Por exemplo, se o intervalo atribuído anterior era 192.168.0.0/20, crie um novo intervalo atribuído como 192.168.0.0/16.

Para adicionar intervalos atribuídos a uma ligação privada existente:

  1. Crie um novo intervalo atribuído. Este intervalo não tem de ser contíguo com os intervalos atribuídos existentes.
  2. Adicione o intervalo atribuído à ligação privada existente.

Os anfitriões no local não podem comunicar com a rede do produtor do serviço

A rede do produtor do serviço pode não ter as rotas corretas para direcionar o tráfego para a sua rede no local. Por predefinição, a rede do produtor de serviços só aprende as rotas de sub-rede da sua rede VPC. Por conseguinte, qualquer pedido que não seja de um intervalo de IPs de sub-rede é rejeitado pelo produtor do serviço.

Para configurar a conetividade entre os seus anfitriões no local e a rede do produtor do serviço, faça o seguinte:

  • Na sua rede VPC, atualize a ligação de peering para exportar rotas personalizadas para a rede do produtor do serviço. A exportação de rotas envia todas as rotas estáticas e dinâmicas elegíveis que estão na sua rede VPC, como rotas para a sua rede no local, para a rede do produtor de serviços. A rede do produtor de serviços importa-os automaticamente e, em seguida, pode enviar tráfego de volta para a sua rede no local através da rede VPC.

  • Certifique-se de que os prefixos que incluem os intervalos de IP atribuídos para o acesso a serviços privados estão a ser anunciados corretamente na sua rede no local. Para compreender como pode anunciar prefixos IPv4 personalizados através do Cloud Router, consulte Rotas anunciadas.

  • Verifique se a associação de VLAN ou o túnel da Cloud VPN termina na mesma rede da VPC (ou rede da VPC partilhada) que a ligação privada, uma vez que o intercâmbio da rede da VPC não fornece encaminhamento transitivo.

Autorizações da conta de serviço

Se vir um erro sobre a autorização compute.globalAddresses.list para um projeto ao criar uma atribuição de IP ou se tiver erros como Error 400: Precondition check failed ao criar, listar ou modificar ligações privadas, pode ser um problema com as funções de gestão de identidades e acessos (IAM) para a conta de serviço da API Service Networking. Esta conta de serviço é criada automaticamente depois de ativar a API Service Networking. O aprovisionamento da conta e a apresentação da mesma na página IAM podem demorar algum tempo.

Consola

Para garantir que a conta de serviço tem a função do IAM correta, faça o seguinte:

  1. Na Google Cloud consola, aceda à página IAM.

    Aceda ao IAM

  2. Selecione a caixa de verificação Incluir concessões de funções fornecidas pela Google.

  3. Na coluna Nome, encontre o principal Agente do serviço de rede de serviços e, de seguida, clique em Editar principal na linha correspondente.

  4. No campo Função, certifique-se de que a função Agente do serviço de rede de serviços (roles/servicenetworking.serviceAgent) está presente.

  5. Se a função Agente do serviço de rede de serviços não estiver presente, clique em Adicionar função ou Adicionar outra função.

  6. Clique em Selecionar uma função.

  7. Na caixa de texto Filtro, introduza Service Networking Service Agent.

  8. Selecione Agente do serviço de rede de serviços na lista e, de seguida, clique em Guardar.

gcloud

Para criar uma conta de serviço da API Service Networking, use o comando add-iam-policy-binding.

gcloud projects add-iam-policy-binding HOST_PROJECT_NAME \
    --member=serviceAccount:service-HOST_PROJECT_NUMBER@service-networking.iam.gserviceaccount.com \
    --role=roles/servicenetworking.serviceAgent

Substitua o seguinte:

  • HOST_PROJECT_NAME: o nome do projeto anfitrião.
  • HOST_PROJECT_NUMBER: o número do projeto de alojamento.

O encaminhamento de sub-rede de peering persiste após a atualização da atribuição de IP

Depois de atualizar o intervalo de endereços IP atribuído de uma ligação de serviços privados, a rota de sub-rede de peering antiga pode continuar a aparecer na tabela de encaminhamento da sua rede VPC. O trajeto persiste porque o intervalo de endereços IP ainda está em utilização.

Para resolver este problema, faça o seguinte:

A rota de sub-rede de peering é removida automaticamente depois de o intervalo de endereços IP deixar de estar em uso. Pode haver um atraso entre a eliminação do recurso e a eliminação total do recurso por parte do produtor do serviço. Por exemplo, se o intervalo de endereços IP antigo estiver a ser usado por uma instância do Cloud SQL, o produtor de serviços pode demorar até quatro dias a eliminar completamente a sua instância. A rota da sub-rede de peering é removida após a conclusão da eliminação.

Não é possível criar uma nova ligação privada

Se tentar criar uma nova ligação privada depois de eliminar a ligação de interligação de redes VPC associada a uma ligação privada anterior, Google Cloud pode devolver um erro. Para informações de resolução de problemas, consulte as seguintes mensagens de erro.

Para evitar este problema, siga o procedimento para eliminar uma ligação privada em vez de eliminar diretamente a ligação de intercâmbio da rede da VPC associada.

  • Erro de não é possível modificar intervalos atribuídos:

    ERROR: Cannot modify allocated ranges in CreateConnection. Please use UpdateConnection. Existing allocated IP ranges: ALLOCATED_RANGE_NAMES.

    Se receber este erro, faça o seguinte:

    1. Recrie a associação privada que eliminou e use os nomes dos intervalos atribuídos devolvidos pelo erro. Tem de usar os mesmos nomes de intervalos atribuídos quando recria a ligação, mas os intervalos de endereços IP correspondentes (blocos CIDR) podem ser iguais ou diferentes.

      Para criar a ligação privada, consulte o artigo Crie uma ligação privada.

    2. Se necessário, modifique a ligação privada para adicionar ou remover intervalos atribuídos. Pode querer usar intervalos atribuídos diferentes dos intervalos atribuídos que especificou quando recriou a ligação privada no passo anterior.

      Para modificar a ligação privada, consulte o artigo Modifique uma ligação privada.

  • Erro interno temporário:

    ERROR: (gcloud.services.vpc-peerings.connect) The operation "operations/OPERATION_ID"
    resulted in a failure "encountered some transient internal error, please try again later"

    Se receber este erro, contacte o apoio técnico do Google Cloud.