Apigee Connect (Beta) verwenden

In diesem Abschnitt wird die Verwendung von Apigee Connect (Beta) für die Kommunikation zwischen der hybriden Verwaltungsebene und dem MART-Dienst auf Laufzeitebene beschrieben.

Einführung

Apigee Connect ermöglicht es der hybriden Verwaltungsebene von Apigee, eine sichere Verbindung zum MART-Dienst auf Laufzeitebene herzustellen, ohne dass Sie den MART-Endpunkt im Internet freigeben müssen. Wenn Sie Apigee Connect verwenden, müssen Sie das MART-Ingress-Gateway nicht mit einem Host-Alias und einem autorisierten DNS-Zertifikat konfigurieren.

Primäre Dienste, die auf der Hybridlaufzeitumgebung mit Apigee Connect ausgeführt werden

Vorbereitung

Apigee Hybrid Version 1.2.0 oder höher muss installiert und konfiguriert sein, bevor Sie Apigee Connect einrichten.

  • Wenn Sie Apigee Hybrid zum ersten Mal installieren, folgen Sie der Installationsanleitung in der Apigee-Dokumentation.
  • Wenn Sie zurzeit die Apigee-Hybridversion 1.1.x von Apigee verwenden, müssen Sie zuerst Ihre Installation auf Version 1.2.0 aktualisieren, bevor Sie fortfahren. Informationen zu den Upgradeschritten finden Sie unter Upgrade von Apigee Hybrid ausführen.

Apigee Connect zur Hybridlaufzeit hinzufügen

In diesem Abschnitt wird davon ausgegangen, dass Sie Apigee hybrid 1.2.0 oder höher installiert bzw. aktualisiert und konfiguriert haben.

Wenn Apigee Connect konfiguriert und aktiviert ist, wird der eingehende MART-Traffic ignoriert: die Verwaltungsebene verbindet sich nur über Apigee Connect mit MART. Der gesamte MART-Traffic zwischen der Hybridlaufzeitebene durchläuft die sichere Apigee Connect-Verbindung.

Führen Sie die folgenden Schritte aus, um Apigee Connect mit Apigee Hybrid zu aktivieren und zu verwenden:

  1. Aktivieren Sie die Apigee Connect API in der Google Cloud API-Bibliothek. Sie können die API in der Google Cloud (GCP) Console oder mit gcloud aktivieren. Informationen zum Aktivieren von APIs in der Google Cloud Console finden Sie unter Schritt 3: APIs aktivieren. So aktivieren Sie die API mit gcloud:
    $ gcloud config set project YOUR_GCP_PROJECT_ID
    $ gcloud services enable apigeeconnect.googleapis.com

    Dabei ist YOUR_GCP_PROJECT_ID dasselbe GCP-Projekt, für das Apigee aktiviert und eine Apigee-Organisation bereitgestellt wurde.
  2. Fügen Sie die Rolle des Apigee Connect-Agents zu dem MART-Dienstkonto hinzu, das Sie im Schritt Dienstkonten erstellen gemäß der Apigee Hybrid-Installationsanleitung erstellt haben:
    $ gcloud projects add-iam-policy-binding YOUR_GCP_PROJECT_ID
    --member serviceAccount:YOUR_MART_SERVICE_ACCOUNT_EMAIL --role roles/apigeeconnect.Agent

    Dabei ist YOUR_GCP_PROJECT_ID dasselbe GCP-Projekt, für das Apigee aktiviert und eine Apigee-Organisation bereitgestellt wurde, und YOUR_MART_SERVICE_ACCOUNT_EMAIL ist der Name des MART-Dienstkontos. Der Name hat das Format einer E-Mail-Adresse. Beispiel: apigee-mart@my-project.iam.gserviceaccount.com.

    Die Rolle Apigee Connect-Agent ist vordefiniert und hat die folgende Berechtigung:
    Berechtigung Beschreibung
    apigeeconnect.endpoints.connect Dies ist die Berechtigung zum Einrichten des Apigee Connect-Agents.

    Weitere Informationen zum Zuweisen von Zugriffsberechtigungen über die GCP Console oder APIs finden Sie unter:

  3. Achten Sie darauf, dass sich die Schlüsseldatei des MART-Dienstkontos im Verzeichnis hybrid_files/service_accounts befindet, wie unter Dienstkonten erstellen beschrieben.
  4. Öffnen Sie die Überschreibungsdatei und fügen Sie die folgenden Stanzas hinzu. Für die Konfiguration müssen Sie den Pfad zum heruntergeladenen Dienstkontoschlüssel angeben. Der Schlüssel muss für ein Dienstkonto mit der Rolle Apigee Connect Agent sein.
    # Apigee Connect Agent
    connectAgent:
      enabled: true
      serviceAccountPath: ./service-accounts/connect_agent_sa_key.json

    Fügen Sie die Stanza unter der Überschrift k8sCluster hinzu. Beispiel:
    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. Suchen Sie den Dienstkontoschlüssel mit der Rolle Apigee-Organisationsadministrator, die Sie bei der ursprünglichen Installation von Apigee hybrid verwendet haben, wie im Abschnitt Synchronisierungszugriff aktivieren beschrieben. Sie benötigen diesen Schlüssel, um ein Token zu generieren, das für einen API-Aufruf erforderlich ist, wie unten erläutert.
  6. Führen Sie die folgenden beiden Befehle aus, um ein Token abzurufen:
    $ export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    $ export TOKEN=$(gcloud auth application-default print-access-token)

    Dabei ist org-admin-service-account-file der Pfad in Ihrem System zum Dienstkontoschlüssel, den Sie mit der Rolle Apigee Organization Admin heruntergeladen haben.
  7. Rufen Sie die folgende Apigee API auf, um Apigee Connect für Ihre Organisation zu aktivieren:
    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. Starten Sie den Apigee Connect-Agent im 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. Prüfen Sie das Log des Apigee Connect-Agents. Wenn keine Fehler gemeldet wurden, ist das Upgrade erfolgreich:
    $ kubectl logs -n namespace apigee-connect-agent-pod-name

    Der Apigee Connect-Agent meldet die folgenden Logkategorien:
    Audit-Logkategorie Operations
    DATA_READ ConnectionService.ListConnections
    DATA_WRITE Tether.Egress
    Informationen zum Anzeigen von Audit-Logs in Apigee Hybrid finden Sie unter Audit-Logging-Informationen.
  11. Mit diesem Upgrade kommuniziert die hybride Laufzeitebene mit Apigee Connect mit der Verwaltungsebene.

  12. Installation testen

Siehe auch: Apigee Connect entfernen.

Installation testen

  1. Öffnen Sie die Hybrid-Benutzeroberfläche von Apigee.
  2. Prüfen Sie, ob alle zuvor erstellten Entwickler und Entwickler-Apps auf der Benutzeroberfläche vorhanden sind. Da diese Entitäten vom MART-Server abgefragt werden, sind sie nur vorhanden, wenn die Kommunikation zwischen den Verwaltungs- und Laufzeitebenen korrekt konfiguriert ist.
  3. Um sicherzustellen, dass Anfragen über Apigee Connect und nicht über den MART-Eingang geleitet werden, prüfen Sie das Log des MART-Servers. Sie sollten Einträge für den Apigee Connect-Agent mit dem Namen apigee-connect-agent-1.0 sehen:
    $ kubectl logs -n apigee apigee-mart-orgname-rc101-q72tl -c apigee-mart | grep connect

    Beispiel:
    "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. Erstellen Sie in der Hybrid-UI ein API-Produkt, einen Entwickler und eine Entwickler-App. Prüfen Sie dann im MART-Dienstlog, ob die Einträge an die Laufzeitebene gesendet wurden. Der folgende Logeintrag zeigt beispielsweise, dass das API-Produkt foo-product empfangen wurde:
    $ 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. Versuchen Sie, einen neuen Proxy zu erstellen und bereitzustellen, wie unter Proxy erstellen und bereitstellen beschrieben.
  6. Konfigurieren Sie Ihren Proxy mit der API-Schlüsselprüfung. Folgen Sie dazu den Schritten unter API-Proxy durch Anforderung von API-Schlüsseln schützen. Die Laufzeit erhält die Daten, die zum Prüfen eines API-Schlüssels von der Verwaltungsebene über Apigee Connect erforderlich sind. Wenn die API-Schlüsselüberprüfung funktioniert, wissen Sie also, dass Apigee Connect ordnungsgemäß funktioniert. Sie können auch die Apigee Connect-Logs aufrufen, um einen Bericht der Datenübertragungen zu sehen.

Apigee Connect entfernen

Wenn Sie die Apigee Connect-Bereitstellung löschen, kann der Pod bis zu sieben Minuten im Status "Wird beendet" bleiben. Diese Zeitspanne wird erwartet. Apigee Connect-Agents warten, bis die vorhandenen Verbindungen ablaufen, anstatt sie plötzlich zu stoppen. Durch die Verzögerung wird gewährleistet, dass Inflight-Anfragen nicht verloren gehen.