Auf anstehende Änderungen bei der Autorisierung vorbereiten
In Application Integration wird die Autorisierung von Integrationen aktualisiert. Diese Änderungen werden bald wirksam. Die meisten Integrationen werden ohne Änderungen weiter ausgeführt, bei einigen ist jedoch eine Konfigurationsänderung erforderlich, damit sie weiter ausgeführt werden können. Alles, was auf dieser Seite beschrieben wird , verwendet eine Konfiguration, die Sie bereits steuern. Sie können diese Änderungen also jetzt vornehmen .
Anstehende Änderungen bei der Autorisierung
In Application Integration wird die Verarbeitung von Identitäten für Integrationsausführungen aktualisiert. Jede Ausführung muss jetzt eine explizite Identität haben, die als eine der folgenden fungiert:
- Der Nutzer, der die Ausführung ausgelöst hat. Die aufgerufenen Systeme wenden die Zugriffsberechtigungen dieses Nutzers an.
- Ein Dienstkonto für die Ausführung. Sie steuern, begrenzen und prüfen dieses Konto wie jedes andere Dienstkonto in Ihrem Google Cloud-Projekt.
Aufgrund dieser Aktualisierung gilt Folgendes:
- Um eine Integration auszuführen, benötigen Sie die Berechtigung, als Dienstkonto für die Ausführung zu fungieren.
- Wenn keine der beiden Identitäten verfügbar ist, schlägt die Integrationsausführung fehl.
Hinweis
Führen Sie die folgenden Aufgaben in der angegebenen Reihenfolge aus. Beginnen Sie mit der ersten Aufgabe, da die anderen beiden mit einer Veröffentlichung enden und die Veröffentlichung selbst berechtigungsgeprüft ist.
- Weisen Sie die Rolle „Dienstkontonutzer“ für jedes Dienstkonto für die Ausführung, das Sie bereits verwenden, allen zu, die die Integration ausführen, genehmigen, bearbeiten oder veröffentlichen – einschließlich der Dienstkonten, die von Ihrer Automatisierung verwendet werden.
- Legen Sie ein Dienstkonto für die Ausführung fest für Integrationen, die ohne Person ausgeführt werden und kein Dienstkonto für die Ausführung haben.
- Weisen Sie die Rolle „Dienstkontonutzer“ für das Dienstkonto zu, das in jedem Authentifizierungs- profil vom Typ Dienstkonto oder OIDC-Token angegeben ist. Diese Konten unterscheiden sich in der Regel von Ihrem Dienstkonto für die Ausführung.
Integrationen, für die ein Dienstkonto für die Ausführung erforderlich ist
Feststellen, ob eine Integration ein Dienstkonto für die Ausführung benötigt
Sie benötigen nur ein Dienstkonto für die Ausführung, wenn für die gesamte Ausführung keine Anmeldedaten einer Person verfügbar sind. Das ist nur in zwei Situationen der Fall:
| So wird die Integration ausgeführt | Sind die Anmeldedaten einer Person verfügbar? | Ist ein Dienstkonto für die Ausführung erforderlich? |
|---|---|---|
| Synchron – eine Person startet sie und wartet auf das Ergebnis | Ja, für die gesamte Ausführung | Nein |
| Asynchron – sie wird in die Warteschlange gestellt und später abgeschlossen | Nur zum Zeitpunkt der Auslösung | Ja |
| Unbeaufsichtigt – sie wird durch einen Zeitplan oder ein Ereignis gestartet | Nein, es ist nie eine Person beteiligt | Ja |
Betroffene Integrationen identifizieren
Wird sie jemals ohne Person ausgeführt? Das ist der Fall, wenn eine der folgenden Bedingungen erfüllt ist:
- Sie hat einen Ereignistrigger für Cloud Scheduler, Cloud Pub/Sub, Salesforce, oder Integration Connectors event.
- Sie wird über die API mit
scheduleIntegrationsgeplant. - Sie wird von einer anderen Integration als asynchrone Subintegration mit der Aufgabe „Integration aufrufen“ aufgerufen.
- Sie verwendet die Aussetzen oder Genehmigung Aufgabe, bei der eine Ausführung warten kann und dann von selbst abläuft.
Ist das Dienstkonto für die Ausführung leer? Führen Sie den folgenden Befehl aus, um alle veröffentlichten Versionen in einer Region zusammen mit dem Dienstkonto für die Ausführung aufzulisten:
curl -s -G -H "Authorization: Bearer $(gcloud auth print-access-token)" \
--data-urlencode "filter=state=ACTIVE" \
--data-urlencode "pageSize=1000" \
"https://REGION-integrations.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/integrations/-/versions" \
| jq -r '.integrationVersions[]
| [ .name, (.runAsServiceAccount // "NONE") ]
| @tsv'
Ersetzen Sie Folgendes:
REGION: die Region Ihrer Integration. Eine Liste der unterstützten Regionen finden Sie unter Standorte.PROJECT_ID: die ID Ihres Google Cloud-Projekts
- Eine Zeile mit
NONEerfordert nur dann Maßnahmen, wenn auch die erste Hälfte zutrifft. - Wenn Sie stattdessen eine einzelne Integration prüfen möchten, öffnen Sie sie in der Google Cloud Console und sehen Sie sich den Bereich Integrationsübersicht in der Symbolleiste für Integrationen an.
Integrationen aktualisieren
Rolle „Dienstkontonutzer“ gewähren
Führen Sie den folgenden Befehl aus, um die Rolle einer Person zuzuweisen:
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT \
--project=SERVICE_ACCOUNT_PROJECT_ID \
--member='user:PRINCIPAL' \
--role='roles/iam.serviceAccountUser'
Ersetzen Sie Folgendes:
SERVICE_ACCOUNT: die E-Mail-Adresse des Dienstkontos für die Ausführung oder des Kontos, das in einem Authentifizierungsprofil angegeben istSERVICE_ACCOUNT_PROJECT_ID: die ID des Projekts, das Inhaber des Dienstkontos istPRINCIPAL: die E-Mail-Adresse des Nutzers
Verwenden Sie für andere Prinzipaltypen das entsprechende Präfix --member:
- Gruppen:Verwenden Sie
group:. Wir empfehlen, Google-Gruppen anstelle einzelner Nutzerkonten zu verwenden, um die Zugriffsverwaltung zu vereinfachen, wenn sich Teammitglieder ändern. - Dienstkonten:Verwenden Sie
serviceAccount:für automatisierte Prozesse und Anwendungen.
So führen Sie dieselbe Aufgabe in der Google Cloud Console aus:
- Rufen Sie IAM und Verwaltung > Dienstkonten auf.
- Wählen Sie das Dienstkonto aus.
- Klicken Sie auf Berechtigungen > Zugriff gewähren.
Weitere Informationen finden Sie unter Zugriff auf Dienstkonten verwalten.
Dienstkonto für die Ausführung festlegen
- Wählen Sie das Dienstkonto aus oder erstellen Sie es und weisen Sie ihm die Rollen zu, die für die Aufgaben der Integration's
für die Ressourcen erforderlich sind, auf die sie zugreifen. Um herauszufinden, was Sie zuweisen müssen, sehen Sie sich die Rollen
an, die der Application Integration-Dienst-Agent Ihres Projekts,
service-PROJECT_NUMBER@gcp-sa-integrations., derzeit hat und weisen Sie dem neuen Konto nur den Teil zu, der von dieser Integration verwendet wird. - Weisen Sie die Rolle „Dienstkontonutzer“ allen zu, die die Integration ausführen, genehmigen, bearbeiten oder veröffentlichen, einschließlich der Automatisierung.
- Öffnen Sie die Integration und legen Sie das Dienstkonto im Integrationsübersicht Bereich in der Symbolleiste für Integrationen fest.
- Veröffentlichen Sie die Integration. Weitere Informationen finden Sie unter Integrationen testen und veröffentlichen.
Google Cloud empfiehlt, für jede Integration ein eigenes Dienstkonto mit minimalem Umfang zu verwenden, anstatt ein Konto mit umfassenden Berechtigungen, das für alle Integrationen gemeinsam genutzt wird, Das hat folgende Vorteile:
- Die Auswirkungen einer einzelnen Integration sind begrenzt.
- Es wird in Ihren Audit-Logs mit Namen angezeigt.
Weitere Informationen finden Sie unter Best Practices für die Arbeit mit Dienstkonten.
Fehlerbehebung bei fehlenden Berechtigungen
Eine abgelehnte Aktion hat eine von zwei Ursachen, die sich unterscheiden:
- Das Dienstkonto für die Ausführung : Entweder können Sie nicht als dieses Konto fungieren oder es kann nicht auf das zugreifen was für eine Aufgabe erforderlich ist.
- Ihre eigene IAM-Rolle : Sie sind nicht berechtigt, die Aktion auszuführen.
Beide Prüfungen gelten. Wenn Sie also eine beheben, wird die andere nicht behoben.
Fehler bei Dienstkonten für die Ausführung
| Situation | Folgendes wird angezeigt: | Was muss ich tun? |
|---|---|---|
| Eine Person löst eine Integration aus, kann aber nicht als Dienstkonto für die Ausführung fungieren | Der Trigger wird mit PERMISSION_DENIED abgelehnt. Die Prüfung wird ausgeführt
bevor die Ausführung in die Warteschlange gestellt wird. Daher wird nichts in Ihren Ausführungslogs angezeigt. Es sieht
so aus, als wäre nichts passiert, anstatt dass eine Aufgabe fehlgeschlagen ist. |
Weisen Sie der Person, die den Trigger ausgelöst hat, die Rolle „Dienstkontonutzer“ zu. |
| Eine Ausführung ohne Nutzeranmeldedaten hat kein Dienstkonto für die Ausführung | Aufgaben für Connectors, „REST-Endpunkt aufrufen“ und Cloud Run Functions schlagen für alles fehl, was sie erreichen möchten. Bei der Veröffentlichung:
The integration is missing run-as service account since governance is
enabled for your project. |
Legen Sie ein Dienstkonto für die Ausführung fest. |
| Eine Aufgabe verwendet ein Authentifizierungsprofil, dessen Dienstkonto der Aufrufer nicht verwenden kann | Diese Aufgabe wird abgelehnt, während die restliche Ausführung fortgesetzt wird:
You do not have permission to use Auth Config ID because you
cannot act as its service account: SERVICE_ACCOUNT. |
Weisen Sie die Rolle „Dienstkontonutzer“ für das Konto zu, das in dem Profil angegeben ist. |
| Ein Genehmiger kann nicht als Dienstkonto für die Ausführung fungieren | Der Genehmigungsprozess schlägt im Hintergrund fehl, ohne dass ein sichtbarer Fehler generiert wird. Die Ausführung bleibt pausiert, bis sie abläuft. Sie bemerken also, dass Genehmigungen nicht mehr funktionieren. | Weisen Sie allen, die genehmigen könnten , die Rolle „Dienstkontonutzer“ zu. |
| Eine Person bearbeitet oder veröffentlicht eine Integration ohne die Berechtigung | Publisher does not have required permission to publish integration with
service account: SERVICE_ACCOUNT. Alles, was bereits veröffentlicht wurde
wird weiter ausgeführt. Wenn die Veröffentlichung über eine Automatisierung erfolgt, wird dies in Ihrer Bereitstellungspipeline
und nicht in der Console angezeigt. |
Weisen Sie die Rolle „Dienstkontonutzer“ Bearbeitern, Veröffentlichern, und der Automatisierung zu. |
| Eine Aufgabe wird als die Person ausgeführt, die sie ausgelöst hat, und diese Person kann nicht auf die Ressource zugreifen | Die Ausführung wird normal gestartet, dann schlägt eine Aufgabe fehl und gibt eine Ressource an, obwohl sich nichts an der Integration geändert hat. | Gewähren Sie diesen Personen Zugriff auf die Ressource oder verschieben Sie die Integration zu einem Dienstkonto für die Ausführung das bereits Zugriff hat. Das ist in der Regel die bessere Lösung, da der Zugriff der Integration dann nicht davon abhängt, wer sie ausführt. |
Die vollständige Liste der Application Integration-Fehlercodes finden Sie unter Fehlercodes.
Fehler bei IAM-Rollen
Zusätzlich zum Dienstkonto für die Ausführung prüft Application Integration für jede Aktion Ihre Nutzer
IAM-Berechtigungen. Wenn beim Interagieren mit einer Integration der Fehler
PERMISSION_DENIED auftritt oder
Ausführungslogs nicht geladen werden können, prüfen Sie, ob Sie eine Rolle haben, die die erforderlichen
Berechtigungen gewährt:
| So gehts | Sie benötigen eine dieser Rollen |
|---|---|
| Integrationen ansehen und öffnen | roles/integrations.integrationViewer |
| Ausführungslogs und -details ansehen | roles/integrations.integrationViewer oder
roles/integrations.integrationInvoker |
| Integration ausführen | roles/integrations.integrationInvoker oder
roles/integrations.integrationEditor |
| Integrationen erstellen und bearbeiten | roles/integrations.integrationEditor |
| Integration veröffentlichen | roles/integrations.integrationDeployer oder
roles/integrations.integrationEditor |
| Ausgesetzte Ausführung genehmigen oder fortsetzen | roles/integrations.suspensionResolver oder
roles/integrations.integrationAdmin |
| Vollständiger Zugriff auf alle Integrationen | roles/integrations.integrationAdmin |
Führen Sie den folgenden Befehl aus, um eine Rolle zuzuweisen:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:PRINCIPAL' \
--role='ROLE'
Hier finden Sie weitere Informationen:
- Vordefinierte IAM-Rollen: vollständige Liste der Rollen und der Berechtigungen, die in jeder Rolle enthalten sind.
- Zugriffssteuerung: Informationen zur Verwendung von IAM in Application Integration.
Häufige Fragen
Ich habe die Rolle zugewiesen und es schlägt immer noch fehl. Was fehlt mir?
- Die Zuweisung erfolgte für das falsche Projekt. Sie muss in dem Projekt erfolgen, das Inhaber des Dienstkontos ist. Das ist nicht unbedingt das Projekt, das Inhaber der Integration ist.
- Sie ist noch nicht wirksam geworden. Warten Sie einige Minuten. Autorisierungsentscheidungen werden zusätzlich zur normalen IAM-Verzögerung kurz im Cache gespeichert.
- Es ist ein zweites Dienstkonto beteiligt. Ihr Dienstkonto für die Ausführung und jedes Authentifizierungsprofils Dienstkonto sind getrennt, und beide benötigen die Zuweisung.
- Die Blockierung liegt an Ihrer eigenen Rolle, nicht am Dienstkonto. Die Rolle „Dienstkontonutzer“ bestimmt, ob Sie als Dienstkonto für die Ausführung fungieren dürfen. Eine separate IAM-Rolle bestimmt, ob Sie die Aktion ausführen dürfen. Weitere Informationen finden Sie unter Fehler bei IAM-Rollen.
Warum reicht die Rolle „Integration Invoker“ nicht mehr aus?
Sie können die Integration weiterhin ausführen. Sie hat Ihnen jedoch nie erlaubt, als das
Dienstkonto zu fungieren, mit dem die Integration ausgeführt wird. Das bestimmt, wie viel Zugriff die
Ausführung erhält. Keine der folgenden Rollen gewährt
iam.serviceAccounts.actAs. Daher ist immer eine separate Zuweisung erforderlich:
roles/integrations.integrationAdminroles/integrations.integrationEditorroles/integrations.integrationInvoker
Meine Integration wird nur synchron ausgeführt. Benötige ich ein Dienstkonto für die Ausführung?
Nein. Eine synchrone Ausführung hat bereits eine Identität: die Person, die sie ausgelöst hat. Weitere Informationen finden Sie unter Feststellen, ob eine Integration ein Dienstkonto für die Ausführung benötigt.
In der Console wird nichts markiert. Bin ich auf der sicheren Seite?
Nicht unbedingt. Warnungen hängen teilweise von beobachteten Ausführungen ab. Bei einer Integration mit einem seltenen Zeitplan oder einer Integration, die in letzter Zeit nicht ausgelöst wurde, sind möglicherweise Maßnahmen erforderlich, ohne dass jemals eine Warnung angezeigt wird. Gehen Sie die Informationen unter Integrationen, für die ein Dienstkonto für die Ausführung erforderlich ist durch, anstatt eine Console ohne Warnungen als Entwarnung zu betrachten.
Nächste Schritte
- Sicherheitsrichtlinien für Application Integration lesen.
- Vordefinierte IAM-Rollen für Application Integration ansehen
- Authentifizierungsprofile konfigurieren
- Best Practices für die Arbeit mit Dienstkonten lesen