Ce document présente en détail le connecteur client BeyondCorp Enterprise et explique comment l'activer.
Présentation
BeyondCorp Enterprise est la solution zéro confiance de Google qui fournit un accès sécurisé aux applications privées avec protection des données et contre les menaces intégrées. BeyondCorp Enterprise assure la sécurité de l'ensemble des applications Web (HTTPS) à l'aide de Chrome.
Le connecteur client BeyondCorp Enterprise étend la compatibilité aux applications non Web en créant une connexion sécurisée aux applications s'exécutant dans des environnements Google Cloud et non-Google Cloud, et en bénéficiant d'un accès contextuel complet et d'un accès contextuel.
Fonctionnement
Voici les principaux composants du connecteur client:
Validation des points de terminaison et agent client : le connecteur client est intégré à Endpoint Verification, qui est une extension Chrome avec un agent léger natif qui s'exécute sur les ordinateurs portables ou les ordinateurs de bureau des utilisateurs, et qui fournit des informations sur les appareils. La validation des points de terminaison sert également de plan de contrôle permettant à l'utilisateur final de démarrer et d'arrêter les connexions aux passerelles clientes.
Passerelles clientes : composants régionaux côté serveur, auxquels les clients peuvent se connecter. Les passerelles clientes sont déployées par les administrateurs. Les passerelles communiquent avec le système d'application forcée de BeyondCorp Enterprise pour appliquer des contrôles contextuels. Le système d'application de BeyondCorp Enterprise utilise Identity-Aware Proxy et Access Context Manager, un moteur de règles flexible de confiance BeyondCorp Enterprise.
Le trafic à destination des applications protégées depuis les appareils des utilisateurs finaux (client) est envoyé via un canal sécurisé via la passerelle. Vous pouvez vous connecter à des applications Web et non Web exécutées dans Google Cloud ou en dehors de Google Cloud. Vous pouvez utiliser Cloud VPN ou Cloud Interconnect pour vous connecter à vos applications qui ne sont pas dans Google Cloud.
Avant de commencer
Avant de commencer à activer le connecteur client BeyondCorp Enterprise, assurez-vous de disposer des éléments suivants:
Un domaine d'organisation Google Cloud.
Un projet Google Cloud avec la facturation attribuée.
Comptes Cloud Identity de Google Workspace Si vous devez créer des comptes Cloud Identity, consultez la page Créer des comptes utilisateur Cloud Identity.
Ressource non Web que vous souhaitez protéger. La ressource peut être native dans Google Cloud, sur site ou dans un autre cloud public. Vous pouvez créer un VPC personnalisé ou utiliser votre réseau existant avec une application sur Google Cloud. Vous pouvez également connecter votre application autre que Google Cloud à l'aide de Cloud VPN ou de Cloud Interconnect.
Les API suivantes ont été activées:
- API Compute Engine:
compute.googleapis.com
- API BeyondCorp Enterprise:
beyondcorp.googleapis.com
- API Service Networking :
servicenetworking.googleapis.com
- API Access Context Manager :
accesscontextmanager.googleapis.com
- API Compute Engine:
Les rôles IAM suivants:
Au niveau du projet: Administrateur de réseaux Compute (
roles/compute.networkAdmin
), Administrateur de connecteur client BeyondCorp (roles/beyondcorp.clientConnectorAdmin
)Vous ne pouvez attribuer le rôle d'administrateur de connecteur client BeyondCorp qu'en utilisant la CLI Google Cloud avec la commande
gcloud projects add-iam-policy-binding
.Niveau Organisation: Administrateur Access Context Manager (
roles/accesscontextmanager.policyAdmin
)
Une des configurations matérielles recommandées pour le client:
- Apple Mac OS 10.11 et versions ultérieures avec au moins deux cœurs et 2 Go de mémoire.
- Microsoft Windows 10 et versions ultérieures avec un minimum de quatre cœurs et 2 Go de mémoire.
Activer le connecteur client BeyondCorp Enterprise
Configurer l'accès aux services privés
Le connecteur de client utilise l'accès au service privé pour activer la connectivité entre le réseau VPC géré par Google et le réseau VPC consommateur. Cela garantit que le trafic des utilisateurs est acheminé vers le réseau VPC du client.
L'accès au service privé nécessite la réservation d'une plage d'adresses IP de sorte qu'il n'y ait aucun conflit d'adresses IP entre votre réseau VPC et le réseau VPC géré par Google. Exécutez la commande suivante pour allouer une plage d'adresses IP:
gcloud compute addresses create RESERVED_RANGE \ --network=CONSUMER_NETWORK \ --project=CONSUMER_PROJECT \ --prefix-length=16 \ --purpose=VPC_PEERING \ --global
Remplacez les éléments suivants :
- RESERVED_RANGE: nom de la plage d'adresses IP à réserver pour l'appairage de VPC. Le nom ne peut contenir que des lettres minuscules, des chiffres et des traits d'union.
- CONSUMER_NETWORK : nom du réseau VPC connecté à l'application.
- CONSUMER_PROJECT : ID du projet qui héberge l'objet
CONSUMER_NETWORK
.
Créez la connexion d'appairage du VPC en exécutant la commande suivante:
gcloud services vpc-peerings connect \ --network=CONSUMER_NETWORK \ --project=CONSUMER_PROJECT \ --ranges=RESERVED_RANGE \ --service="servicenetworking.googleapis.com"
Remplacez les éléments suivants :
- CONSUMER_NETWORK: nom du réseau VPC connecté à l'application.
- CONSUMER_PROJECT: ID du projet qui héberge l'objet
CONSUMER_NETWORK
. - RESERVED_RANGE : nom de la plage réservée pour l'appairage de VPC.
Obtenez les détails de la plage d'adresses IP allouées en exécutant la commande suivante:
gcloud compute addresses describe RESERVED_RANGE \ --global \ --project=CONSUMER_PROJECT
Remplacez les éléments suivants :
- RESERVED_RANGE : nom de la plage réservée pour l'appairage de VPC.
- CONSUMER_PROJECT: ID du projet qui héberge l'objet
CONSUMER_NETWORK
.
Utilisez les valeurs
address
etprefixLength
du résultat de l'étape précédente pour représenter la plage d'adresses IP allouée au format CIDR, puis exécutez la commande suivante pour créer une règle de pare-feu: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
Remplacez les éléments suivants :
- CONSUMER_NETWORK: nom du réseau VPC connecté à l'application.
- CONSUMER_PROJECT : ID du projet qui héberge l'objet
CONSUMER_NETWORK
.
Pour en savoir plus sur la configuration des règles de pare-feu, consultez la page Utiliser des règles de pare-feu.
Configurer les ressources du connecteur client
Il existe deux types de ressources : le service de connecteur client et la passerelle client.
Le service du connecteur client permet de définir une configuration commune pour un groupe de passerelles clientes. Les passerelles clientes font référence au service du connecteur client et servent à contrôler les régions dans lesquelles vous souhaitez gérer le trafic utilisateur.
Pour le moment, un seul service de connecteurs client est autorisé par domaine, et une seule passerelle cliente par région et par service du connecteur client est autorisée. De plus, vous ne pouvez utiliser que les régions suivantes pour héberger les ressources de passerelle et de service client de connecteur que vous utilisez: asia-east1
, europe-west1
, us-east1
et us-central1
.
Créez le service de connecteur client en exécutant la commande suivante:
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
Remplacez les éléments suivants :
- DESTINATION_ADDRESS: adresse hôte du sous-réseau de destination hébergeant l'application. Par exemple, si votre application utilise
10.0.0.0/28
, l'adresse est10.0.0.0
. - DESTINATION_MASK : masque de réseau du sous-réseau de destination hébergeant l'application. Par exemple, si votre application utilise
10.0.0.0/28
, le masque est255.255.255.240
. - CONSUMER_PROJECT: ID du projet qui héberge l'objet
CONSUMER_NETWORK
. - CONSUMER_NETWORK: nom du réseau VPC connecté à l'application.
- SERVICE_LOCATION : la région dans laquelle le service de connecteur client sera créé.
- CLIENT_CONNECTOR_SERVICE_NAME: nom du service de connecteur client.
- DESTINATION_ADDRESS: adresse hôte du sous-réseau de destination hébergeant l'application. Par exemple, si votre application utilise
Vérifiez que le service de connecteur client a été créé en répertoriant les informations de service à l'aide de la commande suivante:
GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices
Remplacez les éléments suivants :
- CONSUMER_PROJECT : ID du projet qui héberge l'objet
CONSUMER_NETWORK
. - SERVICE_LOCATION: la région dans laquelle se trouve le service du connecteur client.
- CONSUMER_PROJECT : ID du projet qui héberge l'objet
(Facultatif) Supprimez un service de connecteur client en exécutant la commande suivante:
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
Remplacez les éléments suivants :
- CONSUMER_PROJECT : ID du projet qui héberge l'objet
CONSUMER_NETWORK
. - SERVICE_LOCATION: la région dans laquelle se trouve le service du connecteur client.
- CLIENT_CONNECTOR_SERVICE_NAME : nom du service de connecteur client.
- CONSUMER_PROJECT : ID du projet qui héberge l'objet
Créez une ou plusieurs passerelles clientes en exécutant la commande suivante aussi souvent que nécessaire:
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
Remplacez les éléments suivants :
- CONSUMER_PROJECT : ID du projet qui héberge l'objet
CONSUMER_NETWORK
. - SERVICE_LOCATION : la région dans laquelle se trouve le service du connecteur client.
- CLIENT_CONNECTOR_SERVICE_NAME: nom du service de connecteur client.
- GATEWAY_LOCATION : région dans laquelle la passerelle cliente sera créée.
- CLIENT_GATEWAY_NAME : nom de votre passerelle client.
Cette étape peut prendre quelques minutes.
- CONSUMER_PROJECT : ID du projet qui héberge l'objet
Vérifiez que les passerelles clientes sont opérationnelles en exécutant la commande suivante:
GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways
Remplacez les éléments suivants :
- CONSUMER_PROJECT : ID du projet qui héberge l'objet
CONSUMER_NETWORK
. - GATEWAY_LOCATION : région dans laquelle se trouve la passerelle cliente.
- CONSUMER_PROJECT : ID du projet qui héberge l'objet
(Facultatif) Supprimez une passerelle client en exécutant la commande suivante:
DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://beyondcorp.googleapis.com/v1alpha/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways/CLIENT_GATEWAY_NAME
Remplacez les éléments suivants :
- CONSUMER_PROJECT: ID du projet qui héberge l'objet
CONSUMER_NETWORK
. - GATEWAY_LOCATION: région où se trouve la passerelle du connecteur client.
- CLIENT_GATEWAY_NAME: nom de votre passerelle client.
- CONSUMER_PROJECT: ID du projet qui héberge l'objet
Configurer des règles d'accès contextuel
Déterminez les comptes principaux ou créez un groupe d'utilisateurs. Identifiez les utilisateurs qui ont besoin d'accéder aux applications non Web protégées. Vous pouvez également créer un groupe d'utilisateurs pour simplifier la configuration et la gestion.
(Facultatif) Créez un niveau d'accès dans Access Context Manager pour définir une règle d'accès contextuel que vous pouvez utiliser pour restreindre l'accès à votre application.
Configurez une stratégie IAM pour la ressource du service de connecteur client, puis accordez au compte principal ou au groupe d'utilisateurs le rôle (
roles/beyondcorp.clientConnectorServiceUser
) requis pour accéder aux applications non Web. Vous pouvez éventuellement spécifier une condition IAM pour provisionner le rôle uniquement lorsqu'un niveau d'accès est satisfait. Pour mettre à jour la stratégie IAM d'une ressource, utilisez le modèle lecture-modification-écriture suivant:Lisez la stratégie existante. La méthode
getIamPolicy()
lit la stratégie IAM existante pour la ressource du service du connecteur client danspolicy.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
Remplacez les éléments suivants :
- CONSUMER_PROJECT: ID du projet qui héberge l'objet
CONSUMER_NETWORK
. - SERVICE_LOCATION: la région dans laquelle se trouve le service du connecteur client.
- CLIENT_CONNECTOR_SERVICE_NAME: nom de votre service de connecteur client.
- CONSUMER_PROJECT: ID du projet qui héberge l'objet
Modifiez la stratégie renvoyée. Mettez à jour les liaisons dans
policy.json
pour inclure la nouvelle attribution de rôle IAM. Vous pouvez le faire dans un éditeur de texte ou par programmation. Exemple :{ "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" } } ] } }
Écrivez la stratégie mise à jour. Vous pouvez utiliser la méthode
setIamPolicy()
pour écrire la stratégie IAM mise à jour. Exemple :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
Remplacez les éléments suivants :
- CONSUMER_PROJECT : ID du projet qui héberge l'objet
CONSUMER_NETWORK
. - SERVICE_LOCATION : la région dans laquelle se trouve le service du connecteur client.
- CLIENT_CONNECTOR_SERVICE_NAME: nom du service de connecteur client.
- CONSUMER_PROJECT : ID du projet qui héberge l'objet
Installer l'agent de connecteur client sur les appareils de point de terminaison (Windows ou macOS)
Activez l'extension Endpoint Verification en suivant la procédure décrite dans Configurer Endpoint Verification sur vos appareils.
Une fois la validation des points de terminaison opérationnelle, l'extension Endpoint Verification de l'utilisateur mis à jour affiche un bouton START CONNECTION (Démarrer une connexion). Pour accéder à l'application non Web protégée, les utilisateurs peuvent cliquer sur le bouton START CONNECTION (Démarrer une connexion).
Lorsqu'un utilisateur établit une connexion pour la première fois, la validation des points de terminaison l'invite à télécharger et à installer les fichiers binaires du connecteur client. Vous pouvez également télécharger les binaires du connecteur client aux URL suivantes:
Une fois la connexion établie, l'utilisateur peut accéder à la ressource protégée. Les utilisateurs peuvent choisir d'y mettre fin en cliquant sur le bouton END CONNECTION (Terminer la connexion).