Ce document explique comment configurer une passerelle sécurisée Chrome Enterprise Premium pour sécuriser l'accès à vos applications Web privées.
Une passerelle sécurisée Chrome Enterprise Premium fonctionne comme un proxy inverse, appliquant un framework d'accès zéro confiance et offrant un contrôle précis et contextuel sur les personnes qui accèdent à vos applications Web privées.
Fonctionnement de la sécurisation de l'accès aux applications Web privées
En établissant un tunnel sécurisé et en appliquant des règles d'accès contextuel, la passerelle sécurisée protège les applications privées et les met à l'abri de l'exposition à l'Internet public. Une configuration de navigateur côté client dirige le trafic de ces applications via le point de terminaison du proxy de passerelle sécurisée. La passerelle sécurisée applique ensuite la règle d'accès appropriée et, si elle est autorisée, achemine la requête vers l'application de destination.
La passerelle sécurisée peut protéger les applications Web privées hébergées dans les environnements suivants :
Google Cloud project : la passerelle sécurisée peut permettre un accès direct aux applications qui s'exécutent dans votre réseau VPC Google Cloud .
Non-Google Cloud (centres de données sur site ou autres clouds) : vous devez d'abord établir une connexion entre votre réseau VPC privé surGoogle Cloud et le réseau non-Google Cloud . Cette opération est généralement effectuée à l'aide de Cloud VPN ou Cloud Interconnect. La passerelle sécurisée utilise ensuite la connexion pour envoyer le trafic à votre réseau VPC privé, qui le redirige à son tour vers l'environnement non-Google Cloud .
Avant de commencer
Avant de configurer la passerelle sécurisée, vérifiez que vous disposez des éléments suivants :
- Une licence Chrome Enterprise Premium
- Accès à la console d'administration Google avec un compte administrateur
- Un projet Google Cloud avec un compte de facturation attribué et l'API activée suivante : API BeyondCorp
Le rôle Identity and Access Management (IAM) suivant est accordé à l'administrateur qui effectue la configuration : Au niveau du projet : administrateur Cloud BeyondCorp (
beyondcorp.admin
).Pour les applications privées dans un environnement non-Google Cloud , une connexion Cloud VPN ou Cloud Interconnect entre votre environnementGoogle Cloud et l'environnement non-Google Cloud où réside votre application. Pour en savoir plus sur la configuration des connexions réseau, consultez les ressources suivantes :
Configurer votre environnement shell
Pour simplifier le processus de configuration et interagir avec les API de la passerelle sécurisée, définissez les variables d'environnement suivantes dans votre shell de travail.
Paramètres généraux
API="beyondcorp.googleapis.com" API_VERSION=v1 PROJECT_ID=
MY_PROJECT_ID
Remplacez les éléments suivants :
MY_PROJECT_ID
: ID du projet dans lequel la passerelle sécurisée est créée.
Paramètres de la passerelle sécurisée
SECURITY_GATEWAY_ID=
MY_SECURITY_GATEWAY_ID
SECURITY_GATEWAY_DISPLAY_NAME="MY_SECURITY_GATEWAY_DISPLAY_NAME
"Remplacez les éléments suivants :
MY_SECURITY_GATEWAY_ID
: ID de la passerelle sécurisée que vous souhaitez créer. L'ID peut comporter jusqu'à 63 caractères et peut contenir des lettres minuscules, des chiffres et des traits d'union. Le premier caractère doit être une lettre, et le dernier peut être une lettre ou un chiffre.MY_SECURITY_GATEWAY_DISPLAY_NAME
: nom lisible de la passerelle sécurisée. Le nom peut comporter jusqu'à 63 caractères et inclure des caractères imprimables.
Créer une passerelle sécurisée
Une passerelle sécurisée Chrome Enterprise Premium est un élément fondamental pour établir des connexions sécurisées à vos applications. Il alloue un projet et un réseau dédiés, ce qui assure l'isolation et la sécurité.
gcloud
gcloud beta beyondcorp security-gateways create ${SECURITY_GATEWAY_ID} \ --project=${PROJECT_ID} \ --location=global \ --display-name="${SECURITY_GATEWAY_DISPLAY_NAME}"
REST
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST \
-d '{ "display_name": "MY_SECURITY_GATEWAY_DISPLAY_NAME
" }' \
"https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways?security_gateway_id=${SECURITY_GATEWAY_ID}"
Configurer une application Web privée
Avant de pouvoir définir des ressources d'application spécifiques dans la passerelle sécurisée, vous devez configurer les autorisations et les paramètres réseau nécessaires pour activer la connectivité et le routage approprié.
Accordez des autorisations au compte de service.
Pour envoyer du trafic à votre réseau VPC, la passerelle de sécurité a besoin de certaines autorisations IAM accordées à son compte de service de délégation. Cela permet à la passerelle sécurisée d'accéder à vos applications privées, qu'elles soient hébergées dans un VPC Google Cloud ou dans un environnement non Google Cloud connecté via Cloud VPN ou Cloud Interconnect.Google Cloud
-
Obtenez les détails de votre passerelle sécurisée pour identifier l'adresse e-mail du compte de service de délégation. L'adresse e-mail se trouve dans le champ
delegatingServiceAccount
de la réponse.gcloud
gcloud beta beyondcorp security-gateways describe ${SECURITY_GATEWAY_ID} \ --project=${PROJECT_ID} \ --location=global
REST
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}"
-
Définissez des variables d'environnement pour le compte de service et votre projet VPC cible.
DELEGATING_SERVICE_ACCOUNT="security-gateway@my-gateway-service-account.iam.gserviceaccount.com" # Replace with actual value
-
Attribuez le rôle IAM
roles/beyondcorp.upstreamAccess
au compte de service déléguant dans votre projet VPC privé. Remplacezgcloud projects add-iam-policy-binding
PRIVATE_VPC_PROJECT_ID
\ --role=roles/beyondcorp.upstreamAccess \ --member=serviceAccount:${DELEGATING_SERVICE_ACCOUNT}PRIVATE_VPC_PROJECT_ID
par l'ID du projet du réseau VPC dans lequel l'application Web privée est déployée ou dans lequel Cloud VPN/Interconnect est configuré.
Une fois le rôle attribué, la prise en compte de la stratégie Identity and Access Management peut prendre environ deux minutes.
Configurer le routage réseau et les règles de pare-feu
Pour autoriser le trafic provenant de la passerelle sécurisée à atteindre vos applications Web privées, configurez les règles de pare-feu, le routage réseau et les paramètres DNS.
Règles de pare-feu pour les applications dans Google Cloud
Si votre application Web privée est hébergée dans votre réseau VPC Google Cloud , par exemple sur une VM Compute Engine, un service Google Kubernetes Engine avec une adresse IP interne ou derrière un équilibreur de charge TCP/UDP interne, configurez des règles de pare-feu VPCGoogle Cloud . Cela autorise le trafic TCP entrant provenant des plages d'adresses IP de la passerelle sécurisée : 34.158.8.0/21
et 136.124.16.0/20
.
Règles de pare-feu pour les applications dans des environnements non-Google Cloud
Si votre application Web privée réside dans un centre de données sur site ou sur le réseau d'un autre fournisseur de cloud, et qu'elle est connectée à votre réseau VPC Google Cloudà l'aide de Cloud VPN ou Cloud Interconnect, configurez des règles de pare-feu sur votre pare-feu sur site ou les contrôles de sécurité réseau équivalents, tels que les groupes de sécurité et les ACL réseau, dans l'autre environnement cloud. Cela autorise le trafic TCP entrant provenant des plages d'adresses IP de la passerelle sécurisée.
Configurer le routage des environnements non-Google Cloud vers une passerelle sécurisée
Pour faciliter la communication bidirectionnelle pour les applications privées hébergées dans des environnements nonGoogle Cloud , tels que sur site ou dans d'autres clouds, votre réseau externe doit créer un chemin de retour vers les plages d'adresses IP de passerelle sécurisée suivantes : 34.158.8.0/21
et 136.124.16.0/20
.
Vérifiez que votre réseau privé peut accéder aux plages d'adresses IP de la passerelle sécurisée via Cloud VPN ou Cloud Interconnect :
Routage dynamique : si vous utilisez le routage dynamique, tel que le protocole BGP (Border Gateway Protocol) avec Cloud Router, vérifiez que votre Cloud Router dans Google Cloud annonce explicitement les plages d'adresses IP de la passerelle sécurisée à votre appareil BGP sur site. Bien que BGP échange dynamiquement de nombreuses routes, les plages d'adresses IP de la passerelle sécurisée nécessitent une annonce explicite.
Routage statique : si vous utilisez des routes statiques, vous devez ajouter manuellement des routes pour chacune des plages d'adresses IP de la passerelle sécurisée sur l'équipement de votre réseau sur site, tel que votre routeur ou votre pare-feu. Ces routes statiques doivent spécifier que le trafic destiné aux plages d'adresses IP de la passerelle sécurisée doit être envoyé via la connexion Cloud VPN ou Cloud Interconnect.
Lorsque vous utilisez le routage statique, Cloud VPN doit se trouver dans l'une des régions compatibles suivantes :
africa-south1
asia-east1
asia-south1
asia-south2
asia-southeast1
europe-central2
europe-north1
europe-southwest1
europe-west1
europe-west2
europe-west3
europe-west4
europe-west8
europe-west9
northamerica-northeast1
northamerica-northeast2
northamerica-south1
southamerica-east1
southamerica-west1
us-central1
us-east1
us-east4
us-east5
us-west1
Configuration DNS pour la résolution de noms d'hôte privés de la passerelle sécurisée
Pour que la passerelle sécurisée puisse résoudre les noms d'hôte de votre application privée, votre réseau VPCGoogle Cloud doit pouvoir résoudre les noms d'hôte à l'aide de Cloud DNS. La configuration Cloud DNS spécifique dépend de l'emplacement où vos enregistrements DNS privés sont hébergés de manière autoritaire :
Applications dans Google Cloud utilisant des zones privées Cloud DNS : si vos applications privées sont hébergées dans Google Cloud et que leurs enregistrements DNS sont gérés dans des zones privées Cloud DNS associées à votre réseau VPC, vérifiez que les zones sont correctement configurées et accessibles. La passerelle sécurisée utilise les fonctionnalités de résolution Cloud DNS existantes de votre VPC.
Applications dans des environnements non-Google Cloud ou utilisant des serveurs DNS externes : si vos applications privées se trouvent dans des environnements non-Google Cloud(sur site ou dans d'autres clouds) ou si leurs enregistrements DNS sont gérés par des serveurs DNS externes aux zones privées Cloud DNS de votre VPC, vous devez configurer Cloud DNS pour qu'il transfère les requêtes pour ces domaines privés. Cela implique généralement de créer des zones de transfert Cloud DNS dans votre VPC. Ces zones redirigeront les requêtes DNS pour vos domaines privés spécifiés vers vos serveurs DNS privés faisant autorité, tels que les serveurs sur site ou d'autres clouds.
Pour obtenir des instructions détaillées sur la configuration du DNS, consultez Créer une zone de transfert.
Créer une ressource d'application
Pour fournir un accès à une application Web privée, vous devez établir l'application dans le framework de passerelle sécurisée en créant une ressource d'application. Cette ressource définit la manière dont la passerelle sécurisée identifie le trafic de votre application (en fonction du nom d'hôte) et où l'acheminer.
-
Définissez les variables d'environnement requises en exécutant la commande suivante :
Remplacez les éléments suivants :APPLICATION_ID=
MY_APPLICATION_ID
APP_DISPLAY_NAME="MY_APP_DISPLAY_NAME
" HOST_NAME=MY_HOST_NAME
PRIVATE_NETWORK_RESOURCE_NAME=MY_PRIVATE_NETWORK_RESOURCE_NAME
MY_APPLICATION_ID
: ID unique de la ressource d'application.MY_APP_DISPLAY_NAME
: nom lisible à afficher.MY_HOST_NAME
: nom d'hôte principal auquel les utilisateurs accèdent (par exemple,private.local
).MY_PRIVATE_NETWORK_RESOURCE_NAME
: nom complet de la ressource du réseau VPC (par exemple,projects/my-project/global/networks/my-network
).
-
Créez la ressource d'application.
gcloud
Exécutez la commande suivante pour créer la ressource d'application.
gcloud beta beyondcorp security-gateways applications create ${APPLICATION_ID} \ --project=${PROJECT_ID} \ --security-gateway=${SECURITY_GATEWAY_ID} \ --location=global \ --display-name="${APP_DISPLAY_NAME}" \ --endpoint-matchers="hostname=${HOST_NAME}" \ --upstreams=network=name="${PRIVATE_NETWORK_RESOURCE_NAME}"
Pour spécifier une région de sortie (par exemple, lorsque vous utilisez des routes statiques), ajoutez l'option
--egress-regions
:gcloud beta beyondcorp security-gateways applications create ${APPLICATION_ID} \ --project=${PROJECT_ID} \ --security-gateway=${SECURITY_GATEWAY_ID} \ --location=global \ --display-name="${APP_DISPLAY_NAME}" \ --endpoint-matchers="hostname=${HOST_NAME}" \ --upstreams=network=name="${PRIVATE_NETWORK_RESOURCE_NAME}",egressPolicy=regions=us-central1
Remplacez
us-central1
par la région Google Cloud (par exemple,europe-west1
ouasia-northeast1
) qui correspond à votre configuration de routage statique régional. Si vous n'avez pas d'exigences spécifiques en matière de routage statique régional, vous pouvez omettre la règle de sortie de votre configuration.REST
Pour créer une ressource d'application avec l'API, procédez comme suit :
Créez un fichier nommé
application.json
.{ "display_name": "
MY_APP_DISPLAY_NAME
", "endpoint_matchers": [ {"hostname": "MY_HOST_NAME
"} ], "upstreams": [{ "network": { "name": "MY_PRIVATE_NETWORK_RESOURCE_NAME
" } }] }Pour spécifier une région de sortie (par exemple, lorsque vous utilisez des routes statiques), ajoutez un
egress_policy
à la configuration en amont :{ "display_name": "
MY_APP_DISPLAY_NAME
", "endpoint_matchers": [ {"hostname": "MY_HOST_NAME
"} ], "upstreams": [{ "network": { "name": "MY_PRIVATE_NETWORK_RESOURCE_NAME
" }, "egress_policy": { "regions": [ "us-central1" ] } }] }Remplacez
us-central1
par la région Google Cloud (par exemple,europe-west1
ouasia-northeast1
) qui correspond à votre configuration de routage statique régional. Si vous n'avez pas d'exigences spécifiques en matière de routage statique régional, vous pouvez omettre la règle de sortie de votre configuration.Appelez la méthode API
Create
.curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @application.json \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}/applications?application_id=${APPLICATION_ID}"
Configurer le mode proxy Google Chrome
Pour acheminer le trafic de la ressource d'application via la passerelle sécurisée, configurez Chrome en appliquant un fichier PAC dans les paramètres Chrome de la console d'administration Google.
Créez ou mettez à jour un fichier PAC.
Si vous créez votre première application, créez un fichier
pac_config.js
à l'aide de l'exemple de fichier PAC suivant.Si vous créez une deuxième application ou une application ultérieure, mettez à jour votre fichier
pac_config.js
existant et ajoutez les domaines de votre nouvelle application au tableau des sites, comme indiqué dans l'exemple de fichier PAC suivant.
function FindProxyForURL(url, host) { const PROXY = "HTTPS ingress.cloudproxy.app:443"; const sites = ["MY_HOST_NAME"]; for (const site of sites) { if (shExpMatch(url, 'https://' + site + '/*') || shExpMatch(url, '*.' + site + '/*')) { return PROXY; } } return 'DIRECT'; }
Si vous utilisez un fichier PAC existant qui n'est pas spécifique à une passerelle sécurisée, fusionnez les fichiers PAC en ajoutant les domaines de votre application au tableau des sites.
Importez le fichier pour qu'il soit téléchargeable publiquement. Par exemple, vous pouvez importer le fichier dans Cloud Storage et le rendre téléchargeable publiquement en attribuant le rôle Utilisateur d'objets Storage à tous les utilisateurs pour le bucket.
Pour vérifier que le fichier importé est toujours la dernière version, vous pouvez ajuster son comportement de mise en cache en définissant l'en-tête
Cache-Control
surno-cache
. Ce paramètre empêche les navigateurs et les serveurs intermédiaires de stocker une copie du fichier. Chrome télécharge ainsi toujours la version la plus récente.Pour en savoir plus sur
Cache-Control
et son impact sur la mise en cache du navigateur, consultez En-tête Cache-Control.Copiez l'URL publique du fichier importé.
Modifier les paramètres du mode proxy
- Accédez à la console d'administration Google.
- Cliquez sur Appareils > Chrome > Paramètres.
- Sélectionnez une unité organisationnelle ou un groupe, puis cliquez sur Mode proxy.
- Sur la page "Mode proxy", sélectionnez Toujours utiliser la configuration automatique du proxy indiquée ci-dessous, puis saisissez l'URL du fichier PAC depuis Cloud Storage.
Configurer une règle d'accès
Vous pouvez appliquer une règle d'accès au niveau de la passerelle sécurisée ou de l'application :
- Ressource de passerelle sécurisée : appliquez une règle au niveau de la passerelle sécurisée pour contrôler l'accès à toutes les applications associées.
- Application individuelle : pour un contrôle plus précis, vous pouvez appliquer une règle d'accès à une application individuelle.
Créez un fichier au format JSON nommé
setIamPolicy.json
et ajoutez-y les éléments suivants.{ "policy": { object (POLICY) } }
Remplacez POLICY par une stratégie d'autorisation IAM. Le
etag
de la règle doit être identique à celui de la règle active, que vous pouvez obtenir en appelant la méthodegetIamPolicy
.etag
Pour autoriser un groupe spécifique à utiliser la passerelle sécurisée, accordez-lui le rôle
roles/beyondcorp.securityGatewayUser
.{ "policy": { "version": 3, "bindings": [ { "role": "roles/beyondcorp.securityGatewayUser", "members": [ "group:
" ] } ], "etag": "AA1jlb" } }Pour en savoir plus sur les identifiants, tels que
serviceAccount
,user
,group
,principal
etprincipalSet
, dans les associations de stratégie, consultez Compte principal IAM.Appliquez le règlement d'accès à la passerelle sécurisée spécifiée dans le fichier JSON en appelant l'API
setIamPolicy
.curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @setIamPolicy.json \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}:setIamPolicy"
Pour appliquer la règle d'accès à une application, utilisez la commande suivante :
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @setIamPolicy.json \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}/applications/${APPLICATION_NAME}:setIamPolicy"
Vous pouvez également définir des règles d'accès avec des niveaux d'accès comme condition, comme illustré dans l'exemple suivant.
{ "policy": { "version": 3, "bindings": [ { "role": "roles/beyondcorp.securityGatewayUser", "members": [ "group:" ], "condition": { "expression": "'accessPolicies/1234567890/accessLevels/in_us' in request.auth.access_levels", "title": "Source IP must be in US" } } ], "etag": "A1jlb" } }'
Installer l'extension Chrome Enterprise Premium
L'extension Chrome Enterprise Premium fait partie intégrante d'une passerelle sécurisée et facilite l'authentification. Installez l'extension pour tous les utilisateurs de la passerelle sécurisée. Pour savoir comment déployer l'extension, consultez Afficher et configurer des applications et des extensions.
- Accédez à la console d'administration Google.
- Cliquez sur Navigateur Chrome > Applications et extensions.
- Cliquez sur l'onglet Utilisateurs et navigateurs.
- Pour ajouter une extension Chrome, cliquez sur le bouton +.
- Recherchez
ekajlcmdfcigmdbphhifahdfjbkciflj
, puis forcez l'installation pour tous les utilisateurs de l'unité organisationnelle ou du groupe. Cliquez sur l'extension installée, puis accédez au champ Règles relatives aux extensions et fournissez la valeur JSON suivante :
{ "securityGateway": { "Value": { "authentication": {}, "context": { "resource": "projects/MY_PROJECT_ID/locations/global/securityGateways/MY_SECURITY_GATEWAY_ID" } } } }
Expérience de l'utilisateur final
Une fois la configuration terminée, l'accès des utilisateurs finaux à l'application SaaS protégée est accordé ou refusé en fonction de la règle d'accès appliquée à l'application.
Accéder à l'application dans Chrome
L'extension Chrome Enterprise Premium est requise pour rediriger le trafic via la passerelle sécurisée. L'extension gère l'authentification entre l'utilisateur et la passerelle sécurisée. L'extension est installée automatiquement via la règle de domaine.
Lorsque les utilisateurs accèdent à l'application SaaS que vous avez configurée, leur trafic passe par la passerelle sécurisée, qui vérifie s'ils respectent la règle d'accès. Si les utilisateurs réussissent les vérifications des règles d'accès, ils peuvent accéder à l'application.
Lorsque l'accès au navigateur à l'application est refusé par la règle d'autorisation, les utilisateurs reçoivent un message Access denied
.