Questa sezione descrive l'utilizzo di Apigee Connect (beta) per la comunicazione tra il piano di gestione ibrida e il servizio MART nel piano di runtime.
Introduzione
Apigee Connect consente al piano di gestione di Apigee Hybrid di connettersi in modo sicuro al servizio MART nel piano di runtime senza che tu debba esporre l'endpoint MART su internet. Se utilizzi Apigee Connect, non è necessario configurare il gateway MART in entrata con un alias host e un certificato DNS autorizzato.
Prerequisiti
Prima di configurare Apigee Connect, devi installare e configurare Apigee hybrid versione 1.2.0 o successiva.
- Se installi Apigee hybrid per la prima volta, segui le istruzioni di installazione in la documentazione di Apigee ibrida.
- Se al momento utilizzi la versione 1.1.x di Apigee Hybrid, devi eseguire l'upgrade della tua installazione alla versione 1.2.0 prima di continuare. Per la procedura di upgrade, vedi Upgrade di Apigee hybrid
Aggiungi Apigee Connect al runtime ibrido
In questa sezione si presuppone che tu abbia installato o eseguito l'upgrade a e configurato Apigee hybrid 1.2.0 o versioni successive
Quando Apigee Connect è configurato e abilitato, il traffico MART in entrata viene ignorato: il piano di gestione si connette a MART solo tramite Apigee Connect. Viene superato tutto il traffico MART tra il piano di runtime ibrido attraverso la connessione sicura Apigee Connect.
Segui questi passaggi per abilitare e utilizzare Apigee Connect con Apigee hybrid:
- Attiva l'API Apigee Connect nella
libreria API di Google Cloud. Puoi abilitare l'API nella
Console Google Cloud (Google Cloud) o con
gcloud
. Per istruzioni su come attivare le API nella console Google Cloud, consulta Passaggio 3: attiva le API. Per utilizzaregcloud
per attivare l'API:
$ gcloud config set project YOUR_GCP_PROJECT_ID $ gcloud services enable apigeeconnect.googleapis.com
doveYOUR_GCP_PROJECT_ID
è lo stesso progetto Google Cloud per cui è stato attivato Apigee ed è stato eseguito il provisioning di un'organizzazione Apigee. - Aggiungi il ruolo Agente Apigee Connect all'account di servizio MART che hai creato nel passaggio
Crea gli account di servizio delle istruzioni di installazione ibrida di Apigee:
$ gcloud projects add-iam-policy-binding YOUR_GCP_PROJECT_ID --member serviceAccount:YOUR_MART_SERVICE_ACCOUNT_EMAIL --role roles/apigeeconnect.Agent
DoveYOUR_GCP_PROJECT_ID
è lo stesso progetto della piattaforma Google Cloud per cui Apigee è stato abilitato ed è stato eseguito il provisioning di un'organizzazione Apigee, conYOUR_MART_SERVICE_ACCOUNT_EMAIL
il nome dell'account di servizio MART. Il nome è sotto forma di indirizzo email. Ad esempio:apigee-mart@my-project.iam.gserviceaccount.com
.
Il ruolo Apigee Connect Agent è predefinito e ha assegnata la seguente autorizzazione:
Autorizzazione Descrizione apigeeconnect.endpoints.connect
Questa è l'autorizzazione per configurare l'agente Apigee Connect. Per informazioni dettagliate sull'assegnazione delle autorizzazioni di accesso tramite la console di Google Cloud o le API, consulta:
- Assicurati che il file della chiave dell'account di servizio MART si trovi nella directory
hybrid_files/service_accounts
, come spiegato in Creare account di servizio. - Apri il file delle sostituzioni e aggiungi le seguenti stanze. La configurazione richiede di fornire il percorso della chiave dell'account di servizio scaricata. La chiave deve essere riferita a un account di servizio con
Ruolo di Agente Apigee Connect .
# Apigee Connect Agent connectAgent: enabled: true serviceAccountPath: ./service-accounts/connect_agent_sa_key.json
Aggiungi la stanza sotto l'intestazione k8sCluster, ad esempio:
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
- Individua la chiave dell'account di servizio con il ruolo Amministratore dell'organizzazione Apigee che hai scaricato quando hai installato inizialmente Apigee Hybrid, come descritto nella sezione Attivare l'accesso al sincronizzatore. Questa chiave ti serve per generare un token necessario per effettuare una chiamata API spiegate di seguito.
- Esegui questi due comandi per ottenere un token:
$ export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file $ export TOKEN=$(gcloud auth application-default print-access-token)
Dove org-admin-service-account-file è il percorso sul tuo sistema della chiave dell'account di servizio che hai scaricato con il ruolo Amministratore dell'organizzazione Apigee. - Chiama la seguente API Apigee per attivare Apigee Connect per la tua organizzazione:
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" } ] } }'
- Avvia l'agente Apigee Connect nel cluster:
$ $APIGEECTL_HOME/apigeectl apply -f your_overrides_file.yaml -c connect-agent
- Controlla il log dell'agente Apigee Connect. Se non vengono segnalati errori, l'upgrade è andato a buon fine:
$ kubectl logs -n namespace apigee-connect-agent-pod-name
L'agente Apigee Connect segnala le seguenti categorie di log:
Categoria di audit log Operazioni DATA_READ ConnectionService.ListConnections
DATA_WRITE Tether.Egress
- Esegui il test dell'installazione.
mart: hostAlias: "mart.apigee-hybrid-docs.net" serviceAccountPath: ./service-accounts/example-project-apigee-mart.json sslCertPath: ./certs/fullchain.pem sslKeyPath: ./certs/privkey.key
Con questo upgrade, il piano di runtime ibrido comunica con il piano di gestione tramite Apigee Connettiti.
Vedi anche Rimuovere Apigee Connect.
Verifica l'installazione
- Apri l'UI ibrida Apigee.
- Verifica che tutte le app per sviluppatori e sviluppatori che hai creato in precedenza siano presenti nell'interfaccia utente. Poiché queste entità vengono interrogate dal server MART, saranno presenti solo se la comunicazione tra i piani di gestione e di runtime sia configurata correttamente.
- Per assicurarti che le richieste passano attraverso Apigee Connect e non attraverso il traffico in entrata MART, controlla
Registro del server MART. Dovresti vedere le voci per l'agente Apigee Connect denominate
apigee-connect-agent-1.0
:
$ kubectl logs -n apigee apigee-mart-orgname-rc101-q72tl -c apigee-mart | grep connect
Ad esempio:
"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"
- Nell'interfaccia utente ibrida, crea un prodotto API, uno sviluppatore e un'app per sviluppatori. Quindi, controlla il log del servizio MART
per assicurarti che le voci del log confermino che le entità sono state inviate al piano di runtime. Ad esempio,
la seguente voce di log mostra che è stato ricevuto il prodotto API denominato
foo-product
:
$ 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
- Prova a creare e implementare un nuovo proxy, come spiegato in Creare e implementare un proxy.
- Configura il proxy con la verifica della chiave API seguendo i passaggi descritti in Proteggi un proxy API richiedendo le chiavi API. Il runtime ottiene i dati necessari per convalidare un chiave API dal piano di gestione tramite Apigee Connect; pertanto, se la verifica della chiave API funziona, sai che Apigee Connect funziona correttamente. Puoi anche controllare i log di Apigee Connect per visualizzare un report sui trasferimenti di dati.
Rimozione di Apigee Connect
Se elimini il deployment di Apigee Connect, lo stato del pod può rimanere nello stato "Terminating" (Terminazione) per un massimo di sette minuti. Questo tempo di attesa è previsto. Gli agenti Apigee Connect aspettano che le connessioni esistenti scadano anziché interromperle improvvisamente. Il ritardo garantisce che le richieste in corso non vengano perse.