Damit die Laufzeit- und die Steuerungsebene miteinander kommunizieren können, müssen Sie die erforderlichen Berechtigungen für den Zugriff von Synchronizer und Analytics-Publishern mit der updateControlPlaneAccess API 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".
- 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. - Wenn Sie keine
roles/apigee.admin
haben, fügen Sie Ihrem Nutzerkonto die Rolle Apigee-Organisationsadministrator 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
-
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:
- Rufen Sie die E-Mail-Adresse des Dienstkontos ab, auf das Sie Synchronizer-Zugriff gewähren.
Für Nicht-Produktionsumgebungen (wie in dieser Anleitung vorgeschlagen) sollte der Wert
apigee-non-prod
sein. In Produktionsumgebungen sollte der Wertapigee-synchronizer
sein. Verwenden Sie den folgenden Befehl:gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-synchronizer"
- Rufen Sie die updateControlPlaneAccess API mit dem folgenden Befehl auf, um die erforderlichen Berechtigungen für 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 Hybridorganisation.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. Das 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.
- 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" ] }
Analytics-Zugriff für Publisher aktivieren
Mehrere Apigee Hybrid-Laufzeitkomponenten veröffentlichen Analyse- und Debug-Einträge, um Informationen für die Berichterstellung 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 zum Veröffentlichen von Daten direkt in der Kontrollebene erteilen.
So aktivieren Sie den Zugriff für Analytics-Publisher:
- Legen Sie mit dem folgenden Befehl Berechtigungen für das Laufzeitdienstkonto fest, damit es Daten an die Steuerungsebene veröffentlichen kann:
Kein Datenstandort
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-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
Datenstandort
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-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" } }
- Prüfen Sie den Status des Vorgangs mit dem Parameter „name“ aus 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/8316aa78-c137-4733-92ec-cc0d2d92fd29"
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/8316aa78-c137-4733-92ec-cc0d2d92fd29"
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": "FINISHED" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.apigee.v1.ControlPlaneAccess", "name": "organizations/YOUR_ORG_NAME/controlPlaneAccess" } }
- 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-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.