Zugriff mit IAM autorisieren
Sie verwenden die Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM), um Identitäten zum Ausführen von administrativen Aktionen für Funktionen zu autorisieren, die mit der Cloud Functions v2 API erstellt wurden, z. B. mit gcloud functions
, der REST API oder Terraform. Zu den Verwaltungsaktionen gehören das Erstellen, Aktualisieren und Löschen von Funktionen. Informationen zum IAM-Zugriff für Funktionen, die mit Cloud Run erstellt wurden, finden Sie unter Zugriffssteuerung mit IAM.
In IAM weisen Sie Hauptkonten (die Identitäten, die Sie aktivieren möchten, normalerweise eine Nutzer- oder Dienstkonto-E-Mail-Adresse) die entsprechenden IAM-Rollen für die Funktion oder das Projekt zu. Diese Rollen enthalten Berechtigungen, mit denen die Aktionen definiert werden, die das Hauptkonto ausführen darf.
Hinweise
Um die Berechtigung zu erhalten, den Zugriff für eine bestimmte Funktion oder alle Funktionen in einem Projekt zu verwalten, bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Cloud Functions Admin (roles/roles/cloudfunctions.admin
) für die Funktion oder das Projekt zu gewähren.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigung cloudfunctions.functions.setIamPolicy
, die erforderlich ist, um den Zugriff für eine bestimmte Funktion oder alle Funktionen in einem Projekt zu verwalten.
Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Eine vollständige Liste der Rollen und der zugehörigen Berechtigungen finden Sie unter Cloud Functions-IAM-Rollen.
Zugriff auf eine Funktion aktivieren
Sie können Aktionen für eine Funktion steuern, indem Sie einzelnen Identitäten Rollen über IAM zuweisen oder einschränken.
Hauptkonten hinzufügen und Rollen gewähren
Führen Sie den Befehl gcloud functions add-iam-policy-binding
aus:
gcloud functions add-iam-policy-binding FUNCTION_NAME \ --member=PRINCIPAL_ID \ --role=ROLE
Dabei ist FUNCTION_NAME
der Funktionsname, PRINCIPAL_ID
die ID des Hauptkontos, normalerweise eine E-Mail-Adresse, und ROLE
die Rolle.
Eine Liste der Quellen, die eine PRINCIPAL_ID
bereitstellen können, finden Sie unter Hauptkonto-IDs.
Eine Liste der zulässigen Werte für ROLE
finden Sie auf der Referenzseite für IAM-Rollen.
Rollen aus Hauptkonten entfernen
Führen Sie den Befehl gcloud functions remove-iam-policy-binding
aus:
gcloud functions remove-iam-policy-binding FUNCTION_NAME \ --member=PRINCIPAL_ID \ --role=ROLE
Dabei ist FUNCTION_NAME
der Funktionsname, PRINCIPAL_ID
die E-Mail-Adresse, die das Dienstkonto identifiziert, wobei serviceAccount:
vorangestellt ist, und ROLE
die Rolle.
Eine Liste der zulässigen Quellen für PRINCIPAL_ID
finden Sie unter Hauptkonto-IDs.
Eine Liste der möglichen Werte für ROLE
finden Sie auf der Referenzseite für IAM-Rollen.
Wenn dem Hauptkonto mehrere Rollen zugewiesen wurden, müssen Sie diejenige angeben, die entfernt werden soll.
Mehrere Hauptkonten auf einmal hinzufügen
Erstellen Sie eine IAM-Richtlinie, z. B. mit dem Namen policy.json
:
{ "bindings": [ { "role": ROLE, "members": [ PRINCIPAL_ID ] } ] }
Führen Sie den Befehl gcloud functions set-iam-policy
aus:
gcloud functions set-iam-policy FUNCTION_NAME policy.json
Eine Liste der zulässigen Quellen für PRINCIPAL_ID
finden Sie unter Hauptkonto-IDs.
Eine Liste der zulässigen Werte für ROLE
finden Sie auf der Referenzseite für IAM-Rollen.
Hauptkonten aufrufen
Verwenden Sie den Befehl gcloud functions get-iam-policy
, um Principals aufzurufen:
gcloud functions get-iam-policy FUNCTION_NAME
Nicht authentifizierten HTTP-Funktionsaufruf zulassen
Um einen nicht authentifizierten Aufruf zuzulassen, müssen Sie dies bei oder nach der Bereitstellung angeben.
Sie verwenden eine spezielle Variante des zuvor beschriebenen Ansatzes, um nicht authentifizierten Aufrufern die Möglichkeit zu geben, eine HTTP-Funktion aufzurufen.
Wenn Sie Funktionen in einem Projekt entwickeln, das der Organisationsrichtlinie für die domaineingeschränkte Freigabe unterliegt, können Sie den nicht authentifizierten Aufruf einer Funktion nicht zulassen.
Bei der Bereitstellung
Der Befehl gcloud functions deploy
enthält eine Eingabeaufforderung, damit Sie die Aufrufberechtigungen bei der Funktionserstellung konfigurieren können. Er kann auch das Flag --allow-unauthenticated
enthalten:
gcloud functions deploy FUNCTION_NAME \ --trigger-http \ --allow-unauthenticated \ ...
Nachfolgende Bereitstellungen derselben Funktion ändern ihren Status auch dann nicht, wenn Sie dieses Flag nicht verwenden.
Nach der Bereitstellung
Verwenden Sie den Befehl gcloud run services add-iam-policy-binding
, um der jeweiligen Funktion die Rolle roles/run.invoker
zuzuweisen:
gcloud run services add-iam-policy-binding FUNCTION_NAME \ --member="allUsers" \ --role="roles/run.invoker"
Weitere Informationen über diese Felder finden Sie in der gcloud run add-iam-policy-binding
-Referenz.