Utilizzare Apigee Connect (beta)

Questa sezione descrive l'utilizzo di Apigee Connect (beta) per la comunicazione tra la gestione ibrida e il servizio MART nel piano di runtime.

Introduzione

Apigee Connect consente al piano di gestione ibrido Apigee di connettersi in modo sicuro al servizio MART in il 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.

Servizi principali in esecuzione sul piano di runtime ibrido che mostrano Apigee Connect

Prerequisiti

Prima di configurare Apigee deve essere installata e configurata la versione ibrida di Apigee 1.2.0 o successiva Connettiti.

  • Se installi Apigee hybrid per la prima volta, segui le istruzioni di installazione in la documentazione di Apigee ibrida.
  • Se attualmente utilizzi Apigee hybrid versione 1.1.x, 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 solo a MART usando 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:

  1. Abilita l'API Apigee Connect in libreria API Google Cloud. Puoi abilitare l'API nella Console Google Cloud (Google Cloud) o con gcloud. Per istruzioni su quando si abilitano le API nella console Google Cloud, consulta Passaggio 3: abilita le API Per utilizzare gcloud al fine di abilitare l'API:
    $ gcloud config set project YOUR_GCP_PROJECT_ID
    $ gcloud services enable apigeeconnect.googleapis.com

    Dove YOUR_GCP_PROJECT_ID è lo stesso progetto Google Cloud per cui Apigee è stato abilitato ed è stato eseguito il provisioning di un'organizzazione Apigee per te.
  2. Aggiungi il ruolo Apigee Connect Agent all'account di servizio MART che hai creato nel Crea gli account di servizio nelle 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

    Dove YOUR_GCP_PROJECT_ID è lo stesso progetto della piattaforma Google Cloud per cui Apigee è stato abilitato ed è stato eseguito il provisioning di un'organizzazione Apigee, con YOUR_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 a cui è stata assegnata la seguente autorizzazione a questo elemento:
    Autorizzazione Descrizione
    apigeeconnect.endpoints.connect Questa è l'autorizzazione per configurare l'agente Apigee Connect.

    Per maggiori dettagli sull'assegnazione delle autorizzazioni di accesso tramite la console di Google Cloud o le API, consulta:

  3. Assicurati che il file della chiave dell'account di servizio MART si trovi nel file hybrid_files/service_accounts come spiegato nella sezione Creare gli account di servizio.
  4. Apri il file degli override e aggiungi le seguenti stanza. La configurazione richiede 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
  5. Individua la chiave dell'account di servizio con il ruolo Amministratore organizzazione Apigee che scaricato durante l'installazione originale di Apigee hybrid come descritto nella sezione Attiva o tramite il sincronizzatore. Questa chiave ti serve per generare un token necessario per effettuare una chiamata API spiegate di seguito.
  6. 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 del sistema al servizio chiave account che hai scaricato con il ruolo di Amministratore organizzazione Apigee.
  7. Chiama la seguente API Apigee per abilitare 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"
        } ]
      }
    }'

  8. Avvia l'agente Apigee Connect nel cluster:

    $ $APIGEECTL_HOME/apigeectl apply -f your_overrides_file.yaml -c connect-agent

  9. mart:
      hostAlias: "mart.apigee-hybrid-docs.net"
      serviceAccountPath: ./service-accounts/example-project-apigee-mart.json
      sslCertPath: ./certs/fullchain.pem
      sslKeyPath: ./certs/privkey.key
    
  10. Controlla il log dell'agente Apigee Connect. Se non vengono segnalati errori, l'upgrade è riuscito:
    $ 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
    Per assistenza sulla visualizzazione degli audit log in Apigee hybrid consulta Informazioni sugli audit log.
  11. Con questo upgrade, il piano di runtime ibrido comunica con il piano di gestione tramite Apigee Connettiti.

  12. Verifica l'installazione.

Vedi anche: Rimozione di Apigee Connect.

Verifica l'installazione

  1. Apri l'UI ibrida Apigee.
  2. Verifica che tutte le app per sviluppatori e sviluppatori che hai creato in precedenza siano presenti nell'interfaccia utente. Poiché le query su queste entità vengono sottoposte a query dal server MART, saranno presenti solo se la comunicazione tra i piani di gestione e di runtime sia configurata correttamente.
  3. 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"
  4. Nella UI ibrida, crea un prodotto API, uno sviluppatore e un'app sviluppatore. Poi, controlla la MART log di servizio per assicurarti che le voci di log confermino che le entità sono state inviate al piano di runtime. Ad esempio: la seguente voce di log indica 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
  5. Prova a creare e a eseguire il deployment di un nuovo proxy, come spiegato nella sezione Crea ed esegui il deployment di un proxy.
  6. Configura il proxy con la verifica della chiave API seguendo la procedura descritta in Proteggi un proxy API richiedendo 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 in corso...

Se elimini il deployment di Apigee Connect, lo stato del pod può rimanere nella sezione "Terminazione" stato per fino a sette minuti. Questo periodo di tempo è previsto. Gli agenti Apigee Connect attendono che di connessione scadere invece di arrestarle improvvisamente. Il ritardo garantisce che le richieste in transito non vengono persi.