Zulassen des öffentlichen (nicht authentifizierten) Zugriffs

Diese Option gilt für einen Cloud Run-Dienst, der eine öffentliche API oder Website ist.

Sie können nicht authentifizierte Aufrufe eines Dienstes zulassen. Dazu weisen Sie dem Mitgliedstyp allUsers die IAM-Rolle „Cloud Run-Aufrufer“ zu.

Sie benötigen die Berechtigung run.services.setIamPolicy, um die Authentifizierung für einen Cloud Run-Dienst zu konfigurieren. Diese Berechtigung ist in den beiden Rollen Inhaber und Cloud Run-Administrator enthalten. Eine vollständige Liste der Rollen und ihrer Berechtigungen finden Sie unter IAM-Rollen für Cloud Run.

Konsolenbasierte Benutzeroberfläche

Für einen vorhandenen Cloud Run-Dienst:

  1. Öffnen Sie die Google Cloud Console:

    Zur Google Cloud Console

  2. Klicken Sie auf das Kästchen links neben dem Dienst, den Sie veröffentlichen möchten. (Klicken Sie nicht auf den Dienst selbst.)

  3. Klicken Sie im Informationsfenster oben rechts auf den Tab Berechtigungen. Wenn der Informationsbereich nicht sichtbar ist, müssen Sie möglicherweise auf Infofeld ansehen klicken und dann auf Berechtigungen klicken.

  4. Klicken Sie auf Hauptkonto hinzufügen.

Geben Sie im Feld Neue Hauptkonten den Wert allUsers ein.

  1. Wählen Sie im Drop-down-Menü Rolle die Rolle Cloud Run-Aufrufer aus.

  2. Klicken Sie auf Speichern.

  3. Sie werden aufgefordert, zu bestätigen, dass Sie diese Ressource veröffentlichen möchten. Klicken Sie auf Öffentlichen Zugriff zulassen, um die Änderung auf die IAM-Einstellungen des Dienstes anzuwenden.

Für einen neuen Dienst, den Sie erstellen, erstellen Sie den Dienst. Wählen Sie jedoch auf dem Tab Authentifizierung die Option Nicht authentifizierte Aufrufe zulassen aus, um den Dienst öffentlich verfügbar zu machen. Wenn Sie Authentifizierung erforderlich auswählen, wird der Dienst privat.

gcloud

Fügen Sie mit dem Befehl gcloud run services den speziellen Mitgliedstyp allUsers einem Dienst hinzu und weisen Sie ihm die Rolle roles/run.invoker zu, um einen Dienst öffentlich zugänglich zu machen:

  gcloud run services add-iam-policy-binding [SERVICE_NAME] \
    --member="allUsers" \
    --role="roles/run.invoker"

Alternativ können Sie den Befehl gcloud run deploy ausführen, um den Dienst beim Bereitstellen des Dienstes öffentlich zugänglich zu machen:

gcloud run deploy [SERVICE_NAME] ... --allow-unauthenticated

YAML

Erstellen Sie eine Datei mit dem Namen policy.yaml und dem folgendem Inhalt:

bindings:
- members:
  - allUsers
  role: roles/run.invoker

Lassen Sie nicht authentifizierte Aufrufe für den vorhandenen SERVICE zu:

gcloud run services set-iam-policy SERVICE policy.yaml

Terraform

Fügen Sie der vorhandenen Datei main.tf Folgendes hinzu, um einen Cloud Run-Dienst zu erstellen:

resource "google_cloud_run_v2_service" "default" {
  name     = "public-service"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
  }
}

Fügen Sie die folgende Ressource hinzu, die auf Ihren Cloud Run-Dienst verweist, um die IAM-Dienstbindung für roles/run.invoker zu aktualisieren:

resource "google_cloud_run_service_iam_binding" "default" {
  location = google_cloud_run_v2_service.default.location
  service  = google_cloud_run_v2_service.default.name
  role     = "roles/run.invoker"
  members = [
    "allUsers"
  ]
}

Diese Bindung ist nur für die angegebene Rolle autoritativ. Andere IAM-Bindungen innerhalb der IAM-Dienstrichtlinie werden beibehalten.

Domaineingeschränkte Freigabe

Wenn das Projekt einer Organisationsrichtlinie für die domaineingeschränkte Freigabe unterliegt, können Sie standardmäßig keine öffentlichen Dienste erstellen. Sie können Tags und bedingte Richtlinien verwenden, um bestimmte Dienste von dieser Einschränkung auszunehmen. Weitere Informationen finden Sie im Blogpost zum Erstellen öffentlicher Cloud Run-Dienste, wenn die Freigabe der Domain beschränkt ist.