Esta secção descreve a utilização do Apigee Connect (beta) para a comunicação entre o plano de gestão híbrido e o serviço MART no plano de tempo de execução.
Introdução
O Apigee Connect permite que o plano de gestão híbrido do Apigee se ligue de forma segura ao serviço MART no plano de tempo de execução sem que tenha de expor o ponto final MART na Internet. Se usar o Apigee Connect, não precisa de configurar o gateway de entrada MART com um alias de anfitrião e um certificado DNS autorizado.
Pré-requisitos
A versão 1.2.0 ou mais recente do Apigee Hybrid tem de estar instalada e configurada antes de configurar o Apigee Connect.
- Se estiver a instalar o Apigee Hybrid pela primeira vez, siga as instruções de instalação na documentação do Apigee Hybrid.
- Se estiver a usar atualmente a versão 1.1.x do Apigee hybrid, tem de atualizar a instalação para a versão 1.2.0 antes de continuar. Para ver os passos de atualização, consulte o artigo Atualizar o Apigee Hybrid
Adicione o Apigee Connect ao tempo de execução híbrido
Esta secção pressupõe que instalou ou atualizou para o Apigee Hybrid 1.2.0 ou mais recente e o configurou
Quando o Apigee Connect está configurado e ativado, a entrada do MART é ignorada: o plano de gestão liga-se apenas ao MART através do Apigee Connect. Todo o tráfego MART entre o plano de tempo de execução híbrido passa através da ligação segura do Apigee Connect.
Siga estes passos para ativar e usar o Apigee Connect com o Apigee hybrid:
- Ative a API Apigee Connect na
biblioteca de APIs Google Cloud. Pode ativar a API na
consola do Google Cloud (GCP) ou com
gcloud
. Para obter instruções sobre como ativar APIs na Google Cloud Console, consulte o Passo 3: ative as APIs. Para usar ogcloud
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 da GCP para o qual o Apigee foi ativado e uma organização do Apigee foi aprovisionada para si. - Adicione a função Agente do Apigee Connect à conta de serviço MART que criou
no passo
Criar contas de serviço nas instruções de instalação do Apigee hybrid:
$ gcloud projects add-iam-policy-binding YOUR_GCP_PROJECT_ID --member serviceAccount:YOUR_MART_SERVICE_ACCOUNT_EMAIL --role roles/apigeeconnect.Agent
OndeYOUR_GCP_PROJECT_ID
é o mesmo projeto do GCP para o qual o Apigee foi ativado e uma organização do Apigee foi aprovisionada para si, eYOUR_MART_SERVICE_ACCOUNT_EMAIL
é o nome da conta de serviço MART. O nome está no formato de um endereço de email. Por exemplo:apigee-mart@my-project.iam.gserviceaccount.com
.
A função Agente do Apigee Connect está predefinida e tem a seguinte autorização atribuída:
Autorização Descrição apigeeconnect.endpoints.connect
Esta é a autorização para configurar o agente do Apigee Connect. Para ver detalhes sobre a atribuição de autorizações de acesso através da consola do GCP ou das APIs, consulte:
- Certifique-se de que o ficheiro de chave da conta de serviço do MART está no diretório
hybrid_files/service_accounts
, conforme explicado em Crie contas de serviço. - Abra o ficheiro de substituições e adicione as seguintes secções. A configuração requer que faculte o caminho para a chave da conta de serviço transferida. A chave tem de ser para uma conta de serviço com a função Agente do Apigee Connect .
# Apigee Connect Agent connectAgent: enabled: true serviceAccountPath: ./service-accounts/connect_agent_sa_key.json
Adicione a stanza abaixo do cabeçalho 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 Administrador da organização do Apigee que transferiu quando instalou originalmente o Apigee hybrid, conforme descrito na secção Ativar acesso do sincronizador. Precisa desta chave para gerar um token necessário para fazer uma chamada à API, conforme explicado abaixo.
- Execute estes dois comandos para obter um token:
$ export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file $ export TOKEN=$(gcloud auth application-default print-access-token)
Onde org-admin-service-account-file é o caminho no seu sistema para a chave da conta de serviço que transferiu com a função Administrador da organização do Apigee. - Chame a seguinte API Apigee para ativar o Apigee Connect para a 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 agente do Apigee Connect no cluster:
$ $APIGEECTL_HOME/apigeectl apply -f your_overrides_file.yaml -c connect-agent
- Verifique o registo do agente do Apigee Connect. Se não forem comunicados erros, a atualização foi bem-sucedida:
$ kubectl logs -n namespace apigee-connect-agent-pod-name
O agente do Apigee Connect comunica as seguintes categorias de registos:
Categoria de registos 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 esta atualização, o plano de tempo de execução híbrido comunica com o plano de gestão através do Apigee Connect.
Veja também: Remover o Apigee Connect.
Teste a instalação
- Abra a IU do Apigee Hybrid.
- Verifique se os programadores e as apps de programador que criou anteriormente estão presentes na IU. Uma vez que estas entidades são consultadas a partir do servidor MART, só estão presentes se a comunicação entre os planos de gestão e de tempo de execução estiver configurada corretamente.
- Para se certificar de que os pedidos estão a passar pelo Apigee Connect e não pela entrada do MART, verifique o registo do servidor do MART. Deve ver entradas para o agente do Apigee Connect denominado
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 programador e uma app de programador. Em seguida, verifique o registo do serviço MART para se certificar de que as entradas de registo confirmam que as entidades foram enviadas para o plano de tempo de execução. Por exemplo,
a seguinte entrada do registo mostra que o produto 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
- Experimente criar e implementar um novo proxy, conforme explicado em Crie e implemente um proxy.
- Configure o proxy com a validação da chave da API seguindo os passos em Proteja um proxy de API exigindo chaves da API. O tempo de execução obtém os dados necessários para validar uma chave da API a partir do plano de gestão através do Apigee Connect. Por conseguinte, se a validação da chave da API funcionar, sabe que o Apigee Connect está a funcionar corretamente. Também pode verificar os registos do Apigee Connect para ver um relatório das transferências de dados.
Remover o Apigee Connect
Se eliminar a implementação do Apigee Connect, o estado do pod pode permanecer no estado "A terminar" durante até sete minutos. Este período é o esperado. Os agentes do Apigee Connect aguardam que as ligações existentes expirem em vez de as interromperem subitamente. O atraso garante que os pedidos em curso não são perdidos.