Auf dieser Seite wird erläutert, wie eine Compute Engine-Instanz mit Identity-Aware Proxy (IAP) gesichert wird.
Hinweis
Zum Aktivieren von IAP für Compute Engine benötigen Sie Folgendes:
- Ein Google Cloud Console-Projekt mit aktivierter Abrechnung.
- Eine Gruppe von einer oder mehreren Compute Engine-Instanzen, die von einem Load-Balancer bedient werden.
- Einen Domainnamen, der auf die Adresse des Load-Balancer registriert ist.
- Anwendungscode, der überprüft, ob alle Anfragen eine Identität haben.
- Weitere Informationen dazu finden Sie unter Identität des Nutzers abrufen.
Wenn Sie Ihre Compute Engine-Instanz noch nicht eingerichtet haben, lesen Sie die vollständige Schritt-für-Schritt-Anleitung unter IAP für Compute Engine einrichten.
IAP verwendet zur Authentifizierung von Nutzern einen von Google verwalteten OAuth-Client. Nur Nutzer innerhalb der Organisation können auf die IAP-kompatible App zugreifen. Wenn Sie Nutzern außerhalb Ihrer Organisation Zugriff gewähren möchten, Siehe IAP für externe Anwendungen aktivieren.
Sie können IAP für einen Compute Engine-Back-End-Dienst oder für eine Compute Engine-Weiterleitungsregel aktivieren. Wenn Sie IAP für einen Compute Engine-Back-End-Dienst aktivieren, wird nur dieser Back-End-Dienst durch IAP geschützt. Wenn Sie IAP einer Compute Engine-Weiterleitungsregel, Compute Engine-Instanzen hinter der Weiterleitungsregel sind geschützt durch IAP.
IAP für eine Weiterleitungsregel aktivieren
Sie können IAP für eine Weiterleitungsregel mithilfe des Frameworks für Autorisierungsrichtlinien für Load Balancer aktivieren.
gcloud
- Führen Sie den folgenden Befehl aus, um eine
policy.yaml
-Datei vorzubereiten.
$ cat << EOF > policy.yaml
action: CUSTOM
description: authz policy with Cloud IAP
name: AUTHZ_POLICY_NAME
customProvider:
cloudIap: {}
target:
loadBalancingScheme: EXTERNAL_MANAGED
resources:
- https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/FORWARDING_RULE_ID
EOF
- Führen Sie den folgenden Befehl aus, um IAP für eine Weiterleitungsregel zu aktivieren.
gcloud beta network-security authz-policies import AUTHZ_POLICY_NAME \ --source=policy.yaml \ --location=LOCATION \ --project=PROJECT_ID
Ersetzen Sie Folgendes:
- PROJECT_ID: die Google Cloud-Projekt-ID.
- LOCATION: Die Region, in der sich die Ressource befindet.
- FORWARDING_RULE_ID: Die ID der Ressource für Weiterleitungsregeln.
- AUTHZ_POLICY_NAME: Der Name der Autorisierungsrichtlinie.
API
- Führen Sie den folgenden Befehl aus, um eine
policy.json
-Datei vorzubereiten.cat << EOF > policy.json { "name": "AUTHZ_POLICY_NAME", "target": { "loadBalancingScheme": "INTERNAL_MANAGED", "resources": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/FORWARDING_RULE_ID" ], }, "action": "CUSTOM", "httpRules": [], "customProvider": { "cloudIap": {} } } EOF
Führen Sie den folgenden Befehl aus, um IAP für eine Weiterleitungsregel zu aktivieren.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @settings.json \ "https://networksecurity.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/authzPolicies"
Ersetzen Sie Folgendes:
- PROJECT_ID: die Google Cloud-Projekt-ID.
- LOCATION: Die Region, in der sich die Ressource befindet.
- FORWARDING_RULE_ID: Die ID der Ressource für Weiterleitungsregeln.
- AUTHZ_POLICY_NAME: Der Name der Autorisierungsrichtlinie.
Nachdem Sie IAP für eine Weiterleitungsregel aktiviert haben, können Sie Berechtigungen auf Ressourcen anwenden.
IAP in einem Compute Engine-Back-End-Dienst aktivieren
Sie können IAP für einen Compute Engine-Back-End-Dienst über diesen Back-End-Dienst aktivieren.
Console
Der von Google verwaltete OAuth-Client ist nicht verfügbar, wenn Sie IAP über die Google Cloud Console aktivieren.
Wenn Sie den OAuth-Zustimmungsbildschirm Ihres Projekts noch nicht konfiguriert haben, werden Sie dazu aufgefordert. Eine Anleitung dazu finden Sie unter OAuth-Zustimmungsbildschirm einrichten.
IAP-Zugriff einrichten
-
Rufen Sie die Seite Identity-Aware Proxy auf.
Zur Seite "Identity-Aware Proxy" - Wählen Sie das Projekt aus, das Sie mit IAP sichern möchten.
-
Klicken Sie auf das Kästchen neben der Ressource, auf die Sie Zugriff gewähren möchten.
Wenn keine Ressource angezeigt wird, prüfen Sie, ob die Ressource erstellt wurde und der BackendConfig-Compute Engine-Ingress-Controller synchronisiert ist.
Führen Sie folgenden Befehl aus, um zu prüfen, ob der Back-End-Dienst verfügbar ist: gcloud-Befehl:
gcloud compute backend-services list
- Klicken Sie in der rechten Seitenleiste auf Hauptkonto hinzufügen.
-
Fügen Sie im daraufhin angezeigten Dialogfeld Hauptkonten hinzufügen die E-Mail-Adressen von Nutzergruppen oder einzelnen Nutzern hinzu, denen Sie für das Projekt die Rolle Nutzer von IAP-gesicherten Web-Apps zuweisen möchten.
Folgende Hauptkonten können diese Rolle haben:
- Google-Konto: nutzer@gmail.com
- Google Group: admins@googlegroups.com
- Dienstkonto: server@beispiel.gserviceaccount.com
- Google Workspace-Domain: beispiel.de
Fügen Sie unbedingt ein Google-Konto hinzu, auf das Sie zugreifen können.
- Wählen Sie in der Drop-down-Liste Rollen den Eintrag Cloud IAP > Nutzer von IAP-gesicherten Web-Apps aus.
- Klicken Sie auf Speichern.
IAP aktivieren
-
Suchen Sie auf der Seite Identity-Aware Proxy unter APPLICATIONS (ANWENDUNGEN) nach dem Load Balancer, über den instance group bereitgestellt wird, auf die Sie den Zugriff beschränken möchten.
So aktivieren Sie IAP:- Mindestens ein Protokoll in der Load-Balancer-Frontend-Konfiguration muss HTTPS sein. Weitere Informationen zum Einrichten eines Load Balancers
-
Sie benötigen die Berechtigungen
compute.backendServices.update
,clientauthconfig.clients.create
undclientauthconfig.clients.getWithSecret
. Diese Berechtigungen erhalten Sie über Rollen wie "Projektbearbeiter". Weitere Informationen finden Sie unter Zugriff auf durch IAP gesicherte Ressourcen verwalten.
- Klicken Sie im angezeigten Fenster IAP aktivieren auf Aktivieren, um zu bestätigen, dass die Ressource durch IAP gesichert werden soll. Nachdem Sie IAP aktiviert haben, sind für alle Verbindungen zu Ihrem Load-Balancer Anmeldedaten erforderlich. Zugriff erhalten nur Konten mit der Rolle Nutzer von IAP-gesicherten Web-Apps für das Projekt.
gcloud
Bevor Sie Ihr Projekt und IAP einrichten, benötigen Sie eine aktuelle Version des gcloud CLI verwenden können. Eine Anleitung zum Installieren der gcloud CLI Siehe gcloud CLI installieren.
-
Verwenden Sie zur Authentifizierung die Google Cloud CLI und führen Sie den folgenden Befehl aus.
gcloud auth login
- Folgen Sie der angezeigten URL, um sich anzumelden.
- Kopieren Sie, nachdem Sie sich angemeldet haben, den angezeigten Bestätigungscode und fügen Sie ihn in die Befehlszeile ein.
-
Führen Sie den folgenden Befehl aus, um das Projekt anzugeben, das die Ressource enthält, die Sie mit IAP schützen möchten.
gcloud config set project PROJECT_ID
-
Führen Sie zum Aktivieren von IAP den Befehl mit globalem oder regionalem Umfang aus.
Globaler Geltungsbereich Regionaler Geltungsbereichgcloud compute backend-services update BACKEND_SERVICE_NAME --global --iap=enabled
gcloud compute backend-services update BACKEND_SERVICE_NAME --region REGION_NAME --iap=enabled
Nachdem Sie IAP aktiviert haben, können Sie mit der gcloud CLI Änderungen vornehmen,
IAP-Zugriffsrichtlinie mithilfe der IAM-Rolle
roles/iap.httpsResourceAccessor
Weitere Informationen zum Verwalten von Rollen und Berechtigungen.
API
Führen Sie den folgenden Befehl aus, um eine
settings.json
-Datei vorzubereiten.cat << EOF > settings.json { "iap": { "enabled":true } } EOF
Führen Sie den folgenden Befehl aus, um In-App-Produkte zu aktivieren.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @settings.json \ "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/REGION/backendServices/BACKEND_SERVICE_NAME"
Nachdem Sie IAP aktiviert haben, können Sie mit der Google Cloud CLI die
IAP-Zugriffsrichtlinie mit der IAM-Rolle
roles/iap.httpsResourceAccessor
Weitere Informationen zum Verwalten von Rollen und Berechtigungen.