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
Vous trouverez ci-dessous 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 de l'application 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 du client (utilisateur et appareil).
- Si l'accès client est autorisé, la passerelle transfère le trafic vers l'application à l'aide d'adresses IP sources uniques attribuées à cette passerelle et à cette région Google Cloud . Ces adresses IP attribuées sont réservées exclusivement à la passerelle que vous créez et ne peuvent pas être utilisées par d'autres utilisateurs ni d'autres passerelles. Pour contrôler l'accès, vous pouvez ajouter ces adresses IP sources dédiées à une liste d'autorisation dans votre application SaaS.
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
).Une application SaaS que vous souhaitez protéger. L'application doit être compatible avec
IP allowlisting
pour appliquer les contrôles de sécurité par la passerelle sécurisée.
Limites
Une passerelle sécurisée Chrome Enterprise Premium présente la limite suivante : elle 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, tel quegithub
. Le nom peut comporter jusqu'à 63 caractères (lettres minuscules, chiffres et tirets). 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 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 ne peut contenir que 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é.
Pour créer une ressource de passerelle sécurisée, utilisez l'une des méthodes suivantes.
gcloud
Exécutez la commande ci-dessous. Pour l'indicateur --hubs
, spécifiez une ou plusieurs régions de la liste suivante.
gcloud beta beyondcorp security-gateways create ${SECURITY_GATEWAY_ID} \
--project=${PROJECT_ID} \
--location=global \
--display-name="MY_SECURITY_GATEWAY_DISPLAY_NAME
" \
--hubs=us-central1
REST
Appelez la méthode Create API avec les informations de la passerelle dans le corps de la requête. Pour l'objet hubs
, spécifiez une ou plusieurs régions dans la liste suivante.
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST \
-d '{ "display_name": "MY_SECURITY_GATEWAY_DISPLAY_NAME
", "hubs": { "us-central1": {} } }' \
"https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways?security_gateway_id=${SECURITY_GATEWAY_ID}"
hubs
représente les ressources régionales requises pour activer la connectivité de sortie vers l'application cible. Vous pouvez disposer d'un hub pour chaque 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
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.
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}"
Voici un exemple de réponse
GET
d'une passerelle sécurisée avechubs
. Dans l'exemple, leshubs
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.gcloud
createTime: 'CREATE_TIME' displayName: My security gateway hubs: us-central1: internetGateway: assignedIps: - IP_ADDRESS_1 - IP_ADDRESS_2 us-east1: internetGateway: assignedIps: - IP_ADDRESS_1 - IP_ADDRESS_2 name: projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID} state: RUNNING updateTime: 'UPDATE_TIME'
REST
{ "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", ] } }, "us-east1": { "internetGateway": { "assignedIps": [ "IP_ADDRESS_1", "IP_ADDRESS_2", ] } } } } ] }
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
.
gcloud
gcloud beta beyondcorp security-gateways applications create ${APPLICATION_ID} \ --project=${PROJECT_ID} \ --security-gateway=${SECURITY_GATEWAY_ID} \ --location=global \ --display-name="${APPLICATION_DISPLAY_NAME}" \ --endpoint-matchers="hostname=${HOST_NAME},ports=[443]"
REST
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}\", ports: [443]}] }" \ "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é.
Mettre à jour 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 pour contrôler l'accès au niveau de la passerelle sécurisée (ce qui affecte toutes les applications associées) ou au niveau de chaque application (pour un contrôle plus précis).
Mettre à jour une règle d'accès de manière sécurisée
La commande setIamPolicy
remplace l'intégralité de la stratégie existante par celle que vous fournissez. Pour éviter de supprimer accidentellement des autorisations existantes, nous vous recommandons de suivre un modèle "lecture-modification-écriture". Cela vous permet de vous assurer que vous n'ajoutez des éléments qu'à la règle existante, sans la remplacer.
Lecture : commencez par obtenir la stratégie d'accès actuelle.
Modifier : modifiez le fichier de règles en local pour ajouter ou modifier des autorisations.
Écrivez : appliquez votre fichier de règles mis à jour.
Obtenir la stratégie actuelle
Récupérez la stratégie actuelle avant d'apporter des modifications.
Le champ etag
de la stratégie sert d'identifiant de version. Il empêche les mises à jour conflictuelles si plusieurs administrateurs apportent des modifications simultanément.
La commande suivante récupère la stratégie et l'enregistre dans un fichier nommé policy.json
.
gcloud
gcloud beta beyondcorp security-gateways applications get-iam-policy ${APPLICATION_ID} \ --security_gateway=${SECURITY_GATEWAY_ID} \ --project=${PROJECT_ID} \ --location=global > policy.json
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}/applications/${APPLICATION_ID}:getIamPolicy" > policy.json
Une fois la commande exécutée, un fichier policy.json
contenant le règlement actuel est créé.
Modifier le fichier de stratégie
Ouvrez le fichier policy.json
dans un éditeur de texte. Pour autoriser un groupe à utiliser la passerelle sécurisée, ajoutez-le à la liste members
pour le rôle roles/beyondcorp.securityGatewayUser
.
Votre fichier policy.json
doit ressembler à l'exemple suivant :
{
"policy": {
"version": 3,
"bindings": [
{
"role": "roles/beyondcorp.securityGatewayUser",
"members": [
"group:existing-group@example.com"
]
}
],
"etag": "BwXN8_d-bOM="
}
}
Pour ajouter un groupe, ajoutez une entrée au tableau members
. Ajoutez une virgule après l'entrée précédente.
L'exemple suivant ajoute new-group@example.com
:
{
"policy": {
"version": 3,
"bindings": [
{
"role": "roles/beyondcorp.securityGatewayUser",
"members": [
"group:existing-group@example.com",
"group:new-group@example.com"
]
}
],
"etag": "BwXN8_d-bOM="
}
}
Vous pouvez également ajouter d'autres types de membres, tels que serviceAccount
, user
, group
, principal
et principalSet
, dans les liaisons de règles. Pour en savoir plus, consultez Comptes principaux IAM.
Appliquer la règle mise à jour
Après avoir modifié et enregistré votre fichier policy.json
, appliquez-le à la ressource à l'aide de la commande setIamPolicy
. Cette commande utilise le etag
de votre fichier pour s'assurer que vous mettez à jour la bonne version.
gcloud
gcloud beta beyondcorp security-gateways applications set-iam-policy ${APPLICATION_ID} policy.json \ --security_gateway=${SECURITY_GATEWAY_ID} \ --project=${PROJECT_ID} \ --location=global
REST
jq '{policy: .}' policy.json | curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @- \ "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}/applications/${APPLICATION_ID}:setIamPolicy"
Ajouter une stratégie d'accès conditionnel
Vous pouvez également définir des règles d'accès avec des conditions. Les conditions spécifient des exigences, par exemple l'adresse IP d'un utilisateur provenant d'un emplacement spécifique.
L'exemple suivant illustre une règle qui n'accorde l'accès que si l'adresse IP source se trouve dans un niveau d'accès spécifié :
{
"policy": {
"version": 3,
"bindings": [
{
"role": "roles/beyondcorp.securityGatewayUser",
"members": [
"group:group@example.com"
],
"condition": {
"expression": "request.auth.access_levels.contains('accessPolicies/1234567890/accessLevels/in_us')",
"title": "Source IP must be in US"
}
}
],
"etag": "BwXN8_d-bOM="
}
}
Pour appliquer cette règle, suivez les étapes décrites précédemment.
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
.