Limiter les versions TLS

Cette page explique comment empêcher l'accès aux Google Cloud ressources en refusant les requêtes effectuées à l'aide de Transport Layer Security (TLS) 1.0 ou 1.1. Si vous souhaitez également empêcher l'utilisation de TLS 1.2, utilisez une règle de restriction de chiffrement TLS pour n'autoriser que les chiffrements TLS 1.3. Pour en savoir plus, consultez la section Limiter les suites de chiffrement TLS.

Présentation

Google Cloud est compatible avec plusieurs versions du protocole TLS. Pour répondre aux exigences de conformité, vous pouvez refuser les requêtes de handshake des clients qui utilisent des versions TLS antérieures. Pour ce faire, vous pouvez utiliser la gcp.restrictTLSVersion contrainte de règle d'administration.

La contrainte gcp.restrictTLSVersion peut être appliquée aux organisations, aux dossiers ou aux projets dans la hiérarchie des ressources. La contrainte utilise une liste de refus, qui refuse les valeurs explicites et autorise toutes les autres. Une erreur se produira si vous essayez d'utiliser une liste d'autorisation.

En raison du comportement de l'évaluation de la hiérarchie des règles d'administration, la restriction de version TLS s'applique au nœud de ressource spécifié et à tous ses enfants. Par exemple, si vous refusez la version TLS 1.0 pour une organisation, elle est également refusée pour tous les dossiers et projets (enfants) qui dépendent de cette organisation.

Vous pouvez remplacer la restriction de version TLS héritée en mettant à jour la règle d'administration sur une ressource enfant. Par exemple, si votre règle d'administration refuse TLS 1.0 au niveau de l'organisation, vous pouvez supprimer la restriction pour un dossier enfant en définissant une règle d'administration distincte sur ce dossier. Si le dossier comporte des enfants, la règle du dossier sera également appliquée à chaque ressource enfant en raison de l'héritage des règles.

Avant de commencer

  • Pour définir, modifier ou supprimer une règle d'administration, vous devez d'abord disposer du rôle IAM (Identity and Access Management) Administrateur de règle d'administration (roles/orgpolicy.policyAdmin).

Limiter une version TLS

Pour limiter une ou plusieurs versions TLS, procédez comme suit :

Console

  1. Ouvrez la page Règles d'administration dans la Google Cloud console.

    Accéder à la page Règles d'administration

  2. Cliquez sur le sélecteur de projets en haut de la page.

  3. Dans le sélecteur de projets, choisissez la ressource pour laquelle vous souhaitez définir la règle d'administration.

  4. Sélectionnez la contrainte Limiter la version TLS dans la liste de la page Règles d'administration.

  5. Pour mettre à jour la règle d'administration pour cette ressource, cliquez sur Modifier.

  6. Sur la page Modifier, sélectionnez Personnaliser.

  7. Sous Application des règles, sélectionnez une option d'application :

    • Pour fusionner et évaluer vos règles d'administration ensemble, sélectionnez Fusionner avec le parent. Pour en savoir plus sur l'héritage et la hiérarchie des ressources, consultez la page Comprendre le processus d'évaluation hiérarchique.

    • Pour remplacer les règles héritées d'une ressource parente, sélectionnez Remplacer.

  8. Cliquez sur Ajouter une règle.

  9. Sous Valeurs de règles, la valeur par défaut est définie sur Tout refuser. Sélectionnez plutôt Personnalisé.

  10. Sous Type de règle, sélectionnez Refuser.

  11. Sous Valeurs personnalisées, saisissez une version TLS à refuser. Les valeurs personnalisées valides sont les suivantes :

    • TLS_VERSION_1 pour TLS 1.0
    • TLS_VERSION_1_1 pour TLS 1.1

    Si vous limitez plusieurs versions TLS, cliquez sur Ajouter une valeur , puis saisissez la valeur dans le champ supplémentaire.

  12. Pour terminer et appliquer la règle d'administration, cliquez sur Enregistrer.

gcloud

Utilisez la gcloud org-policies set-policy commande pour définir une règle d'administration sur la ressource :

gcloud org-policies set-policy POLICY_PATH

POLICY_PATH correspond au chemin d'accès complet au fichier de votre règle d'administration, qui doit ressembler à ceci si vous utilisez le format YAML :

name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictTLSVersion
spec:
  rules:
  - values:
    deniedValues:
    - TLS_VERSION_1
    - TLS_VERSION_1_1

Remplacez par ce qui suit :

  • RESOURCE_TYPE correspond à organizations, folders ou projects.

  • RESOURCE_ID correspond à l'ID de l'organisation, à l'ID du dossier, à l'ID du projet ou au numéro du projet, en fonction du type de ressource spécifié dans RESOURCE_TYPE.

Exécutez la commande suivante pour vérifier que votre règle a été appliquée :

gcloud org-policies describe gcp.restrictTLSVersion --RESOURCE_TYPE=RESOURCE_ID --effective

Remplacez par ce qui suit :

  • RESOURCE_TYPE correspond à organization, folder ou project.

  • RESOURCE_ID correspond à l'ID de l'organisation, à l'ID du dossier, à l'ID du projet ou au numéro du projet, en fonction du type de ressource spécifié dans RESOURCE_TYPE.

Tester la stratégie

La contrainte de règle de restriction de version TLS peut être testée pour n'importe quel service concerné. L'exemple de commande curl suivant valide la restriction de version TLS pour un bucket Cloud Storage.

  curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://storage.googleapis.com/storage/v1/b/GCS_BUCKET_NAME/o" \
  --tlsvTLS_VERSION --tls-max TLS_VERSION --ciphers DEFAULT@SECLEVEL=0

Il n'y a pas d'espace entre --tlsv et la valeur. Par exemple : --tlsv1.1

Remplacez par ce qui suit :

  • GCS_BUCKET_NAME est un nom de bucket Cloud Storage dans votre projet, tel que mybucketname.

  • TLS_VERSION est une version TLS telle que 1.0 ou 1.1 refusée dans la règle configurée.

L'exemple de requête curl suivant montre que GCS_BUCKET_NAME est défini sur mybucketname et que TLS_VERSION est défini sur 1.1 :

  curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://storage.googleapis.com/storage/v1/b/mybucketname/o" \
  --tlsv1.1 --tls-max 1.1 --ciphers DEFAULT@SECLEVEL=0

Si la règle d'administration est configurée pour limiter TLS_VERSION_X, toute tentative d'accès aux ressources avec TLS_VERSION_X dans le projet limité par la règle de cet exemple de commande échouera. Un message d'erreur indiquant la raison de cet échec s'affiche.

Request is disallowed by organization's constraints/gcp.restrictTLSVersion
constraint for 'projects/PROJECT_NUMBER' to use service
'SERVICE_NAME.googleapis.com' by violated TLS version `TLS_VERSION_X`

Ce résultat inclut les valeurs suivantes :

Services compatibles

La restriction de version TLS est compatible avec toutes les API de ressources dont l'en-tête est signé par Google Front End (GFE). Google Cloud

Services incompatibles

La contrainte de règle d'administration de restriction de version TLS ne s'applique pas aux services suivants :

  • Apigee
  • App Engine (*.appspot.com)
  • Fonctions Cloud Run (*.cloudfunctions.net),
  • Cloud Run (*.run.app)
  • Private Service Connect
  • Domaines personnalisés

Pour limiter les versions TLS de ces services, utilisez Cloud Load Balancing avec des règles SSL. Vous pouvez également utiliser la contrainte prédéfinie constraints/compute.requireSslPolicy avec des contraintes personnalisées pour les règles SSL afin d' appliquer des restrictions de version TLS et de suite de chiffrement à vos équilibreurs de charge.

Étape suivante