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.