Acessar APIs regionais do Google por meio de endpoints
Neste documento, explicamos como usar endpoints do Private Service Connect para se conectar a endpoints regionais de APIs do Google compatíveis.
Para mais informações sobre outras configurações do Private Service Connect, consulte Private Service Connect.
Papéis
Para receber as permissões necessárias para criar um endpoint regional do Private Service Connect, peça ao administrador para conceder a você os seguintes papéis do IAM na rede VPC:
-
Papel Administrador de rede do Compute (
roles/compute.networkAdmin
) -
Papel Administrador do DNS (
roles/dns.admin
)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Antes de começar
Install the Google Cloud CLI, then initialize it by running the following command:
$ gcloud init
Enable the Compute Engine, Network Connectivity Center, Cloud DNS, and Service Directory APIs.
Ative as APIs do Google que você quer acessar por meio dos endpoints do Private Service Connect usando a página APIs e serviços no console do Google Cloud. O Private Service Connect não ativa automaticamente nenhuma API.
Verifique se as regras de firewall de saída permitem o tráfego para o endpoint. A configuração padrão de firewall para uma rede VPC permite esse tráfego porque contém uma regra de saída de permissão implícita. Verifique se você não criou uma regra de saída de prioridade mais alta que bloqueia o tráfego.
Leia sobre as Limitações.
Criar um endpoint regional do Private Service Connect
É possível criar um endpoint regional do Private Service Connect para enviar solicitações a um endpoint regional para uma API de destino do Google.
Para uma lista de endpoints regionais compatíveis, consulte endpoints de serviço regional.
Os nomes de host de endpoints regionais têm duas formas:
- Nomes de host públicos:
SERVICE.REGION.rep.DOMAIN
Nomes de host particulares:
SERVICE.REGION.p.rep.DOMAIN
O nome do host particular adiciona um subdomínio
p
entreREGION
erep
.
Ao configurar a API de destino do Google, você especifica o formato private do
nome do host, por exemplo, spanner.me-central2.p.rep.googleapis.com
. Depois de
criar o endpoint, crie um registro DNS particular para o
endpoint usando o mesmo nome de host de endpoint regional particular.
Embora você possa configurar o endpoint do Private Service Connect
com qualquer nome, para facilitar a manutenção, recomendamos usar o nome do serviço da
API de destino do Google, para que o nome DNS corresponda ao nome do endpoint. Por
exemplo, se o endpoint tiver um destino de
spanner.me-central2.p.rep.googleapis.com
, use spanner
como o nome do endpoint.
gcloud
Use o comando
gcloud network-connectivity regional-endpoints create
.
gcloud network-connectivity regional-endpoints create ENDPOINT_NAME \ --region=REGION \ --network=NETWORK_URI \ --subnetwork=SUBNET_URI \ --target-google-api=REP_NAME
Se você quiser disponibilizar o endpoint para recursos em outras regiões,
adicione a sinalização --enable-global-access
.
Substitua:
ENDPOINT_NAME
: um nome para o endpoint.REGION
: a região em que você quer criar o endpoint.NETWORK_URI
: o URI da rede VPC do endpoint:projects/PROJECT_ID/global/networks/NETWORK_NAME
.SUBNET_URI
: o URI da sub-rede a que você quer conectar o endpoint:projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
.REP_NAME
: o nome do endpoint do serviço regional a que você quer se conectar. Por exemplo,spanner.me-central2.p.rep.googleapis.com
.
Listar endpoints
É possível listar todos os endpoints configurados.
Console
No Console do Google Cloud, acesse a página do Private Service Connect.
Clique na guia Endpoints conectados.
Todos os endpoints são exibidos, incluindo os endpoints com destinos regionais.
gcloud
Use o comando
gcloud network-connectivity regional-endpoints list
.
gcloud network-connectivity regional-endpoints list \ --region=REGION
Substitua REGION
pela região dos endpoints que você
quer listar.
Verifique se o endpoint está funcionando
Crie uma instância de máquina virtual (VM) na rede VPC e na região em que o endpoint está configurado. Execute o comando a seguir na VM para verificar se o endpoint do Private Service Connect está funcionando. Os endpoints não respondem a solicitações de ping (ICMP).
curl --connect-to SERVICE.REGION.p.rep.DOMAIN:443:ENDPOINT_IP:443 \ 'SERVICE.REGION.p.rep.DOMAIN/PATH'
Substitua:
SERVICE
: o serviço para que o endpoint está apontando. Por exemplo,spanner
oulogging
.REGION
: a região do endpoint.DOMAIN
: o domínio do serviço. Por exemplo,googleapis.com
.ENDPOINT_IP
: o endereço IP do endpoint.PATH
: o caminho para um recurso que é disponibilizado por este serviço. Por exemplo, muitos serviços oferecem um documento de descoberta com o caminho$discovery/rest?version=v1
.
O exemplo de solicitação a seguir testa se um endpoint com o endereço IP
192.168.1.100
pode solicitar o documento de descoberta da API Cloud Spanner
do endpoint regional em me-central2
.
curl --connect-to spanner.me-central2.p.rep.googleapis.com:443:192.168.1.100:443 \ 'https://spanner.me-central2.p.rep.googleapis.com/$discovery/rest?version=v1'
Criar uma entrada de DNS particular para o endpoint
Crie entradas DNS para os endpoints neste formato:
SERVICE.REGION.p.rep.DOMAIN
.
É possível usar o Cloud DNS para criar as entradas DNS.
Crie uma zona DNS particular com este formato:
REGION.p.rep.DOMAIN
.Por exemplo, se você quiser usar um endpoint regional no domínio
googleapis.com
, na regiãome-central2
, crie uma zona DNS particular com este nome:me-central2.p.rep.googleapis.com
.Crie um registro DNS que aponte para o endereço IP atribuído ao endpoint. O nome do host precisa corresponder ao nome do serviço,
SERVICE
. Por exemplo,spanner
oulogging
são nomes de serviços.
Por exemplo, se o endpoint estiver configurado com o destino spanner.me-central2.p.rep.googleapis.com
, crie uma zona DNS particular chamada me-central2.p.rep.googleapis.com
e um registro A chamado spanner
que aponta para o endereço IP do endpoint. O nome de domínio totalmente qualificado do endpoint é
spanner.me-central2.p.rep.googleapis.com
.
Configurar clientes para usar o nome do endpoint particular
Configure os clientes para usar os nomes DNS particulares em vez dos nomes DNS públicos. Consulte a documentação do seu cliente ou da biblioteca de cliente para mais informações sobre como configurá-lo para usar endpoints personalizados. Por exemplo:
Python: é possível configurar
api_endpoint
em Opções de cliente.Go: é possível configurar
WithEndpoint
em ClientOptions..NET: é possível configurar
Endpoint
na classe de builder do cliente.gcloud: é possível configurar
api_endpoint_overrides
na gcloud CLI.
Receber informações detalhadas sobre um endpoint
É possível ver todos os detalhes de configuração de um endpoint.
gcloud
Use o comando
gcloud network-connectivity regional-endpoints describe
.
gcloud network-connectivity regional-endpoints describe \ ENDPOINT_NAME --region=REGION
Substitua:
ENDPOINT_NAME
: o nome do endpoint.REGION
: a região do endpoint.
Excluir um endpoint
É possível excluir um endpoint.
gcloud
Use o comando
gcloud network-connectivity regional-endpoints delete
.
gcloud network-connectivity regional-endpoints delete \ ENDPOINT_NAME --region=REGION
Substitua:
ENDPOINT_NAME
: o nome do endpoint.REGION
: a região do endpoint.
Acessar endpoints de redes híbridas
Os clientes em redes conectadas ao Google Cloud com anexos da VLAN para túneis do Cloud Interconnect ou do Cloud VPN podem alcançar endpoints do Private Service Connect.O anexo da VLAN ou o túnel do Cloud VPN precisa terminar na mesma rede VPC (ou rede VPC compartilhada) como endpoint. Os clientes em redes VPC com peering não podem alcançar os endpoints.
O tráfego de cliente de anexos da VLAN ou túneis do Cloud VPN pode alcançar endpoints em outra região se o acesso global estiver configurado.
O Dataplane v1 e o Dataplane v2 têm suporte para os anexos da VLAN. Para mais informações sobre as versões do Dataplane, consulte Dataplane v2.
É preciso configurar os sistemas na outra rede para que eles possam fazer consultas nas suas zonas DNS particulares.
Se você tiver implementado as zonas de DNS particular usando o Cloud DNS, conclua estas etapas:
Crie uma política de servidor de entrada na rede VPC a que a outra rede se conecta.
Identifique os pontos de entrada do encaminhador de entrada na região em que o anexo da VLAN ou o túnel do Cloud VPN está localizado, na rede VPC a que sua outra rede se conecta.
Configure sistemas e servidores de nomes DNS na outra rede para encaminhar os Nomes DNS para o endpoint a um ponto de entrada do encaminhador de entrada na mesma região do anexo da VLAN ou do túnel do Cloud VPN que se conecta à rede VPC.