Criar um anexo de endpoint
Para configurar a conectividade particular dos Integration Connectors, é preciso criar um anexo PSC (Private Service Connect). No entanto, para usar o anexo PSC, você também precisa criar um anexo de endpoint, já que não é possível usar o anexo PSC diretamente. Pense no anexo de endpoint como uma interface para o anexo de serviço PSC. Depois de criado, é possível usar os detalhes do anexo de endpoint ao configurar um conector para conectividade particular. Nesta página, explicamos como criar um anexo de endpoint e consideramos que você esteja familiarizado com os seguintes conceitos:
- Nuvem privada virtual (VPC) do Google Cloud
- Private Service Connect
- Cloud DNS
- Conectores de integração
Você pode criar o anexo de endpoint como um endereço IP ou como um nome do host.
Criar um anexo de endpoint como endereço IP
Para criar um anexo de endpoint como um endereço IP, use o console do Cloud ou a linha de comando (gcloud).Console
Para criar um anexo de endpoint no console do Cloud, faça o seguinte:
- Abra a página Anexos de endpoint do Integration Connectors.
- Clique em Criar. A página Criar anexo de endpoint é aberta.
- Insira valores nos seguintes campos:
- Nome: um nome para o anexo de endpoint. É necessário usar um exclusivo. Não pode haver outros anexos de endpoint com o mesmo nome e não é possível alterar o nome depois. O nome precisa começar com uma letra minúscula seguida por até 63 letras minúsculas, números ou hifens, mas não pode terminar com um hífen. O comprimento mínimo é 2.
- ID do anexo de serviço: nome do anexo de serviço PSC que você já criou.
- (Opcional) Descrição: insira uma descrição para o anexo de endpoint.
- (Opcional) Rótulos: digite os rótulos de recursos como pares de chave-valor. Para mais informações sobre rótulos, consulte O que são rótulos?
- Clique em Criar.
A coluna Endereço IP especifica o endereço IP do anexo de endpoint. Use esse endereço IP ao configurar um conector para conectividade particular.
gcloud
Para criar um anexo de endpoint na linha de comando, faça o seguinte:
- Consiga o recurso do anexo de serviço do PSC:
gcloud compute service-attachments list
O comando retorna a lista de anexos de serviço. Exemplo:
NAME REGION TARGET_SERVICE CONNECTION_PREFERENCE demo-sa us-west1 k8s2-tcp-tgysilgj-apps-ingressgateway-fzdhwstg ACCEPT_AUTOMATIC
Você vai precisar dessas informações do anexo de serviço nas próximas etapas.
- Receba um token de autenticação antes de executar a API CreateEndpointAttachment:
TOKEN="$(gcloud auth print-access-token)"
- Crie o anexo de endpoint usando a API CreateEndpointAttachment. Exemplo:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "projects/PROJECT_ID/locations/LOCATION/endpointAttachments/ENDPOINT_ATTACHMENT_NAME", "serviceAttachment": "projects/demo/serviceAttachments/?SERVICE_ATTACHMENT_NAME" }' \ https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpointAttachments?endpointAttachmentId=ENDPOINT_ATTACHMENT_NAME
Em que:
- LOCATION é a região do anexo de serviço. Por exemplo,
us-west1
. - PROJECT_ID é o projeto do Google Cloud em que você criou o anexo de serviço do PSC.
- ENDPOINT_ATTACHMENT_NAME é o nome do anexo de endpoint. É necessário usar um exclusivo. Não pode haver outros anexos de endpoint com o mesmo nome nem o nome pode ser alterado posteriormente. O nome precisa começar com uma letra minúscula seguida por até 31 letras minúsculas, números ou hífens, mas não pode terminar com um hífen. O comprimento mínimo é 2.
- SERVICE_ATTACHMENT_NAME: é o nome do anexo de serviço. Use o nome da conta de serviço
do PSC retornado pelo comando
gcloud compute service-attachments list
executado anteriormente.
Depois que você chama a API, os Integration Connectors iniciam uma operação de longa duração e pode levar algum tempo para concluir a operação. O anexo de endpoint será criado após a conclusão da operação.
- LOCATION é a região do anexo de serviço. Por exemplo,
- Receba o ID do projeto do diretório de serviços associado ao seu projeto do Google Cloud e adicione esse ID à lista de permissões no anexo de serviço.
- Verifique se o anexo de endpoint foi criado usando a API GetEndpointAttachment.
Exemplo:
curl -X GET -H "Authorization: Bearer $TOKEN" \ https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/endpointAttachments/ENDPOINT_ATTACHMENT_NAME
A API retorna uma resposta semelhante a esta:
{ "name": "projects/demo-project/locations/us-central1/endpointAttachments/demo-ea", "createTime": "2023-04-17T04:34:59.569527046Z", "updateTime": "2023-04-17T04:37:25.189074195Z", "description": "demo endpoint attachment", "serviceAttachment": "projects/demo-project/regions/us-central1/serviceAttachments/demo-sa", "endpointIp": "10.0.0.0", "labels": {"team":"sre"}, }
O endereço IP do anexo de endpoint está disponível no campo
endpointIp
. Neste exemplo de resposta, o endereço IP é10.0.0.0
. Use esse endereço IP ao configurar um conector para conectividade particular.
Se a criação do anexo de endpoint for bem-sucedida, o anexo recém-criado será listado na página Anexos do endpoint, semelhante à imagem a seguir:
As etapas descritas até agora mostram como criar um anexo de endpoint como endereço IP. No entanto, também é possível criar um anexo de endpoint como nome do host e usá-lo para configurar um conector para conectividade particular. Para entender como criar um anexo de endpoint com um nome do host, consulte Criar um anexo de endpoint como um nome de host.
Criar um anexo de endpoint como nome do host
Para criar um anexo de endpoint como nome do host, execute as seguintes tarefas:
- Crie um anexo de endpoint como endereço IP. Para mais informações, consulte Criar um anexo de endpoint como endereço IP.
- Criar uma zona gerenciada privada do Cloud DNS em qualquer um dos seus projetos do Google Cloud.
Nessa zona de DNS, é preciso adicionar o nome do host que você quer usar para a configuração do conector e mapear o nome do host para o endereço IP do anexo de endpoint que você recebeu na etapa 1. Para informações sobre como criar uma zona gerenciada privada do Cloud DNS, consulte Criar uma zona particular e Adicionar um registro.
- Crie uma zona gerenciada do Integration Connectors no projeto do Google Cloud que você usa para os Integration Connectors. A zona gerenciada dos Integration Connectors (zona de peering) se comunica com a zona gerenciada privada do Cloud DNS (criada na etapa 2) para resolução de nomes.
Antes de criar uma zona gerenciada, você precisa conceder os seguintes papéis e permissões:
- Conceda a permissão
connectors.managedZones.create
ao usuário que está criando a zona gerenciada do Integration Connectors.A permissão
connectors.managedZones.create
está disponível no papel do IAMroles/connectors.admin
ouroles/connectors.managedZonesAdmin
. Para mais informações sobre os vários papéis do IAM e as permissões correspondentes disponíveis para o Integration Connectors, consulte Papéis e permissões do IAM para o Integration Connectors. - Conceda o papel
role/dns.peer
à conta de serviçoservice-PROJECT_NUMBER@gcp-sa-connectors.iam.gserviceaccount.com
dos Integration Connectors.Se o projeto do Google Cloud no Cloud DNS for diferente do projeto dos Integration Connectors, conceda o papel
roles/dns.peer
à conta de serviço dos Integration Connectors no projeto do Google Cloud no Cloud DNS. Por exemplo, imagine que você quer criar a zona gerenciada do Integration Connectors no projeto 12345 do Google Cloud e o Cloud DNS está no projeto 67890 do Google Cloud. Nesse caso, é necessário conceder o papelroles/dns.peer
à conta de serviçoservice-12345@gcp-sa-connectors.iam.gserviceaccount.com
no projeto 67890 do Google Cloud.
Para criar uma zona gerenciada do Integration Connectors, use o console do Cloud ou a linha de comando (gcloud).
Console
Para criar uma zona gerenciada do Integration Connectors no console do Cloud, faça o seguinte:
- Acesse a página "Zonas gerenciadas" para o Integration Connectors.
- Insira valores nos seguintes campos:
- Nome: um nome para a zona gerenciada.
- Nome do DNS de destino: nome do Cloud DNS para o qual você está criando a zona gerenciada (peering).
- Projeto de destino: nome do projeto do Google Cloud que tem a zona privada do Cloud DNS.
- Rede de destino: nome da rede VPC em que a zona privada do Cloud DNS é mantida.
- (Opcional) Descrição: insira uma descrição para o anexo de endpoint.
- (Opcional) Rótulos: digite os rótulos de recursos como pares de chave-valor. Para mais informações sobre rótulos, consulte O que são rótulos?
- Clique em Criar.
gcloud
Para criar uma zona gerenciada do Integration Connectors na linha de comando, faça o seguinte:
- Receba um token de autenticação antes de executar a API CreateManagedZone:
TOKEN="$(gcloud auth print-access-token)"
- Crie a zona gerenciada usando a API CreateManagedZone. Exemplo:
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "description": "DESCRIPTION", "dns": "DNS_NAME", "target_project": "TARGET_PROJECT", "target_vpc": "TARGET_VPC" }' \ https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/managedZones?managedZoneId=MANAGED_ZONE_NAME
Em que:
- DESCRIPTION é uma descrição opcional para a zona gerenciada.
- DNS_NAME é o nome do Cloud DNS para o qual você está criando a zona gerenciada (peering).
- TARGET_PROJECT é o nome do projeto do Google Cloud que tem a zona privada do Cloud DNS.
- TARGET_NETWORK é o nome da rede VPC em que a zona privada do Cloud DNS é mantida.
- PROJECT_ID é o projeto do Google Cloud que você está usando para os Integration Connectors.
- MANAGED_ZONE_NAME é o nome da zona gerenciada. É necessário usar um exclusivo. Não é possível haver outras zonas gerenciadas com o mesmo nome e não é possível alterá-lo posteriormente. O nome precisa começar com uma letra minúscula seguida por até 63 letras minúsculas, números ou hifens, mas não pode terminar com um hífen. O comprimento mínimo é 2.
Depois que você chama a API, os Integration Connectors iniciam uma operação de longa duração que pode levar algum tempo para ser concluída. A zona gerenciada será criada após a conclusão da operação.
- Verifique se a zona gerenciada foi criada usando a API GetManagedZone.
Exemplo:
curl -X GET -H "Authorization: Bearer $TOKEN" \ https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/managedZones/MANAGED_ZONE_NAME
A API retorna uma resposta semelhante a esta:
{ "name": "projects/demo-project/locations/global/managedZones/demo-mz", "createTime": "2023-04-17T04:34:59.569527046Z", "updateTime": "2023-04-17T04:37:25.189074195Z", "description": "demo managed zone", "dns": "api.private.service.com.", "targetVpc": "target-project-vpc", "targetProject": "target-project" }
- Conceda a permissão
Se a criação da zona gerenciada for bem-sucedida, a zona gerenciada recém-criada será listada na página Zonas gerenciadas semelhante à imagem a seguir:
Verificar a configuração do anexo de endpoint
É possível verificar a conectividade do endpoint criando uma conexão com seu sistema de back-end. Ao
criar a conexão, na seção Destinations
, selecione Destination type
como Hostname
e insira o endereço IP ou o nome do host do endpoint apropriado. Se a conexão for criada com sucesso, o status
da conexão recém-criada será Active
na página "Conexões"
no Console do Cloud.