Zertifikatbasierten Zugriff für VMs aktivieren

Auf dieser Seite wird beschrieben, wie Sie den zertifikatbasierten Zugriff (Certificate-Based Access, CBA) für Ihre Google Cloud VMs aktivieren. Mit CBA können Sie den Zugriff von vertrauenswürdigen Geräten auf Google Cloud VMs sichern.

Übersicht

Bei der Google Cloud kontextsensitiven Zugriffsfunktion für VMs wird der Zugriff mithilfe von gegenseitiger TLS (mTLS) gesichert. Im Folgenden finden Sie die Hauptkomponenten, mit denen Sie CBA für VMs aktivieren und verwenden:

  • Access Context Manager: Mit dieser Funktion können Sie Zugriffsebenen erstellen, die Zertifikate erfordern, um den Zugriff auf Webanwendungen zu bestimmen.
  • Identity-Aware Proxy (IAP): Mit der IAP-TCP-Weiterleitung können Sie einen verschlüsselten Tunnel einrichten, über den Sie SSH-, RDP- und anderen Traffic an VM-Instanzen weiterleiten können. Außerdem können Sie mit einer IAP-Richtlinie genau steuern, welche Nutzer Tunnel zu bestimmten VM-Instanzen herstellen dürfen und welche Zugriffsbedingungen die Nutzer erfüllen müssen, um solche Tunnel zu verwenden.
  • Chrome Enterprise-Richtlinie: Bietet die gegenseitige Authentifizierung (mTLS) zwischen Nutzern und VMs bei Verwendung des Chrome-Browsers.
  • Google Cloud CLI: Bietet die gegenseitige Authentifizierung (mTLS) zwischen Nutzern und VMs bei Verwendung der gcloud CLI.

Hinweis

Sie müssen CBA-Zugriffsebenen für Ihr Google Cloud -Projekt erstellt haben.

Rollen für den Zugriff auf VMs über die IAP-TCP-Weiterleitung gewähren

Sie müssen Nutzern oder Nutzergruppen die entsprechenden IAM-Rollen (Identity and Access Management) für ein Projekt zuweisen, damit sie die IAP-TCP-Weiterleitung für den Zugriff auf VMs verwenden können.

In der folgenden Tabelle sind die vordefinierten Rollen aufgeführt, die Sie vertrauenswürdigen Administratoren für die TCP-Weiterleitung und zugehörige Aufgaben gewähren müssen.

Aufgabe Rollen Weitere Informationen
TCP-Weiterleitung Nutzer IAP-gesicherter Tunnel (roles/iap.tunnelResourceAccessor) Zugriff auf alle VM-Instanzen in einem Projekt gewähren oder Zugriff auf eine bestimmte VM gewähren
SSH-Zugriff Compute-Instanzadministrator (Version 1) (roles/compute.instanceAdmin.v1)
OS Login (empfohlen) Verschiedene Rollen für OS Login für Nutzerkonten konfigurieren
Dienstkonto verwenden Dienstkontonutzer (roles/iam.serviceAccountUser) Rolle „serviceAccountUser“

Weitere Informationen zum Zuweisen von Rollen für die IAP-TCP-Weiterleitung finden Sie unter Rollen für die IAP-TCP-Weiterleitung zuweisen.

Zertifikatbasierten Zugriff auf eine VM konfigurieren

Mit IAP-TCP können Sie zwar Zugriff auf alle VM-Instanzen in einem Projekt gewähren, aber Sie müssen den zertifikatbasierten Zugriff für jede einzelne VM-Instanz konfigurieren.

Wenn Sie einem Nutzer oder einer Nutzergruppe zertifikatbasierten Zugriff auf eine VM gewähren möchten, weisen Sie der VM-Instanz die Rolle roles/iap.tunnelResourceAccessor zu. Die anderen Rollen können dem Projekt zugewiesen werden.

Console

  1. Öffnen Sie die IAP-Administratorseite und wählen Sie den Tab SSH- und TCP-Ressourcen aus.

    Zur Seite „IAP“

  2. Wählen Sie die VM-Instanzen aus, die Sie konfigurieren möchten. Falls das Infofeld nicht sichtbar ist, klicken Sie auf Infofeld ansehen.

  3. Klicken Sie auf Hinzufügen und konfigurieren Sie Folgendes:

    • Neue Hauptkonten: Geben Sie den Nutzer oder die Nutzergruppe an, dem bzw. der Sie Zugriff gewähren möchten.
    • Rolle auswählen: Wählen Sie Cloud IAP > Nutzer IAP-gesicherter Tunnel aus.
  4. Klicken Sie auf IAM-Bedingung hinzufügen und konfigurieren Sie eine Bedingung:

    • Titel: Geben Sie einen Namen für die Bedingung ein.
    • Builder für IAM-Bedingungen: Wählen Sie im Drop-down-Menü Bedingungstyp die Option Zugriffsebene und dann die zuvor erstellte zertifikatbasierte Zugriffsebene aus.
  5. Klicken Sie auf Speichern.

API

Wenn Sie den zertifikatbasierten Zugriff auf eine VM konfigurieren möchten, ändern Sie die Datei policy.json Ihrer Anwendung.

Weitere Informationen zum Verwenden der IAM API für das Verwalten von Zugriffsrichtlinien finden Sie unter Zugriff auf Ressourcen verwalten, die mit IAP gesichert sind.

  1. Exportieren Sie die folgenden Variablen.

    export IAP_BASE_URL=https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_tunnel
    # Replace POLICY_FILE.JSON with the name of JSON file to use for setIamPolicy
    export JSON_NEW_POLICY=POLICY_FILE.JSON
    
  2. Rufen Sie die IAM-Richtlinie für die Compute Engine-Instanz mit der Methode getIamPolicy ab. Das leere Datenbit am Ende wandelt die curl-Anfrage in POST anstelle von GET um.

    curl -i -H "Authorization: Bearer $(gcloud auth print-access-token)" \
         ${IAP_BASE_URL}/zones/ZONE_NAME/instances/INSTANCE_ID or INSTANCE_NAME:getIamPolicy \
         -d ''
    
  3. Weisen Sie Ihren Hauptpersonen die Rolle iap.tunnelResourceAccessor und den zertifikatbasierten Zugriff zu, indem Sie die JSON-Datei der IAM-Richtlinie ändern.

    Im Folgenden finden Sie ein Beispiel für eine policy.json-Datei, mit der einer Gruppe von VM-Instanzadministratoren die Rolle iap.tunnelResourceAccessor zugewiesen und ihnen damit zertifikatbasierter Zugriff auf mit IAP gesicherte Tunnelressourcen gewährt wird.

    Beachten Sie, dass ein Hauptkonto mit der Rolle „Inhaber“ die Berechtigung hat, IAP für die TCP-Weiterleitung zu verwenden.

    {
      "policy": {
        "bindings": [
          {
            "role": "roles/iap.tunnelResourceAccessor",
            "members": ["group:instance-admins@example.com"],
            "condition": {
              "expression": "\"accessPolicies/POLICY_NAME/accessLevels/CERTIFICATE_BASED_ACCESS_LEVEL_NAME\" in request.auth.access_levels,
              "title": "CERTIFICATE_BASED_CONDITION_NAME"
            }
          }
        ]
      }
    }
    

    Rufen Sie die Methode accessPolicies.list auf, um den Namen einer Richtlinie zu ermitteln.

    GET https://accesscontextmanager.googleapis.com/v1/accessPolicies
    
  4. Legen Sie die neue Datei policy.json mit der Methode setIamPolicy fest.

    curl -i -H "Content-Type:application/json" \
              -H "Authorization: Bearer $(gcloud auth print-access-token)" \
              ${IAP_BASE_URL}/zones/ZONE_NAME/instances/INSTANCE_ID or INSTANCE_NAME:setIamPolicy \
              -d @${JSON_NEW_POLICY}
    

Mit Clientzertifikaten auf VMs zugreifen

Verwenden Sie eine der folgenden Methoden, um mithilfe von Clientzertifikaten auf VMs zuzugreifen.

Clientzertifikate im Chrome-Browser verwenden, um auf VMs zuzugreifen

  1. Konfigurieren Sie den Chrome-Browser mit einer der folgenden Optionen.
  2. Geben Sie im Chrome-Browser die folgende Domain ein, um auf die Google Cloud Console zuzugreifen: console-secure.cloud.google.com.
  3. Google Cloud Auf VMs über IAP-Tunneling zugreifen

Clientzertifikate in der gcloud CLI für den Zugriff auf VMs verwenden

  1. Konfigurieren Sie die gcloud CLI mit einer der folgenden Methoden.

  2. Google Cloud Auf VMs über IAP-Tunneling zugreifen