Nesta seção, você verá como usar o Apigee Connect (Beta) para comunicação entre o plano de gerenciamento híbrido e o serviço MART no plano do ambiente de execução.
Introdução
O Apigee Connect permite que o plano de gerenciamento híbrido da Apigee se conecte com segurança ao serviço MART no plano do ambiente de execução sem exigir que você exponha o endpoint MART na Internet. Se você usa o Apigee Connect, não precisa configurar o gateway de entrada MART com um alias de host e um certificado de DNS autorizado.
Pré-requisitos
O híbrido da Apigee versão 1.2.0 ou mais recente precisa ser instalado e configurado antes de configurar o Apigee Connect.
- Se você estiver instalando o híbrido da Apigee pela primeira vez, siga as instruções de instalação na Documentação do híbrido da Apigee.
- Se você estiver usando o híbrido da Apigee versão 1.1.x, será preciso fazer upgrade da instalação para a versão 1.2.0 antes de continuar. Para ver os passos de upgrade, consulte Como fazer upgrade do híbrido da Apigee.
Adicionar o Apigee Connect ao ambiente de execução híbrido
Esta seção pressupõe que você tenha instalado ou atualizado e configurado para o híbrido da Apigee 1.2.0 ou posterior mais recente da Apigee
Quando o Apigee Connect é configurado e ativado, a entrada MART é ignorada: o plano de gerenciamento só se conecta ao MART usando o Apigee Connect. Todo o tráfego MART entre o plano de ambiente de execução híbrido passa pela conexão segura do Apigee Connect.
Siga estas etapas para ativar e usar o Apigee Connect com o híbrido da Apigee:
- Ative a API Apigee Connect na
biblioteca de APIs do Google Cloud. Ative a API no
Console do Google Cloud (GCP) ou com
gcloud
. Para instruções sobre como ativar APIs no console do Google Cloud, consulte a Etapa 3: ativar APIs. Para usargcloud
para ativar a API:
$ gcloud config set project YOUR_GCP_PROJECT_ID $ gcloud services enable apigeeconnect.googleapis.com
em queYOUR_GCP_PROJECT_ID
é o mesmo projeto do GCP para que a Apigee foi ativada e uma organização da Apigee foi provisionada para você. - Adicione o papel Apigee Connect Agent à conta de serviço MART que você criou
na etapa
Criar contas de serviço das instruções de instalação do híbrido da Apigee:
$ gcloud projects add-iam-policy-binding YOUR_GCP_PROJECT_ID --member serviceAccount:YOUR_MART_SERVICE_ACCOUNT_EMAIL --role roles/apigeeconnect.Agent
Em queYOUR_GCP_PROJECT_ID
é o mesmo projeto do GCP em que a Apigee foi ativada e uma organização da Apigee foi provisionada para você eYOUR_MART_SERVICE_ACCOUNT_EMAIL
é o nome da conta de serviço do MART. O nome está no formato de um endereço de e-mail. Por exemplo,apigee-mart@my-project.iam.gserviceaccount.com
.
O papel Apigee Connect Agent é predefinido e tem a seguinte permissão atribuída a ele:
Permissão Descrição apigeeconnect.endpoints.connect
Essa é a permissão para configurar o Apigee Connect Agent. Para detalhes sobre como atribuir permissões de acesso por meio do Console do GCP ou de APIs, consulte:
- Verifique se o arquivo de chave da conta de serviço do MART está no diretório
hybrid_files/service_accounts
, conforme explicado em Criar contas de serviço. - Abra o arquivo de modificações e adicione os seguintes trechos. A configuração exige que você forneça
o caminho para a chave da conta de serviço transferida por download. A chave precisa ser de uma conta de serviço com o papel
Apigee Connect Agent .
# Apigee Connect Agent connectAgent: enabled: true serviceAccountPath: ./service-accounts/connect_agent_sa_key.json
Adicione o trecho no título k8sCluster, por exemplo:
k8sCluster: name: your_cluster_name region: your_cluster_region # Apigee Connect Agent connectAgent: enabled: true serviceAccountPath: ./service-accounts/connect_agent_sa_key.json
# Apigee Connect Agent connectAgent: enabled: true replicaCountMin: 3 serviceAccountPath: ./service-accounts/connect_agent_sa_key.json
- Localize a chave da conta de serviço com a função de Administrador da organização da Apigee que você recebeu por download quando instalou o híbrido da Apigee, conforme descrito na seção Ativar acesso de sincronia. Você precisa dessa chave para gerar um token necessário para fazer uma chamada de API, conforme explicado abaixo.
- Execute estes dois comandos para receber um token:
$ export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file $ export TOKEN=$(gcloud auth application-default print-access-token)
Em que org-admin-service-account-file é o caminho no sistema para a chave da conta de serviço que você fez o download com o papel Administrador da organização da Apigee. - Chame a seguinte API Apigee para ativar o Apigee Connect para sua organização:
curl -v -X PUT \ https://apigee.googleapis.com/v1/organizations/your_org_name \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ -d '{ "name" : "your_org_name", "properties" : { "property" : [ { "name" : "features.hybrid.enabled", "value" : "true" }, { "name" : "features.mart.connect.enabled", "value" : "true" } ] } }'
- Inicie o Apigee Connect Agent no cluster:
$ $APIGEECTL_HOME/apigeectl apply -f your_overrides_file.yaml -c connect-agent
- Verifique o registro do Apigee Connect Agent. Se não houver erros relatados, o upgrade será bem-sucedido:
$ kubectl logs -n namespace apigee-connect-agent-pod-name
O Apigee Connect Agent informa as seguintes categorias de registro:
Categoria de registros de auditoria Operações DATA_READ ConnectionService.ListConnections
DATA_WRITE Tether.Egress
- Teste a instalação.
mart: hostAlias: "mart.apigee-hybrid-docs.net" serviceAccountPath: ./service-accounts/example-project-apigee-mart.json sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.key
Com esse upgrade, o plano do ambiente de execução híbrido se comunica com o plano de gerenciamento por meio do Apigee Connect.
Consulte também: Como remover o Apigee Connect.
Teste a instalação
- Abra a IU do híbrido da Apigee.
- Verifique se todos os desenvolvedores e aplicativos para desenvolvedores criados anteriormente estão presentes na IU. Como essas entidades são consultadas pelo servidor MART, elas estarão presentes somente se a comunicação entre os planos de gerenciamento e do ambiente de execução estiver configurada corretamente.
- Para garantir que as solicitações passem pelo Apigee Connect e não pela entrada MART, verifique o
registro do servidor MART. Você verá as entradas do agente do Apigee Connect chamado
apigee-connect-agent-1.0
:
$ kubectl logs -n apigee apigee-mart-orgname-rc101-q72tl -c apigee-mart | grep connect
Por exemplo:
"2019-12-11 04:59:52,321 org: env: target: action: context-id: mode: pool-1-thread-1 INFO MART_AUDITLOG - MartAuditListener.eventOccurred() : Type:Audit edge-gaambo-controlplane@system.gserviceaccount.com 1576040392317 /v1/organizations/apigee-connect-hybrid-prod/developers/ count=100&expand=true&startKey=4ee9e8f7-12b2-4cde-bf10-32d991469876 200 GET apigee-connect-hybrid-prod 10.40.11.3 10.40.0.5 apigee-connect-agent-1.0 null"
- Na IU híbrida, crie um produto de API, um desenvolvedor e um app de desenvolvedor. Em seguida, verifique o registro
de serviço MART para confirmar se as entradas de registro confirmam que as entidades foram enviadas para o plano do ambiente de execução. Por exemplo,
a seguinte entrada de registro mostra que o produto de API chamado
foo-product
foi recebido:
$ kubectl logs -n apigee apigee-mart-orgname-rc101-q72tl -c apigee-mart
2019-12-16 22:15:29,572 org: env: target: action: context-id: mode: pool-1-thread-1 INFO MART_AUDITLOG - MartAuditListener.eventOccurred() : Type:Audit edge-gaambo-controlplane@system.gserviceaccount.com 1576534529566 /v1/organizations/myorg/apiproducts/foo-product/ -NA- 201 CREATE myorg 10.16.1.61 10.16.1.64 apigee-connect-agent-1.0 null 2019-12-16 22:15:30,412 org: env: target: action: context-id: mode: pool-1-thread-1 INFO MART_AUDITLOG - MartAuditListener.eventOccurred() : Type:Audit edge-gaambo-controlplane@system.gserviceaccount.com 1576534530407 /v1/organizations/myorg/apps/ apiProduct=foo-product&expand=false 200 GET myorg 10.16.1.61 10.16.1.64 apigee-connect-agent-1.0 null
- Tente criar e implantar um novo proxy, conforme explicado em Criar e implantar um proxy.
- Configure seu proxy com a verificação de chave de API seguindo as etapas em Proteger um proxy de API exigindo chaves de API. O ambiente de execução recebe os dados necessários para validar uma chave de API do plano de gerenciamento por meio do Apigee Connect. Portanto, se a verificação de chave de API funcionar, você saberá que o Apigee Connect está funcionando corretamente. Também é possível verificar os registros do Apigee Connect para ver um relatório das transferências de dados.
Como remover o Apigee Connect
Se você excluir a implantação do Apigee Connect, o status do pod poderá permanecer no estado "Terminando" por até sete minutos. Esse tempo é esperado. Os agentes do Apigee Connect aguardam que as conexões atuais expirem, em vez de interrompê-las repentinamente. O atraso garante que solicitações em andamento não sejam perdidas.