Cette page vous explique comment sécuriser vos applications SaaS à l'aide de la passerelle sécurisée Chrome Enterprise Premium.
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 SaaS.
Fonctionnement de la sécurisation de l'accès aux applications SaaS
Voici un aperçu général de la façon dont une passerelle sécurisée protège vos applications SaaS :
- Les paramètres du navigateur côté client acheminent le trafic des applications via un proxy de passerelle sécurisé.
- La passerelle sécurisée vérifie les règles d'accès contextuel pour autoriser l'accès des clients (utilisateurs et appareils).
- Si cela est autorisé, la passerelle transfère le trafic vers l'application à l'aide d'adresses IP sources uniques attribuées à cette passerelle et à la région Google Cloud . Vous pouvez utiliser ces adresses IP sources dédiées pour implémenter des règles de liste d'autorisation d'adresses IP.
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
).Application SaaS que vous souhaitez protéger. L'application doit être compatible avec
IP allowlisting
pour appliquer les contrôles de sécurité par l'infrastructure Google.
Limites
Une passerelle sécurisée Chrome Enterprise Premium présente la limite suivante : une passerelle sécurisée n'est pas compatible avec les applications SaaS qui n'autorisent que la connectivité IPv6.
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 APPLICATION_ID=MY_APPLICATION_ID APPLICATION_DISPLAY_NAME="MY_APPLICATION_DISPLAY_NAME" HOST_NAME=MY_HOST_NAME
Remplacez les éléments suivants :
- MY_PROJECT_ID : ID du projet dans lequel la passerelle sécurisée est créée.
- MY_APPLICATION_ID : ID de votre application. Exemple :
github
. Le nom 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_APPLICATION_DISPLAY_NAME : nom lisible à afficher.
MY_HOST_NAME : nom d'hôte de votre application. Exemple :
github.com
. Le nom d'hôte peut comporter jusqu'à 253 caractères et doit respecter l'un des formats suivants :- Une adresse IPv4 valide
- Une adresse IPv6 valide
- Un nom DNS valide
- Un astérisque (*)
- Un astérisque (*) suivi d'un nom DNS valide
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. 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 de base essentiel 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é.
Pour créer une passerelle sécurisée, procédez comme suit.
Créez un fichier nommé
securityGateway.json
en utilisant l'exemple suivant.{ "display_name": "MY_SECURITY_GATEWAY_DISPLAY_NAME", "hubs": { "us-central1": {} } }
Dans l'exemple,
hubs
représente les ressources régionales requises pour activer la connectivité de sortie à l'application cible. Vous pouvez disposer d'un hub par région, et chaque hub fournit deux adresses IP.Vous pouvez spécifier les régions 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
Créez une ressource de passerelle sécurisée en appelant l'API
Create
.curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d @securityGateway.json \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways?security_gateway_id=${SECURITY_GATEWAY_ID}"
Configurer une application SaaS
Après avoir créé une passerelle sécurisée, vous pouvez configurer vos applications SaaS pour qu'elles l'utilisent afin d'accéder aux données de manière sécurisée.
Obtenez les adresses IP attribuées par la passerelle sécurisée pour chaque hub. Deux adresses IP sont allouées à une région.
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}"
Voici un exemple de réponse
GET
d'une passerelle sécurisée avec des hubs. Dans l'exemple, les hubs sont créés dans les régionsus-central1
etus-east1
, et toutes les adresses IP renvoyées dans la réponse doivent être autorisées dans l'application SaaS.{ "securityGateways": [ { "name": "projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}", "createTime": "CREATE_TIME", "updateTime": "UPDATE_TIME", "displayName": "My security gateway", "state": "RUNNING", "hubs": { "us-central1": { "internetGateway": { "assignedIps": [ "IP_ADDRESS_1", "IP_ADDRESS_2", "IP_ADDRESS_3", "IP_ADDRESS_4", "IP_ADDRESS_5" ] } }, "us-east1": { "internetGateway": { "assignedIps": [ "IP_ADDRESS_1", "IP_ADDRESS_2", "IP_ADDRESS_3", "IP_ADDRESS_4", "IP_ADDRESS_5" ] } } } } ] }
Ajoutez les adresses IP à la liste d'autorisation d'adresses IP de votre application SaaS. Par exemple, pour une application GitHub, vous pouvez suivre ce guide : Gérer les adresses IP autorisées pour votre organisation.
Créer une ressource d'application
Les informations suivantes vous guident dans la configuration d'une ressource d'application de passerelle sécurisée.
Créer une ressource d'application de passerelle sécurisée dans Google Cloud
La ressource d'application Google Cloud est une sous-ressource de la ressource de passerelle sécurisée. Créez une ressource d'application en appelant l'API Create
.
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -X POST \ -d "{ \"display_name\": \"${APPLICATION_DISPLAY_NAME}\", \"endpoint_matchers\": [{hostname: \"${HOST_NAME}\"}] }" \ "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 à tous les utilisateurs le rôle Utilisateur d'objets Storage sur 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_ID}: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
.