Zugriff mit IAM autorisieren
Mit Identity and Access Management (IAM) autorisieren Sie Identitäten,
administrative Aktionen für Funktionen auszuführen, die mit der
Cloud Functions API v2 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.
Hinweis
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
cloudfunctions.functions.setIamPolicy
Berechtigung,
die zum Verwalten des Zugriffs für eine bestimmte Funktion oder alle Funktionen in einem Projekt erforderlich ist.
Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Eine vollständige Liste der Rollen und 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
Verwenden Sie den Befehl gcloud functions add-iam-policy-binding:
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 unter
der Referenzseite zu IAM-Rollen.
Rollen aus Hauptkonten entfernen
Verwenden Sie den Befehl gcloud functions remove-iam-policy-binding:
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 unter
der Referenzseite zu 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 ] } ] }
Verwenden Sie den Befehl gcloud functions set-iam-policy:
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 unter
der Referenzseite zu IAM-Rollen.
Hauptkonten aufrufen
Verwenden Sie den Befehl gcloud functions get-iam-policy, um Hauptkonten aufzurufen:
gcloud functions get-iam-policy FUNCTION_NAME
Nicht authentifizierten HTTP-Funktionsaufruf zulassen
Bei Funktionen, die mit der Cloud Functions API v2 erstellt wurden, müssen Sie bei oder nach der Bereitstellung nicht authentifizierte Aufrufe zulassen 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 nicht, auch 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.