Schritt 8: Zugriff auf die Steuerungsebene aktivieren

Damit die Laufzeitebene und die Steuerungsebene kommunizieren können, müssen Sie mit der updateControlPlaneAccess API die erforderlichen Berechtigungen für den Synchronizer und den Zugriff auf den Analytics-Publisher aktivieren.

Autorisierungstoken abrufen

Für die später in diesem Thema beschriebenen Apigee API-Aufrufe benötigen Sie ein Autorisierungstoken mit der Rolle "Administrator der Apigee-Organisation".

  1. Wenn Sie nicht der Inhaber des Google Cloud-Projekts sind, das mit Ihrer Apigee Hybrid-Organisation verknüpft ist, prüfen Sie, ob Ihr Google Cloud-Nutzerkonto die Rolle roles/apigee.admin (Administrator der Apigee-Organisation) hat. Sie können die Ihnen zugewiesenen Rollen mit diesem Befehl prüfen:
    gcloud projects get-iam-policy ${PROJECT_ID}  \
      --flatten="bindings[].members" \
      --format='table(bindings.role)' \
      --filter="bindings.members:your_account_email"
    

    Beispiel:

    gcloud projects get-iam-policy my-project  \
      --flatten="bindings[].members" \
      --format='table(bindings.role)' \
      --filter="bindings.members:myusername@example.com"

    Die Ausgabe sollte roles/apigee.admin beinhalten.

  2. Wenn Sie nicht über roles/apigee.admin verfügen, fügen Sie Ihrem Nutzerkonto die Rolle Apigee Administrator der Organisation hinzu. Verwenden Sie den folgenden Befehl, um Ihrem Nutzerkonto die Rolle hinzuzufügen:
    gcloud projects add-iam-policy-binding ${PROJECT_ID} \
      --member user:your_account_email \
      --role roles/apigee.admin

    Beispiel:

    gcloud projects add-iam-policy-binding my-project \
      --member user:myusername@example.com \
      --role roles/apigee.admin
  3. Rufen Sie in der Befehlszeile die Anmeldedaten der gcloud-Authentifizierung mit dem folgenden Befehl ab:

    Linux / MacOS

    export TOKEN=$(gcloud auth print-access-token)

    Um zu prüfen, ob Ihr Token ausgefüllt wurde, verwenden Sie echo wie im folgenden Beispiel:

    echo $TOKEN

    Das Token sollte als codierter String angezeigt werden.

    Windows

    for /f "tokens=*" %a in ('gcloud auth print-access-token') do set TOKEN=%a

    Um zu prüfen, ob Ihr Token ausgefüllt wurde, verwenden Sie echo wie im folgenden Beispiel:

    echo %TOKEN%

    Das Token sollte als codierter String angezeigt werden.

Synchronizer-Zugriff aktivieren

So aktivieren Sie den Synchronizer-Zugriff:

  1. Rufen Sie die E-Mail-Adresse des Dienstkontos ab, auf das Sie Synchronizer-Zugriff gewähren. In Produktionsumgebungen sollte der Wert apigee-synchronizer sein. In Nicht-Produktionsumgebungen sollte der Wert apigee-non-prod sein. Verwenden Sie den folgenden Befehl:

    Produktion

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-synchronizer"

    Nicht-Produktion

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-non-prod"
  2. Rufen Sie die updateControlPlaneAccess API mit dem folgenden Befehl auf, um die erforderlichen Berechtigungen für den Synchronizer zu aktivieren:

    Kein Datenstandort

    curl -X PATCH -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess?update_mask=synchronizer_identities" \
      -d "{\"synchronizer_identities\": [\"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com\"]}"
    

    Wobei:

    • ${ORG_NAME}: der Name Ihrer Hybrid Organisation.
    • apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com: die E-Mail-Adresse des Dienstkontos.

    Datenstandort

    curl -X PATCH -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess?update_mask=synchronizer_identities" \
      -d "{\"synchronizer_identities\": [\"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com\"]}"
    

    Wobei:

    • CONTROL_PLANE_LOCATION: Der Speicherort für die Daten der Steuerungsebene, wenn in Ihrer Hybridinstallation der Datenstandort verwendet werden. Dies ist der Speicherort, an dem wichtige Kundeninhalte wie Proxy-Bundles gespeichert werden. Eine Liste finden Sie unter Verfügbare Regionen der Apigee API-Steuerungsebene.
    • ${ORG_NAME}: der Name Ihrer Hybridorganisation.
    • apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com: die E-Mail-Adresse des Dienstkontos.
  3. Prüfen Sie, ob das Dienstkonto eingerichtet wurde. Rufen Sie mit dem folgenden Befehl die API auf, um eine Liste der Dienstkonten abzurufen:

    Kein Datenstandort

    curl -X GET -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess"
        

    Datenstandort

    curl -X GET -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess"
        

    Die Ausgabe sollte in etwa so aussehen:

    {
      "synchronizerIdentities": [
        "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com"
      ]
    }

Zugriff auf den Analytics-Publisher aktivieren

Mehrere Apigee Hybrid-Laufzeitkomponenten veröffentlichen Analytics- und Debugging-Datensätze, um Informationen für Berichte und das Debugging bereitzustellen. Damit diese Daten veröffentlicht werden können, müssen Sie den Dienstkonten, auf denen diese Apigee-Komponenten ausgeführt werden, zusätzliche Berechtigungen gewähren, damit sie Daten direkt in der Steuerungsebene veröffentlichen können.

So aktivieren Sie den Zugriff auf den Analytics-Publisher:

  1. Rufen Sie die E-Mail-Adresse der Dienstkonten ab, auf die Sie Zugriff auf den Analytics-Publisher gewähren. In Produktionsumgebungen sollten die Werte apigee-runtime, apigee-mart und apigee-mint-task-scheduler sein (wenn Sie die Monetarisierung für Apigee Hybrid aktivieren). In Nicht-Produktionsumgebungen sollte der Wert apigee-non-prod sein.

    Produktion

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-runtime OR apigee-mart OR apigee-mint-task-scheduler"

    Nicht-Produktion

    gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-non-prod"
  2. Legen Sie mit dem folgenden Befehl Berechtigungen für die Dienstkonten für die Laufzeit-, MART- und Mint-Aufgabenplaner-Komponenten fest (wenn Sie die Monetarisierung für Apigee Hybrid in Version v1.15.1 und höher aktivieren), damit Daten in der Steuerungsebene veröffentlicht werden können:

    Kein Datenstandort

    Rufen Sie die updateControlPlaneAccess API auf, um Berechtigungen für die Laufzeit- und MART-Dienstkonten zu aktivieren:

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
      -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
    

    Wenn Sie die Monetarisierung für Apigee Hybrid aktivieren, legen Sie die Berechtigungen für das Dienstkonto des Mint-Aufgabenplaners fest:

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
      -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\"]}"
    

    Dabei sind die folgenden Werte die E-Mail-Adressen der Dienstkonten:

    • apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
    • apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
    • apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com

    Datenstandort

    Rufen Sie die updateControlPlaneAccess API auf, um Berechtigungen für die Laufzeit- und MART-Dienstkonten zu aktivieren:

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type:application/json" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
      -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
    

    Wenn Sie die Monetarisierung für Apigee Hybrid aktivieren, legen Sie die Berechtigungen für das Dienstkonto des Mint-Aufgabenplaners fest:

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type:application/json" \
      "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \
      -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\"]}"
    

    Wobei:

    • CONTROL_PLANE_LOCATION ist der Speicherort für die Daten der Steuerungsebene, wenn in Ihrer Hybridinstallation der Datenstandort verwendet werden. Dies ist der Speicherort, an dem wichtige Kundeninhalte wie Proxy-Bundles gespeichert werden. Eine Liste finden Sie unter Verfügbare Regionen der Apigee API-Steuerungsebene.
    • Die folgenden Werte sind die E-Mail-Adressen der Dienstkonten:

      • apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
      • apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
      • apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com

    Die Antwort sollte in etwa so aussehen:

    {
      "name": "organizations/YOUR_ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "UPDATE",
        "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess",
        "state": "IN_PROGRESS"
      }
    }
    
  3. Prüfen Sie den Status des Vorgangs anhand der ID im Feld name der Aktualisierungsantwort:

    Kein Datenstandort

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
      -H "Content-Type:application/json"  \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$OPERATION_ID"

    Datenstandort

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
      -H "Content-Type:application/json"  \
      "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$OPERATION_ID"

    Die Antwort sollte in etwa so aussehen:

    {
      "name": "organizations/YOUR_ORG_NAME/operations/$OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata",
        "operationType": "UPDATE",
        "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess",
        "state": "FINISHED"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.apigee.v1.ControlPlaneAccess",
        "name": "organizations/YOUR_ORG_NAME/controlPlaneAccess"
      }
    }
    
  4. Prüfen Sie die ControlPlaneAccess-Konfiguration der Organisation:

    Kein Datenstandort

    curl "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)"

    Datenstandort

    curl "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)"

    Die Antwort sollte in etwa so aussehen:

    {
      "synchronizerIdentities": [
        "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com"
      ],
      "analyticsPublisherIdentities": [
        "serviceAccount:apigee-mart@YOUR_ORG_NAME.iam.gserviceaccount.com",
        "serviceAccount:apigee-mint-task-scheduler@YOUR_ORG_NAME.iam.gserviceaccount.com",
        "serviceAccount:apigee-runtime@YOUR_ORG_NAME.iam.gserviceaccount.com"
      ]
    }
    

Sie haben jetzt Ihre Apigee Hybrid-Laufzeit- und -Verwaltungsebenen für die Kommunikation aktiviert. Installieren Sie als Nächstes cert-manager, damit Apigee Hybrid Zertifikate interpretieren und verwalten kann.

Nächster Schritt

1 2 3 4 5 6 7 8 (WEITER) Schritt 9: cert-manager installieren 10 11