IAP für Compute Engine aktivieren

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:

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

  1. Führen Sie den folgenden Befehl aus, um eine policy.yaml-Datei vorzubereiten. Die Richtlinie erlaubt es Clients mit einem IP-Adressbereich von 10.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
  1. 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

  1. 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
    
  2. 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

  1. Go to the Identity-Aware Proxy page.
    Go to the Identity-Aware Proxy page
  2. Select the project you want to secure with IAP.
  3. 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
  4. On the right side panel, click Add principal.
  5. 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.

  6. Select Cloud IAP > IAP-secured Web App User from the Roles drop-down list.
  7. Click Save.

Turning on IAP

  1. 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, and clientauthconfig.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.
  2. 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.

  1. Führen Sie zum Authentifizieren den folgenden Befehl über die Google Cloud CLI aus.
    gcloud auth login
  2. Folgen Sie der angezeigten URL, um sich anzumelden.
  3. Kopieren Sie, nachdem Sie sich angemeldet haben, den angezeigten Bestätigungscode und fügen Sie ihn in die Befehlszeile ein.
  4. 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
  5. Führen Sie zum Aktivieren von IAP entweder den Befehl für die globale oder die regionale Ebene aus.

    Globaler Geltungsbereich
    gcloud compute backend-services update BACKEND_SERVICE_NAME --global --iap=enabled
    Regionaler Umfang
    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

  1. Run the following command to prepare a settings.json file.

    cat << EOF > settings.json
    {
    "iap":
      {
        "enabled":true
      }
    }
    EOF
    

  2. 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.