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 einen von Google verwalteten OAuth-Client, um Nutzer zu authentifizieren. 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, lesen Sie den Hilfeartikel IAP für externe Anwendungen aktivieren.
Sie können IAP für einen Compute Engine-Back-End-Dienst oder 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 für eine Compute Engine-Weiterleitungsregel aktivieren, werden alle Compute Engine-Instanzen hinter der Weiterleitungsregel durch IAP geschützt.
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. Die Richtlinie erlaubt es Clients mit einem IP-Adressbereich von10.0.0.1/24
, IAP für eine Weiterleitungsregel zu aktivieren.
$ cat << EOF > policy.yaml
action: CUSTOM
description: authz policy with Cloud IAP
name: AUTHZ_POLICY_NAME
httpRules:
- from:
sources:
- ipBlocks:
- prefix: "10.0.0.1"
length: "24"
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 Weiterleitungsregelressource.
- 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": [ { "from": { "sources": { "ipBlocks": [ { "prefix": "10.0.0.1", "length": "24" } ] } } } ], "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 @policy.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 Weiterleitungsregelressource.
- AUTHZ_POLICY_NAME: Der Name der Autorisierungsrichtlinie.
Nachdem Sie IAP für eine Weiterleitungsregel aktiviert haben, können Sie Berechtigungen auf Ressourcen anwenden.
IAP für einen 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 -Konsole aktivieren.
If you haven't configured your project's OAuth consent screen, you'll be prompted to do so. To configure your OAuth consent screen, see Setting up your OAuth consent screen.
If you are running GKE clusters version 1.24 or later, you can configure
IAP and GKE by using the Kubernetes Gateway API. To do so, complete
the following steps and then follow the instructions in
Configure IAP.
Do not configure BackendConfig
.
Setting up IAP access
-
Go to the
Identity-Aware Proxy page.
Go to the Identity-Aware Proxy page - Select the project you want to secure with IAP.
-
Select the checkbox next to the resource you want to grant access to.
If you don't see a resource, ensure that the resource is created and that the BackendConfig Compute Engine ingress controller is synced.
To verify that the backend service is available, run the following gcloud command:
gcloud compute backend-services list
- On the right side panel, click Add principal.
-
In the Add principals dialog that appears, enter the email addresses of groups or
individuals who should have the IAP-secured Web App User role for the project.
The following kinds of principals can have this role:
- Google Account: user@gmail.com
- Google Group: admins@googlegroups.com
- Service account: server@example.gserviceaccount.com
- Google Workspace domain: example.com
Make sure to add a Google Account that you have access to.
- Select Cloud IAP > IAP-secured Web App User from the Roles drop-down list.
- Click Save.
Turning on IAP
-
On the Identity-Aware Proxy page, under APPLICATIONS,
find the load balancer that serves the instance group you want to restrict
access to. To turn on IAP for a resource,
To enable IAP:- At least one protocol in the load balancer frontend configuration must be HTTPS. Learn about setting up a load balancer.
-
You need the
compute.backendServices.update
,clientauthconfig.clients.create
, andclientauthconfig.clients.getWithSecret
permissions. These permissions are granted by roles, such as the Project Editor role. To learn more, see Managing access to IAP-secured resources.
- In the Turn on IAP window that appears, click Turn On to confirm that you want IAP to secure your resource. After you turn on IAP, it requires login credentials for all connections to your load balancer. Only accounts with the IAP-Secured Web App User role on the project will be given access.
gcloud
Bevor Sie Ihr Projekt und IAP einrichten, benötigen Sie eine aktuelle Version der gcloud CLI. Eine Anleitung zur Installation der gcloud CLI finden Sie unter gcloud CLI installieren.
-
Führen Sie zum Authentifizieren den folgenden Befehl über die Google Cloud CLI 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 entweder den Befehl für die globale oder die regionale Ebene aus.
Globaler Geltungsbereich Regionaler Umfanggcloud 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 die IAP-Zugriffsrichtlinie mithilfe der IAM-Rolle roles/iap.httpsResourceAccessor
ändern. Weitere Informationen zum Verwalten von Rollen und Berechtigungen.
API
Run the following command to prepare a
settings.json
file.cat << EOF > settings.json { "iap": { "enabled":true } } EOF
Run the following command to enable IAP.
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"
After you enable IAP, you can use the Google Cloud CLI to modify the
IAP access policy using the IAM role
roles/iap.httpsResourceAccessor
. Learn more about
managing roles and permissions.