Cette page explique comment activer l'inspection TLS (Transport Layer Security) pour votre instance Secure Web Proxy. Secure Web Proxy propose un service d'inspection TLS qui vous permet d'intercepter le trafic TLS, d'inspecter la requête chiffrée et d'appliquer des règles de sécurité. Pour en savoir plus sur l'inspection TLS, consultez la Présentation de l'inspection TLS.
Avant de commencer
Avant de configurer votre instance Secure Web Proxy pour l'inspection TLS, effectuez les tâches décrites dans les sections suivantes.
Activer Certificate Authority Service
Secure Web Proxy utilise Certificate Authority Service pour générer les certificats utilisés pour l'inspection TLS.
Pour activer le service CA, utilisez la commande suivante :
gcloud services enable privateca.googleapis.com
Créer un pool d'autorités de certification
Un pool d'autorités de certification (CA) est une collection de plusieurs autorités de certification disposant d'une règle d'émission de certificats et d'une stratégie Identity and Access Management (IAM) communes. Les pools d'autorités de certification offrent la possibilité d'alterner les chaînes de confiance sans interruption ni temps d'arrêt pour leur charge utile.
Vous devez créer un pool d'autorités de certification avant de pouvoir utiliser le service CA pour créer une autorité de certification. Cette section vous explique les autorisations dont vous avez besoin pour effectuer cette tâche, puis décrit comment créer un pool d'autorités de certification.
Pour générer des certificats, l'inspection TLS utilise un compte de service distinct pour chaque projet, appelé
service-[PROJECT_NUMBER]@gcp-sa-networksecurity.iam.gserviceaccount.com.
Assurez-vous d'avoir accordé des autorisations à ce compte de service pour utiliser votre pool d'autorités de certification. Si cet accès est révoqué, l'inspection TLS cesse de fonctionner.
Pour récupérer le PROJECT_NUMBER à l'aide du PROJECT_ID du projet de pool d'autorités de certification, utilisez la commande suivante :
gcloud projects describe PROJECT_ID
--format="value(projectNumber)"
Pour créer le pool, utilisez la commande gcloud privateca pools create et
spécifiez l'ID du pool subordonné, le niveau, l'ID du projet et l'emplacement.
gcloud privateca pools create SUBORDINATE_POOL_ID \
--tier=TIER \
--project=PROJECT_ID \
--location=REGION
Remplacez les éléments suivants :
SUBORDINATE_POOL_ID: nom du pool d'autorités de certificationTIER: niveau du pool d'autorités de certification,devopsouenterprise. Nous vous recommandons de créer le pool d'autorités de certification au niveaudevops, car il n'est pas nécessaire de suivre les certificats émis individuellement.PROJECT_ID: ID du projet de pool d'autorités de certificationREGION: région dans laquelle le pool d'autorités de certification doit être créé
Configurer une signature d'autorité de certification intermédiaire locale
Pour activer le mode d'émission de certificats LOCAL_INTERMEDIATE_CA_SIGNING ,
vous devez définir la valeur de isCa sur true.
Créez le fichier
ca-issuance-policy.yamlavec la configuration suivante :issuancePolicy: baselineValues: caOptions: isCa: true keyUsage: baseKeyUsage: certSign: true crlSign: true extendedKeyUsage: serverAuth: trueLors de la création du pool d'autorités de certification, spécifiez le fichier de règle d'émission.
gcloud privateca pools create SUBORDINATE_POOL_ID \ --tier=TIER \ --project=PROJECT_ID \ --location=REGION \ --issuance-policy-file=ca-issuance-policy.yamlRemplacez les éléments suivants :
SUBORDINATE_POOL_ID: nom du pool d'autorités de certificationTIER: niveau du pool d'autorités de certification,devopsouenterprise. Nous vous recommandons de créer le pool d'autorités de certification au niveaudevops, car il n'est pas nécessaire de suivre les certificats émis individuellement.PROJECT_ID: ID du projet de pool d'autorités de certificationREGION: région dans laquelle le pool d'autorités de certification doit être créé
Créer un pool d'autorités de certification subordonné
Si vous disposez de plusieurs scénarios d’émission de certificat, vous pouvez créer une autorité de certification subordonnée pour chacun de ces scénarios. Vous pouvez créer une autorité de certification subordonnée dans un pool d'autorités de certification, et l'autorité de certification racine signe toutes les autorités de certification de ce pool. Ces certificats sont utilisés pour signer les certificats de serveur générés pour l'inspection TLS.
Pour créer un pool d'autorités de certification subordonné, utilisez l'une des méthodes suivantes.
Créer un pool d'autorités de certification subordonné à l'aide d'une autorité de certification racine existante stockée dans Certificate Authority Service
Pour générer une autorité de certification subordonnée, procédez comme suit :
- Créer un pool d'autorités de certification
- Créer des autorités de certification subordonnées dans un pool d'autorités de certification
Créer un pool d'autorités de certification subordonné à l'aide d'une autorité de certification racine existante détenue en externe
Pour générer une autorité de certification subordonnée, procédez comme suit :
- Créer un pool d'autorités de certification
- Créer des autorités de certification subordonnées signées par une autorité de certification racine externe
Créer une autorité de certification racine
Si aucune autorité de certification racine n'existe, vous pouvez en créer une dans CA Service.
Pour créer une autorité de certification racine, procédez comme suit :
- Créer une autorité de certification racine
- Créer un pool d'autorités de certification subordonné à l'aide d'une autorité de certification racine existante stockée dans CA Service
Créer un compte de service
Un compte de service permet de fournir les autorisations nécessaires pour l'inspection TLS sans compromettre la sécurité de vos comptes utilisateur ni celle de votre instance Secure Web Proxy.
Si vous ne possédez pas de compte de service, vous devez en créer un, puis accorder les autorisations requises à ce compte de service.
Créez un compte de service.
gcloud beta services identity create \ --service=networksecurity.googleapis.com \ --project=PROJECT_IDEn réponse, Google Cloud CLI crée un compte de service appelé
service-[PROJECT_NUMBER]@gcp-sa-networksecurity.iam.gserviceaccount.com.Pour récupérer le
PROJECT_NUMBERà l'aide duPROJECT_IDdu projet de pool d'autorités de certification, utilisez la commande suivante :gcloud projects describe PROJECT_ID --format="value(projectNumber)"Pour le compte de service que vous avez créé, accordez des autorisations pour générer des certificats avec votre pool d'autorités de certification.
gcloud privateca pools add-iam-policy-binding CA_POOL \ --member='serviceAccount:SERVICE_ACCOUNT' \ --role='roles/privateca.certificateManager' \ --location='REGION'
Configurer Secure Web Proxy pour l'inspection TLS
Vous ne pouvez effectuer les tâches de cette section qu'après avoir effectué les tâches préalables listées dans la section Avant de commencer.
Pour configurer l'inspection TLS, effectuez les tâches décrites dans les sections suivantes.
Créer une règle d'inspection TLS
Console
Dans la Google Cloud console, accédez à la page Règles d'inspection TLS.
Dans le menu de sélection du projet, sélectionnez votre projet.
Cliquez sur Créer une règle d'inspection TLS.
Dans le champ Nom, saisissez un nom pour la règle.
Facultatif : Dans le champ Description, saisissez une description pour la règle.
Dans la liste Région, sélectionnez la région dans laquelle vous souhaitez créer la règle.
Dans la liste Pool d'autorités de certification, sélectionnez le pool d'autorités de certification à partir duquel vous souhaitez créer les certificats.
Si vous n'avez pas configuré de pool d'autorités de certification, cliquez sur Nouveau pool et suivez les instructions de la section Créer un pool d'autorités de certification.
Cliquez sur Créer.
gcloud
Créez le fichier
TLS_INSPECTION_FILE.yaml. RemplacezTLS_INSPECTION_FILEpar le nom de fichier requis.Ajoutez le code suivant au fichier YAML pour configurer le TlsInspectionPolicy requis :
name: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME caPool: projects/PROJECT_ID/locations/REGION/caPools/CA_POOL certificateIssuanceMode: CERTIFICATE_ISSUANCE_MODERemplacez les éléments suivants :
PROJECT_ID: ID du projetREGION: région dans laquelle la règle doit être crééeTLS_INSPECTION_NAME: nom de la règle d'inspection TLS de Secure Web ProxyCA_POOL: nom du pool d'autorités de certification à partir duquel les certificats sont créés. Le pool d'autorités de certification doit exister dans la même région.CERTIFICATE_ISSUANCE_MODE: mode facultatif pour l'émission de certificats. Vous pouvez spécifier l'une des valeurs suivantes :CERTIFICATE_ISSUANCE_MODE_UNSPECIFIED: utilisez cette option pour définircertificateIssuanceModesur sa valeur par défautDIRECT_LEAF_PROVISIONINGpour Secure Web ProxyLOCAL_INTERMEDIATE_CA_SIGNING: définissez cette valeur pour configurer Secure Web Proxy afin qu'il utilise le mode d'émission de certificats de signature d'autorité de certification intermédiaireDIRECT_LEAF_PROVISIONING: définissez cette valeur pour configurer Secure Web Proxy afin qu'il utilise le provisionnement direct de l'autorité de certification de feuille pour chaque domaine
Importer la règle d'inspection TLS
Importez la règle d'inspection TLS que vous avez créée à l'étape précédente :
gcloud network-security tls-inspection-policies import TLS_INSPECTION_NAME \
--source=TLS_INSPECTION_FILE.yaml \
--location=REGION
Ajouter la règle d'inspection TLS à la règle de sécurité
Console
Créer la règle de proxy Web
Dans la Google Cloud console, accédez à la page Règles SWP.
Cliquez sur Créer une règle.
Saisissez un nom pour la règle que vous souhaitez créer, par exemple
myswppolicy.Saisissez une description de la règle, par exemple
My new swp policy.Dans la liste Régions, sélectionnez la région dans laquelle vous souhaitez créer la règle Secure Web Proxy.
Pour configurer l'inspection TLS, sélectionnez Configurer l'inspection TLS.
Dans la liste Règle d'inspection TLS, sélectionnez la règle d'inspection TLS que vous avez créée.
Si vous souhaitez créer des règles pour votre stratégie, cliquez sur Continuer, puis sur Ajouter une règle. Pour en savoir plus, consultez Créer des règles Secure Web Proxy.
Cliquez sur Créer.
Créer des règles Secure Web Proxy
Dans la Google Cloud console, accédez à la page Règles SWP.
Dans le menu déroulant permettant de sélectionner le projet, sélectionnez l'ID de votre organisation ou le dossier contenant votre stratégie.
Cliquez sur le nom de votre stratégie.
Cliquez sur Ajouter une règle.
Renseignez les champs de la règle :
- Nom
- Description
- Status
- Priorité : ordre d'évaluation numérique de la règle. Les règles sont évaluées de la priorité la plus élevée à la plus faible, où
0correspond à la priorité la plus élevée. - Dans la section Action, indiquez si les connexions correspondant à la règle sont autorisées (Autoriser) ou refusées (Refuser).
- Dans la section Correspondance de session, spécifiez les critères de correspondance de la session. Pour en savoir plus sur la syntaxe de
SessionMatcher, consultez la documentation de référence sur le langage de correspondance CEL. - Pour activer l'inspection TLS, sélectionnez Activer l'inspection TLS.
- Dans la section Correspondance d'application, spécifiez les critères de correspondance de la requête. Si vous n'activez pas la règle pour l'inspection TLS, la requête ne peut correspondre qu'au trafic HTTP.
- Cliquez sur Créer.
Cliquez sur Ajouter une règle pour ajouter une règle.
Cliquez sur Créer pour créer la règle.
Configurer un proxy Web
Dans la Google Cloud console, accédez à la page Proxys Web.
Cliquez sur Créer un proxy Web sécurisé.
Saisissez un nom pour le proxy Web que vous souhaitez créer, par exemple
myswp.Saisissez une description du proxy Web, par exemple
My new swp.Dans la liste Régions, sélectionnez la région dans laquelle vous souhaitez créer le proxy Web.
Dans la liste Réseau, sélectionnez le réseau dans lequel vous souhaitez créer le proxy Web.
Dans la liste Sous-réseau, sélectionnez le sous-réseau dans lequel vous souhaitez créer le proxy Web.
Facultatif : Saisissez l'adresse IP Secure Web Proxy. Vous pouvez saisir une adresse IP de la plage d'adresses IP Secure Web Proxy qui se trouve dans le sous-réseau que vous avez créé à l'étape précédente. Si vous ne saisissez pas l'adresse IP, votre instance Secure Web Proxy choisit automatiquement une adresse IP dans le sous-réseau sélectionné.
Dans la liste Certificat, sélectionnez le certificat que vous souhaitez utiliser pour créer le proxy Web.
Dans la liste Règle, sélectionnez la règle que vous avez créée pour associer le proxy Web.
Cliquez sur Créer.
Cloud Shell
Créez le fichier
policy.yaml:description: basic Secure Web Proxy policy name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1 tlsInspectionPolicy: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAMECréez la règle Secure Web Proxy :
gcloud network-security gateway-security-policies import policy1 \ --source=policy.yaml --location=REGIONCréez le fichier
rule.yaml:name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/allow-example-com description: Allow example.com enabled: true priority: 1 basicProfile: ALLOW sessionMatcher: host() == 'example.com' applicationMatcher: request.path.contains('index.html') tlsInspectionEnabled: trueCréez la règle de stratégie de sécurité.
gcloud network-security gateway-security-policies rules import allow-example-com \ --source=rule.yaml \ --location=REGION \ --gateway-security-policy=policy1Pour associer une règle d'inspection TLS à une règle de sécurité existante, créez le fichier
POLICY_FILE.yaml. RemplacezPOLICY_FILEpar le nom de votre fichier.description: My Secure Web Proxy policy name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/POLICY_NAME tlsInspectionPolicy: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME