Utilizzo di Apigee Connect (beta)

Questa sezione descrive l'utilizzo di Apigee Connect (beta) per la comunicazione tra il piano di gestione ibrido 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 richiedere l'esposizione dell'endpoint MART su internet. Se utilizzi Apigee Connect, non è necessario configurare il gateway in entrata MART con un alias host e un certificato DNS autorizzato.

Servizi principali eseguiti sul piano di runtime ibrido che mostrano Apigee Connect

Prerequisiti

Apigee hybrid versione 1.2.0 o successive deve essere installato e configurato prima di configurare Apigee Connect.

  • Se stai installando Apigee hybrid per la prima volta, segui le istruzioni di installazione riportate nella documentazione di Apigee hybrid.
  • Se attualmente utilizzi Apigee Hybrid versione 1.1.x, devi eseguire l'upgrade dell'installazione alla versione 1.2.0 prima di continuare. Per i passaggi di upgrade, vedi Upgrade di Apigee hybrid.

Aggiungi Apigee Connect al runtime ibrido

Questa sezione presuppone che tu abbia installato o eseguito l'upgrade ad Apigee hybrid 1.2.0 o versioni successive e che tu l'abbia configurato.

Quando Apigee Connect è configurato e abilitato, l'ingresso MART viene ignorato: il management plane si connette a MART solo utilizzando Apigee Connect. Tutto il traffico MART tra il piano di runtime ibrido passa attraverso la connessione sicura Apigee Connect.

Segui questi passaggi per attivare e utilizzare Apigee Connect con Apigee hybrid:

  1. Attiva l'API Apigee Connect nella libreria API di Google Cloud. Puoi abilitare l'API nella console Google Cloud (GCP) o con gcloud. Per istruzioni su come abilitare le API nella console Google Cloud, vedi Passaggio 3: abilita le API. Per utilizzare gcloud per 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 GCP per cui è stato attivato Apigee ed è stata eseguita la configurazione di un'organizzazione Apigee.
  2. Aggiungi il ruolo Agente Apigee Connect all'account di servizio MART che hai creato nel passaggio Crea service account delle istruzioni di installazione di Apigee Hybrid:
    $ 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 Google Cloud per cui è stato attivato Apigee ed è stata eseguita la configurazione di un'organizzazione Apigee e YOUR_MART_SERVICE_ACCOUNT_EMAIL è il nome del account di servizio MART. Il nome è nel formato di un indirizzo email. Ad esempio: apigee-mart@my-project.iam.gserviceaccount.com.

    Il ruolo Apigee Connect Agent è predefinito e dispone della seguente autorizzazione assegnata:
    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 GCP o le API, vedi:

  3. Assicurati che il file della chiave del account di servizio MART si trovi nella directory hybrid_files/service_accounts, come spiegato in Creare service account.
  4. Apri il file di override e aggiungi le seguenti sezioni. La configurazione richiede di fornire il percorso della chiave del account di servizio scaricata. La chiave deve essere per un account di servizio con il ruolo Agente di connessione Apigee .
    # 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 del account di servizio con il ruolo Amministratore organizzazione Apigee che hai scaricato durante l'installazione iniziale di Apigee hybrid, come descritto nella sezione Attivare l'accesso del sincronizzatore. Hai bisogno di questa chiave per generare un token necessario per effettuare una chiamata API come spiegato 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 nel tuo sistema della chiave dell'account di servizio che hai scaricato con il ruolo Amministratore dell'organizzazione Apigee.
  7. 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"
        } ]
      }
    }'

  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 è 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
    Per assistenza sulla visualizzazione dei log di controllo in Apigee Hybrid, vedi Informazioni sui log di controllo.
  11. Con questo upgrade, il piano di runtime ibrido comunica con il piano di gestione tramite Apigee Connect.

  12. Testa l'installazione.

Vedi anche: Rimozione di Apigee Connect.

Verifica l'installazione

  1. Apri la UI Apigee hybrid.
  2. Verifica che gli sviluppatori e le app per 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 è configurata correttamente.
  3. Per assicurarti che le richieste passino tramite Apigee Connect e non tramite l'ingresso MART, controlla il log del server MART. Dovresti visualizzare le voci per l'agente Apigee Connect denominato 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. Nell'interfaccia utente ibrida, crea un prodotto API, uno sviluppatore e un'app per sviluppatori. Poi, controlla il log del servizio MART 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 mostra che è stato ricevuto il prodotto API chiamato 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 implementare un nuovo proxy, come spiegato in Creare e implementare un proxy.
  6. Configura il proxy con la verifica della chiave API seguendo i passaggi descritti in Proteggere un proxy API richiedendo le chiavi API. Il runtime ottiene i dati necessari per convalidare una chiave API dal management plane 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 dei trasferimenti di dati.

Rimozione di Apigee Connect

Se elimini il deployment di Apigee Connect, lo stato del pod può rimanere in stato "Terminating" (Terminazione) per un massimo di sette minuti. Questo periodo di tempo è previsto. Gli agenti Apigee Connect attendono la scadenza delle connessioni esistenti anziché interromperle improvvisamente. Il ritardo garantisce che le richieste in corso non vengano perse.