Dieses Dokument bietet eine allgemeine Übersicht über den BeyondCorp Enterprise-Client-Connector und beschreibt, wie er aktiviert wird.
Übersicht
BeyondCorp Enterprise ist die Zero-Trust-Lösung von Google, die sicheren Zugriff auf private Anwendungen mit integriertem Bedrohungs- und Datenschutz bietet. BeyondCorp Enterprise bietet mithilfe von Chrome sicheren Zugriff für alle webbasierten Anwendungen (HTTPS).
Der BeyondCorp Enterprise-Client-Connector erweitert die Unterstützung auf Nicht-Webanwendungen durch Erstellen einer sicheren Verbindung zu Anwendungen, die sowohl in Google Cloud- als auch in Nicht-Google Cloud-Umgebungen ausgeführt werden, mit vollständigem Kontext und identitätssensitivem Zugriff.
Funktionsweise
Die folgenden Komponenten bilden den Client-Connector:
Endpunktprüfung und Client-Agent: Der Client-Connector ist in die Endpunktprüfung eingebunden, eine Chrome-Erweiterung mit einem nativen, einfachen Agent, der auf Nutzer-Laptops oder Desktops ausgeführt wird und Geräteinformationen meldet. Die Endpunktprüfung dient auch als Steuerungsebene für den Endnutzer, um Verbindungen zu Client-Gateways zu starten und zu beenden.
Client-Gateways: Regionale, serverseitige Komponenten, zu denen Clients eine Verbindung herstellen können. Client-Gateways werden von Administratoren bereitgestellt. Die Gateways kommunizieren mit dem BeyondCorp Enterprise-Erzwingungssystem, um kontextsensitive Prüfungen zu erzwingen. Das BeyondCorp Enterprise-Erzwingungssystem verwendet Identity-Aware Proxy und Access Context Manager, eine flexible Zero-Trust-Richtlinien-Engine von BeyondCorp Enterprise.
Traffic von geschützten Geräten (Client) an Ihre geschützten Anwendungen wird über einen sicheren Kanal über das Gateway gesendet. Sie können eine Verbindung zu Webanwendungen und anderen Webanwendungen herstellen, die in Google Cloud oder außerhalb von Google Cloud ausgeführt werden. Sie können Cloud VPN oder Cloud Interconnect verwenden, um eine Verbindung zu Ihren Anwendungen herzustellen, die nicht in Google Cloud enthalten sind.
Hinweis
Bevor Sie mit dem Aktivieren des BeyondCorp Enterprise-Client-Connectors beginnen, müssen folgende Voraussetzungen erfüllt sein:
Eine Google Cloud-Organisationsdomain.
Ein Google Cloud-Projekt mit zugewiesener Abrechnung.
Google Workspace-Cloud Identity-Nutzerkonten Informationen zum Erstellen von Cloud Identity-Konten finden Sie unter Cloud Identity-Nutzerkonten erstellen.
Eine Nicht-Webressource, die Sie schützen möchten. Die Ressource kann nativ in Google Cloud, lokal oder in einer anderen öffentlichen Cloud sein. Sie können eine benutzerdefinierte VPC erstellen oder Ihr vorhandenes Netzwerk mit einer Anwendung in Google Cloud verwenden. Sie können auch eine damit verbundene Nicht-Google Cloud-Anwendung über Cloud VPN oder Cloud Interconnect verbinden.
Die folgenden APIs sind aktiviert:
- Compute Engine APIs:
compute.googleapis.com
- BeyondCorp Enterprise APIs:
beyondcorp.googleapis.com
- Service Networking-APIs:
servicenetworking.googleapis.com
- Access Context Manager-APIs:
accesscontextmanager.googleapis.com
- Compute Engine APIs:
Die folgenden IAM-Rollen:
Projektebene: Compute-Netzwerkadministrator (
roles/compute.networkAdmin
), BeyondCorp Client Connector-Administrator (roles/beyondcorp.clientConnectorAdmin
)Sie können die Administratorrolle für BeyondCorp Client Connector nur mithilfe der Google Cloud-Befehlszeile mit dem Befehl
gcloud projects add-iam-policy-binding
zuweisen.Organisationsebene: Access Context Manager-Administrator (
roles/accesscontextmanager.policyAdmin
)
Eine der empfohlenen Hardwarekonfigurationen für den Client:
- Apple Mac OS 10.11 und höher mit mindestens zwei Kernen und 2 GB Arbeitsspeicher
- Microsoft Windows 10 und höher mit mindestens vier Kernen und 2 GB Arbeitsspeicher
BeyondCorp Enterprise-Client-Connector aktivieren
Privaten Dienstzugriff einrichten
Der Client-Connector verwendet den Zugriff auf private Dienste, um Verbindungen zwischen dem von Google verwalteten VPC-Netzwerk und dem Nutzer-VPC-Netzwerk zu ermöglichen. Dadurch wird der Traffic von Nutzern an das Nutzer-VPC-Netzwerk weitergeleitet.
Für den privaten Dienstzugriff müssen Sie einen IP-Adressbereich reservieren, damit keine IP-Adresskonflikte zwischen Ihrem VPC-Netzwerk und dem von Google verwalteten VPC-Netzwerk auftreten. Führen Sie den folgenden Befehl aus, um einen IP-Bereich zuzuweisen:
gcloud compute addresses create RESERVED_RANGE \ --network=CONSUMER_NETWORK \ --project=CONSUMER_PROJECT \ --prefix-length=16 \ --purpose=VPC_PEERING \ --global
Ersetzen Sie Folgendes:
- RESERVED_RANGE: Der Name des IP-Adressbereichs, der für VPC-Peering reserviert werden soll. Der Name darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten.
- CONSUMER_NETWORK: Der Name des VPC-Netzwerks, das mit der Anwendung verbunden ist.
- CONSUMER_PROJECT: Die ID Ihres Projekts, das den
CONSUMER_NETWORK
hostet.
Erstellen Sie die VPC-Peering-Verbindung mit dem folgenden Befehl:
gcloud services vpc-peerings connect \ --network=CONSUMER_NETWORK \ --project=CONSUMER_PROJECT \ --ranges=RESERVED_RANGE \ --service="servicenetworking.googleapis.com"
Ersetzen Sie Folgendes:
- CONSUMER_NETWORK: Der Name des VPC-Netzwerks, das mit der Anwendung verbunden ist.
- CONSUMER_PROJECT: Die ID Ihres Projekts, das den
CONSUMER_NETWORK
hostet. - RESERVED_RANGE: Der Name des reservierten Bereichs für VPC-Peering.
Rufen Sie mit dem folgenden Befehl die Details des zugewiesenen IP-Bereichs ab:
gcloud compute addresses describe RESERVED_RANGE \ --global \ --project=CONSUMER_PROJECT
Ersetzen Sie Folgendes:
- RESERVED_RANGE: Der Name des reservierten Bereichs für VPC-Peering.
- CONSUMER_PROJECT: Die ID Ihres Projekts, das den
CONSUMER_NETWORK
hostet.
Verwenden Sie die Werte
address
undprefixLength
aus der Ausgabe im vorherigen Schritt, um den zugewiesenen IP-Bereich im CIDR-Format darzustellen. Führen Sie dann den folgenden Befehl aus, um eine Firewallregel zu erstellen:gcloud compute firewall-rules create "allow-peered-ingress" \ --network=CONSUMER_NETWORK \ --project=CONSUMER_PROJECT \ --direction ingress \ --action allow \ --source-ranges={Allocated IP range in CIDR format i.e. address/prefixLength} \ --rules=all
Ersetzen Sie Folgendes:
- CONSUMER_NETWORK: Der Name des VPC-Netzwerks, das mit der Anwendung verbunden ist.
- CONSUMER_PROJECT: Die ID Ihres Projekts, das den
CONSUMER_NETWORK
hostet.
Informationen zum Konfigurieren von Firewallregeln finden Sie unter Firewallregeln verwenden.
Client-Connector-Ressourcen einrichten
Es gibt zwei Arten von Ressourcen: den Client-Connector-Dienst und das Client-Gateway.
Mit dem Client-Connector-Dienst wird eine gemeinsame Konfiguration für eine Gruppe von Client-Gateways definiert. Client-Gateways beziehen sich auf den Client-Connector-Dienst und werden verwendet, um die Regionen zu steuern, in denen Sie den Nutzertraffic verwalten möchten.
Derzeit ist nur ein Client-Connector-Dienst pro Domain und ein Client-Gateway pro Region und Client-Connector-Dienst zulässig. Außerdem können Sie die folgenden Regionen nur zum Hosten des Client-Connector-Dienstes und der Gateway-Ressourcen verwenden: asia-east1
, europe-west1
, us-east1
und us-central1
.
Erstellen Sie den Client-Connector-Dienst mit dem folgenden Befehl:
POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d "{ingress:{config:{transport_protocol: \"TCP\", destination_routes:[{address:\"DESTINATION_ADDRESS\", netmask:\"DESTINATION_MASK\"}]}},egress:{peered_vpc:{network_vpc:\"projects/CONSUMER_PROJECT/global/networks/CONSUMER_NETWORK\"}}}" \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices?client_connector_service_id=CLIENT_CONNECTOR_SERVICE_NAME
Ersetzen Sie Folgendes:
- DESTINATION_ADDRESS: Die Hostadresse des Zielsubnetzes, das die Anwendung hostet. Wenn Ihre Anwendung beispielsweise
10.0.0.0/28
verwendet, lautet die Adresse10.0.0.0
. - DESTINATION_MASK: Die Netzwerkmaske des Zielsubnetzes, das die Anwendung hostet. Wenn Ihre Anwendung beispielsweise
10.0.0.0/28
verwendet, lautet die Maske255.255.255.240
. - CONSUMER_PROJECT: Die ID Ihres Projekts, das den
CONSUMER_NETWORK
hostet. - CONSUMER_NETWORK: Der Name des VPC-Netzwerks, das mit der Anwendung verbunden ist.
- SERVICE_LOCATION: Region, in der der Client-Connector-Dienst erstellt wird.
- CLIENT_CONNECTOR_SERVICE_NAME: Der Name des Client-Connector-Dienstes.
- DESTINATION_ADDRESS: Die Hostadresse des Zielsubnetzes, das die Anwendung hostet. Wenn Ihre Anwendung beispielsweise
Prüfen Sie mit dem folgenden Befehl, ob der Client-Connector-Dienst erstellt wurde, indem Sie die Dienstinformationen auflisten:
GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices
Ersetzen Sie Folgendes:
- CONSUMER_PROJECT: Die ID Ihres Projekts, das den
CONSUMER_NETWORK
hostet. - SERVICE_LOCATION: Region, in der sich der Client-Connector-Dienst befindet.
- CONSUMER_PROJECT: Die ID Ihres Projekts, das den
Optional: Entfernen Sie einen Client-Connector-Dienst mit dem folgenden Befehl:
DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME
Ersetzen Sie Folgendes:
- CONSUMER_PROJECT: Die ID Ihres Projekts, das den
CONSUMER_NETWORK
hostet. - SERVICE_LOCATION: Region, in der sich der Client-Connector-Dienst befindet.
- CLIENT_CONNECTOR_SERVICE_NAME: Der Name des Client-Connector-Dienstes.
- CONSUMER_PROJECT: Die ID Ihres Projekts, das den
Erstellen Sie ein oder mehrere Client-Gateways, indem Sie den folgenden Befehl so oft wie nötig ausführen:
POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d "{client_connector_service: \"projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME\"}" \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways?client_gateway_id=CLIENT_GATEWAY_NAME
Ersetzen Sie Folgendes:
- CONSUMER_PROJECT: Die ID Ihres Projekts, das den
CONSUMER_NETWORK
hostet. - SERVICE_LOCATION: Region, in der sich der Client-Connector-Dienst befindet.
- CLIENT_CONNECTOR_SERVICE_NAME: Der Name des Client-Connector-Dienstes.
- GATEWAY_LOCATION: Die Region, in der das Client-Gateway erstellt wird.
- CLIENT_GATEWAY_NAME: Der Name Ihres Client-Gateways.
Dieser Schritt kann mehrere Minuten dauern.
- CONSUMER_PROJECT: Die ID Ihres Projekts, das den
Prüfen Sie mit dem folgenden Befehl, ob die Client-Gateways ausgeführt werden:
GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways
Ersetzen Sie Folgendes:
- CONSUMER_PROJECT: Die ID Ihres Projekts, das den
CONSUMER_NETWORK
hostet. - GATEWAY_LOCATION: Die Region, in der sich das Client-Gateway befindet.
- CONSUMER_PROJECT: Die ID Ihres Projekts, das den
(Optional) Entfernen Sie ein Client-Gateway, indem Sie den folgenden Befehl ausführen:
DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways/CLIENT_GATEWAY_NAME
Ersetzen Sie Folgendes:
- CONSUMER_PROJECT: Die ID Ihres Projekts, das den
CONSUMER_NETWORK
hostet. - GATEWAY_LOCATION: Region, in der sich das Client-Connector-Gateway befindet.
- CLIENT_GATEWAY_NAME: Der Name Ihres Client-Gateways.
- CONSUMER_PROJECT: Die ID Ihres Projekts, das den
Kontextsensitive Zugriffsrichtlinien einrichten
Ermitteln Sie die Hauptkonten oder erstellen Sie eine Nutzergruppe. Ermitteln Sie die Nutzer, die Zugriff auf die geschützten Nicht-Webanwendungen benötigen. Sie können auch eine Nutzergruppe erstellen, um die Konfiguration und Verwaltung zu vereinfachen.
(Optional) Erstellen Sie in Access Context Manager eine Zugriffsebene, um eine kontextsensitive Regel zu definieren, mit der Sie den Zugriff auf Ihre Anwendung einschränken können.
Konfigurieren Sie eine IAM-Richtlinie für die Dienstressource des Client-Connectors und gewähren Sie dem Hauptnutzer oder der Nutzergruppe die Rolle (
roles/beyondcorp.clientConnectorServiceUser
), die für den Zugriff auf Nicht-Webanwendungen erforderlich ist. Optional können Sie eine IAM-Bedingung angeben, um die Rolle nur bereitzustellen, wenn eine Zugriffsebene erfüllt ist. Verwenden Sie das folgende Read-Modify-Write-Muster, um die IAM-Richtlinie für eine Ressource zu aktualisieren:Lesen Sie die vorhandene Richtlinie. Die Methode
getIamPolicy()
liest die vorhandene IAM-Richtlinie für die Dienstressource des Client-Connectors inpolicy.json
.GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME:getIamPolicy > policy.json
Ersetzen Sie Folgendes:
- CONSUMER_PROJECT: Die ID Ihres Projekts, das den
CONSUMER_NETWORK
hostet. - SERVICE_LOCATION: Region, in der sich der Client-Connector-Dienst befindet.
- CLIENT_CONNECTOR_SERVICE_NAME: Der Name des Client-Connector-Dienstes.
- CONSUMER_PROJECT: Die ID Ihres Projekts, das den
Bearbeiten Sie die zurückgegebene Richtlinie. Aktualisieren Sie die Bindungen in
policy.json
so, dass die neue IAM-Rollenzuweisung enthalten ist. Sie können dies in einem Texteditor oder programmatisch tun. Beispiel:{ "policy": { "bindings": [ { "role": "roles/beyondcorp.clientConnectorServiceUser", "members": [ "user:EXAMPLE_USER@EXAMPLE.COM", "group:EXAMPLE_GROUP@EXAMPLE.COM", ], "condition": { "expression": "'accessPolicies/ORGANIZATION_NUMBER/accessLevels/ACCESS_LEVEL_NAME' in request.auth.access_levels", "title": "CONDITION_NAME" } } ] } }
Schreiben Sie die aktualisierte Richtlinie. Sie können die Methode
setIamPolicy()
verwenden, um die aktualisierte IAM-Richtlinie zu schreiben. Beispiel:POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @policy.json \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME:setIamPolicy
Ersetzen Sie Folgendes:
- CONSUMER_PROJECT: Die ID Ihres Projekts, das den
CONSUMER_NETWORK
hostet. - SERVICE_LOCATION: Region, in der sich der Client-Connector-Dienst befindet.
- CLIENT_CONNECTOR_SERVICE_NAME: Der Name des Client-Connector-Dienstes.
- CONSUMER_PROJECT: Die ID Ihres Projekts, das den
Client-Connector-Agent auf Endpunktgeräten installieren (Windows oder macOS)
Aktivieren Sie die Erweiterung Endpunktprüfung“ mithilfe der Anleitung unter Endpunktprüfung auf Ihren Geräten einrichten.
Nachdem die Endpunktprüfung ausgeführt wurde, wird für den aktualisierten Nutzer die Erweiterung Endpunktprüfung angezeigt. Um auf die geschützte Nicht-Webanwendung zuzugreifen, können Nutzer auf die Schaltfläche VERBINDUNG STARTEN klicken.
Wenn ein Nutzer zum ersten Mal eine Verbindung initiiert, fordert der Nutzer die Endpunktprüfung auf, um die Binärdateien des Client-Connectors herunterzuladen und zu installieren. Alternativ können Sie die Client-Connector-Binärdateien unter den folgenden URLs herunterladen:
Nachdem eine Verbindung hergestellt wurde, kann ein Nutzer auf die geschützte Ressource zugreifen. Nutzer können die Verbindung trennen, indem sie auf die Schaltfläche VERBINDUNG BEENDEN klicken.