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
Ö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 und dann die zuvor erstellte zertifikatbasierte Zugriffsebene 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 Verwenden der IAM API für das Verwalten von Zugriffsrichtlinien 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 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 Rolleiap.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
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 mithilfe von Clientzertifikaten auf VMs zuzugreifen.
- Unternehmenszertifikate verwenden: Verwenden Sie diese Methode, wenn Sie eine PKI-Infrastruktur haben.
- Von der Endpunktprüfung bereitgestellte Zertifikate verwenden: Verwenden Sie diese Methode, wenn Sie keine PKI-Infrastruktur haben. Die Endpunktprüfung stellt für jedes Gerät automatisch selbst signierte Zertifikate bereit und registriert sie beiGoogle Cloud .
Clientzertifikate im Chrome-Browser verwenden, um auf VMs zuzugreifen
- Konfigurieren Sie den Chrome-Browser mit einer der folgenden Optionen.
- Geben Sie im Chrome-Browser die folgende Domain ein, um auf die Google Cloud Console zuzugreifen:
console-secure.cloud.google.com
. - Google Cloud Auf VMs über IAP-Tunneling zugreifen
Clientzertifikate in der gcloud CLI für den Zugriff auf VMs verwenden
Konfigurieren Sie die gcloud CLI mit einer der folgenden Methoden.
Google Cloud Auf VMs über IAP-Tunneling zugreifen