Ein Dienstkonto ist eine spezielle Art von Konto in Google Cloud, mit dem Komponenten und Anwendungen eines Systems miteinander und mit anderen APIs interagieren können. Weitere Informationen zu Google Cloud finden Sie unter Informationen zu Google Cloud-Diensten.
Apigee Hybrid verwendet Google Cloud-Dienstkonten, um eine Vielzahl von Aufgaben auszuführen, darunter:
- Log- und Messwertdaten senden
- Trace-Anfragen abrufen
- Verbindung zum API-Gateway für administrative API-Anfragen herstellen
- Sicherungen ausführen
- Proxy-Bundles herunterladen
Während ein Dienstkonto alle diese Vorgänge ausführen könnte, wird empfohlen, dass Sie mehrere Dienstkonten erstellen, die jeweils einer bestimmten Aufgabe zugewiesen sind und jedes Dienstkonto über eigene Berechtigungen verfügt. Dies verbessert die Sicherheit, da der Zugriff und die Berechtigungen für einzelne Dienstkonten entsprechend eingeschränkt werden. Wie bei Nutzerkonten werden diese Berechtigungen angewendet, indem dem Dienstkonto eine oder mehrere Rollen zugewiesen werden.
Dienstkonten und Rollen, die von Hybridkomponenten verwendet werden
Für einen ordnungsgemäßen Betrieb von Apigee müssen Sie mehrere Dienstkonten erstellen. Jedes Dienstkonto erfordert eine bestimmte Rolle oder Rollen, die es ihm ermöglichen, seine Funktion auszuführen.
In der folgenden Tabelle werden die Dienstkonten für die Hybridkomponenten beschrieben: Die Namen für jedes Dienstkonto sind die Standardnamen. Sie können beliebige Namen verwenden, aber die Namen sollten mit dem Zweck jedes Kontos leicht identifiziert werden können.
Komponente* | Rolle | Erforderlich für die einfache Installation? | Beschreibung |
---|---|---|---|
apigee-cassandra |
Storage-Objekt-Administratorroles/storage.objectAdmin |
Ermöglicht Cassandra-Sicherungen in Cloud Storage (CS), wie unter Sicherung und Wiederherstellung beschrieben. | |
apigee-logger |
Log-Autorroles/logging.logWriter |
Ermöglicht die Erfassung von Logging-Daten, wie in Logging beschrieben. Nur für Nicht-GKE-Clusterinstallationen erforderlich. | |
apigee-mart |
Apigee Connect Agentroles/apigeeconnect.Agent |
Ermöglicht die Authentifizierung des MART-Dienstes. Die Rolle "Apigee Connect-Agent" erlaubt ihm die sichere Kommunikation mit dem Apigee Connect-Prozess, wie unter Apigee Connect verwenden beschrieben. | |
apigee-metrics |
Monitoring-Messwert-Autorroles/monitoring.metricWriter |
Erlaubt die Erfassung von Messwertdaten, wie in der Übersicht zur Messwerterfassung beschrieben. | |
apigee-runtime |
Keine Rolle erforderlich | Ermöglicht der Apigee Hybrid-Laufzeit die Verbindung zu Google-Diensten und benutzerdefinierten Diensten in Google Cloud, darunter Google-Authentifizierung, Google Cloud Trace und Jaeger. | |
apigee-synchronizer |
Apigee Synchronizer Managerroles/apigee.synchronizerManager |
Ermöglicht dem Syncer, Proxy-Bundles und Konfigurationsdaten der Umgebung herunterzuladen. Außerdem wird der Vorgang der Trace-Funktion aktiviert. | |
apigee-udca |
Apigee Analytics-Agentroles/apigee.analyticsAgent |
Ermöglicht die Übertragung von Trace-, Analyse- und Bereitstellungsstatusdaten auf die Verwaltungsebene. | |
apigee-watcher |
Apigee-Laufzeit-Agentroles/apigee.runtimeAgent |
Apigee Watcher ruft virtuelle Hosts für Änderungen an virtuellen Hosts aus dem Synchronizer ab und nimmt die erforderlichen Änderungen zur Konfiguration des Istio-Ingress vor. | |
* Dieser Name wird im Dateinamen des heruntergeladenen Dienstkontoschlüssels verwendet. |
Alternativ können Sie für Nicht-Produktions-, Test- und Demoumgebungen ein einziges Dienstkonto verwenden, dem alle Rollen zugewiesen sind. Dies wird für Produktionsumgebungen nicht empfohlen.
Komponente* | Rolle | Erforderlich für die einfache Installation? | Beschreibung |
---|---|---|---|
apigee-non-prod |
Apigee Analytics-Agent, Apigee Connect-Agent, Apigee-Organisationsadministrator, Apigee Laufzeit Agent, Apigee Synchronizer Manager, Cloud Trace Agent, Log-Autor, Monitoring-Messwert-Autor, Storage-Objekt-Administrator | Oder alle erforderlichen SAs oben | Einzelnes Dienstkonto für Demo- oder Testumgebungen. Weitere Informationen finden Sie unter Installieren, Teil 2, Schritt 5: Dienstkonten erstellen. |
Neben dem Erstellen der in dieser Tabelle aufgeführten Dienstkonten verwenden Sie die privaten Schlüssel jedes Kontos, um Zugriffstokens zu generieren, sodass Sie auf die Apigee APIs zugreifen können. Das create-service-account
-Tool lädt die Schlüsseldateien beim Erstellen oder Aktualisieren der Dienstkonten automatisch in ein Verzeichnis auf Ihrem lokalen Computer herunter.
Dienstkonten erstellen
Es gibt mehrere Möglichkeiten, Dienstkonten zu erstellen, zum Beispiel:
- (Empfohlenes)
create-service-account
-Tool - Google Cloud Console
- gcloud SDK
Diese werden in den folgenden Abschnitten beschrieben.
create-service-account
-Tool verwenden
Das create-service-account
-Tool ist verfügbar, nachdem Sie die Apigee Hybrid-Helm-Diagramme oder apigeectl
heruntergeladen und erweitert haben.
Sie finden das create-service-account
-Tool im folgenden Verzeichnis:
- Für Helm-Diagramminstallationen:
APIGEE_HELM_CHARTS_HOME/ └── apigee-operator/ └── etc/ └── tools/ └── create-service-account
- Für
apigeectl
-Installationen:APIGEECTL_HOME/ └── tools/ └── create-service-account
create-service-account
arbeitet mit hybriden komponenten-spezifischen Dienstkonten und weist die erforderlichen Rollen für Sie zu. Das Tool lädt auch die Dienstkontoschlüssel automatisch herunter und speichert sie auf Ihrem lokalen Computer.
Mit dem folgenden Befehl werden beispielsweise alle separaten Dienstkonten für eine Produktionsumgebung erstellt, jedem Dienstkonto die entsprechenden IAM-Rollen zugewiesen und die private Schlüsseldatei jedes Kontos in das Verzeichnis ./service-accounts
heruntergeladen:
./tools/create-service-account --env prod
Der folgende Befehl erstellt ein einzelnes Dienstkonto mit dem Namen apigee-non-prod
mit allen IAM-Rollen für alle Hybridkomponenten, die für Demo- und Testumgebungen geeignet sind, aber nicht für Produktionsumgebungen:
./tools/create-service-account --env non-prod
Weitere Informationen zur Verwendung von create-service-account
finden Sie unter Referenz zum Erstellen eines Dienstkontos.
Google Cloud Console verwenden
Sie können Dienstkonten mit der Google Cloud Console erstellen.
So erstellen Sie ein Dienstkonto mit der Google Cloud Console und generieren einen Schlüssel für das Dienstkonto:
-
Erstellen Sie ein Dienstkonto:
-
Rufen Sie in der Cloud Console die Seite Dienstkonten auf.
- Wählen Sie Ihr Projekt aus.
- Klicken Sie auf Dienstkonto erstellen.
-
Geben Sie im Feld Dienstkontoname einen Namen ein. Die Cloud Console füllt das Feld Dienstkonto-ID anhand dieses Namens aus.
Apigee empfiehlt, dass Sie einen Namen verwenden, der die Rolle des Dienstkontos widerspiegelt. Sie können für das Dienstkonto den gleichen Namen festlegen wie für die Komponente, die es verwendet. Legen Sie beispielsweise den Namen des Dienstkontos „Log-Autor” auf
apigee-logger
fest.Weitere Informationen zu den Namen und Rollen von Dienstkonten finden Sie unter Von Hybridkomponenten verwendete Dienstkonten und Rollen.
- Optional: Im Feld Beschreibung des Dienstkontos können Sie eine entsprechende Beschreibung eingeben. Beschreibungen helfen Ihnen, sich genau daran zu erinnern, wofür ein bestimmtes Dienstkonto verwendet wird.
- Klicken Sie auf Erstellen und fortfahren.
-
Klicken Sie auf das Feld Rolle auswählen und wählen eine Rolle aus, wie unter Von Hybridkomponenten verwendete Dienstkonten und Rollen beschrieben. Wenn die Apigee-Rollen nicht in der Drop-down-Liste enthalten sind, aktualisieren Sie die Seite.
Wählen Sie beispielsweise für die Logging-Komponente die Rolle „Log-Autor” aus.
Geben Sie ggf. Text ein, um die Liste der Rollen nach Namen zu filtern. Wenn Sie beispielsweise nur die Apigee-Rollen auflisten möchten, geben Sie
Apigee
in das Filterfeld ein.Sie können einem Dienstkonto mehrere Rollen hinzufügen, aber Apigee empfiehlt, für jedes empfohlene Dienstkonto nur eine Rolle zu verwenden. Die Rollen eines Dienstkontos können Sie nach dem Erstellen in der Cloud Console auf der Seite IAM ändern.
- Klicken Sie auf Weiter.
In Google Cloud wird die Ansicht Nutzern Zugriff auf dieses Dienstkonto erteilen angezeigt:
- Klicken Sie unter Schlüssel erstellen (optional) auf Schlüssel erstellen.
In Google Cloud haben Sie die Möglichkeit, einen JSON- oder P12-Schlüssel herunterzuladen:
- Wählen Sie JSON (Standardeinstellung) aus und klicken Sie auf Erstellen.
Google Cloud speichert die Schlüsseldatei im JSON-Format auf Ihrem lokalen Computer und zeigt eine Bestätigung an, wenn der Vorgang erfolgreich war, wie im folgenden Beispiel gezeigt:
Später werden Sie einige der Dienstkontoschlüssel zum Konfigurieren von hybriden Laufzeitdiensten verwenden. Wenn Sie zum Beispiel die Hybridlaufzeit konfigurieren, geben Sie den Speicherort der Dienstkontoschlüssel mithilfe der Attribute SERVICE_NAME
.serviceAccountPath
ein.Diese Schlüssel werden von den Dienstkonten zum Abrufen von Zugriffstokens verwendet, mit denen sie dann in Ihrem Namen Anfragen an die Apigee APIs senden. (Bis dahin dauert es aber noch. Merken Sie sich im Moment nur den Speicherort.)
- Wiederholen Sie die Schritte 4 bis 11 für jedes Dienstkonto, das unter Dienstkonten und Rollen aufgelistet sind, die von Hybridkomponenten verwendet werden (außer dem Konto
apigee-mart
, dem keine Rolle zugeordnet ist. Weisen Sie ihm keine Rolle zu.)Wenn Sie fertig sind, sollten Sie zusätzlich zu den Standardeinstellungen (falls vorhanden) folgende Dienstkonten haben:
In der Google Cloud Console werden Dienstkonten durch das Symbol gekennzeichnet.
Wenn Sie ein Dienstkonto erstellt haben und eine Rolle hinzufügen oder entfernen möchten, müssen Sie die Ansicht IAM & Verwaltung verwenden. Rollen für Dienstkonten können nicht in der Ansicht Dienstkonten verwaltet werden.
APIs zum Erstellen von gcloud-Dienstkonten verwenden
Sie können Dienstkonten mit der Cloud Identity and Access Management API erstellen und verwalten.
Weitere Informationen finden Sie unter Dienstkonten erstellen und verwalten.
Fehlerbehebung
-