Auf dieser Seite wird beschrieben, wie Sie den zertifikatbasierten Zugriff (Certificate-Based Access, CBA) für Ihre Google Cloud -VMs aktivieren. Mit der clientzertifikatbasierten Authentifizierung können Sie den Zugriff von vertrauenswürdigen Geräten auf Google Cloud -VMs sichern.
Übersicht
Bei der clientzertifikatbasierten Authentifizierung für VMs wird die Funktion Google Cloud Kontextsensitiver Zugriff verwendet, um den Zugriff mit gegenseitiger TLS (mTLS) zu sichern. Im Folgenden finden Sie die Hauptkomponenten, mit denen Sie die clientbasierte Authentifizierung für VMs aktivieren und verwenden:
- Access Context Manager: Hiermit 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 einrichten dürfen und welche Zugriffsbedingungen die Nutzer erfüllen müssen, um solche Tunnel zu verwenden.
- Chrome Enterprise-Richtlinie: Ermöglicht die gegenseitige Authentifizierung (mTLS) zwischen Nutzern und VMs bei Verwendung des Chrome-Browsers.
- Google Cloud CLI: Bietet bei Verwendung der gcloud CLI eine gegenseitige Authentifizierung (mTLS) zwischen Nutzern und VMs.
Hinweise
Achten Sie darauf, dass Sie Zugriffsebenen für die kontenbasierte Abrechnung 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 die entsprechenden IAM-Rollen (Identity and Access Management) für ein Projekt zuweisen, damit Nutzer oder Nutzergruppen über IAP-TCP-Weiterleitung auf VMs zugreifen 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 | OS Login-Rollen 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, Sie müssen jedoch 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 für das Projekt gewährt werden.
Console
Öffnen Sie die IAP-Administratorseite und wählen Sie den Tab SSH- und TCP-Ressourcen aus.
Wählen Sie die VM-Instanzen aus, die Sie konfigurieren möchten. Falls das Infofeld nicht sichtbar ist, klicken Sie auf Infofeld ansehen.
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.
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 aus und wählen Sie dann die zuvor erstellte Zugriffsebene für den zertifikatbasierten Zugriff aus.
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 Verwalten von Zugriffsrichtlinien mit der IAM API finden Sie unter Zugriff auf Ressourcen verwalten, die mit IAP gesichert sind.
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
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 inPOST
anstelle vonGET
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 ''
Weisen Sie Ihren Identitäten die Rolle
iap.tunnelResourceAccessor
zu und gewähren Sie ihnen zertifikatbasierten Zugriff, indem Sie die JSON-Datei der IAM-Richtlinie ändern.Im Folgenden finden Sie ein Beispiel für eine
policy.json
-Datei, die die Rolleiap.tunnelResourceAccessor
einer Gruppe von VM-Instanzadministratoren zuweist und ihnen zertifikatbasierten Zugriff auf durch IAP gesicherte Tunnelressourcen gewährt.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 einen Richtliniennamen zu finden.GET https://accesscontextmanager.googleapis.com/v1/accessPolicies
Legen Sie die neue Datei
policy.json
mit der MethodesetIamPolicy
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 mit Clientzertifikaten auf VMs zuzugreifen.
- Unternehmenszertifikate verwenden: Verwenden Sie diese Methode, wenn Sie eine PKI-Infrastruktur haben.
- Mit der Endpunktprüfung bereitgestellte Zertifikate verwenden: Verwenden Sie diese Methode, wenn Sie keine PKI-Infrastruktur haben. Mit der Endpunktprüfung werden selbst signierte Zertifikate automatisch für jedes Gerät bereitgestellt und beiGoogle Cloud registriert.
Clientzertifikate im Chrome-Browser für den Zugriff auf VMs verwenden
- Konfigurieren Sie den Chrome-Browser mit einer der folgenden Optionen.
- Geben Sie im Chrome-Browser die folgende Domain ein, um auf dieGoogle Cloud -Konsole zuzugreifen:
console-secure.cloud.google.com
. - Greifen Sie mit IAP-Tunneling auf Google Cloud -VMs zu.
Clientzertifikate in der gcloud CLI für den Zugriff auf VMs verwenden
Konfigurieren Sie die gcloud CLI mit einer der folgenden Methoden.
Greifen Sie mit IAP-Tunneling auf Google Cloud -VMs zu.