Utiliser des règles SSL pour les protocoles SSL et TLS

Les règles SSL spécifient l'ensemble des fonctionnalités SSL utilisées par les équilibreurs de charge Google Cloud lors de la négociation SSL avec les clients. Dans ce document, le terme SSL désigne à la fois les protocoles SSL et TLS.

Les règles SSL sont compatibles avec les équilibreurs de charge suivants :

  • Règles SSL globales
    • Équilibreur de charge d'application externe global
    • Équilibreur de charge d'application classique
    • Équilibreur de charge réseau proxy externe (avec proxy SSL cible)
    • Équilibreur de charge d'application interne interrégional
  • Règles SSL régionales
    • Équilibreur de charge d'application externe régional
    • Équilibreur de charge d'application interne régional

Pour en savoir plus sur le fonctionnement des règles SSL, consultez la page Présentation des règles SSL.

Vous pouvez créer et gérer des règles SSL à l'aide de la console Google Cloud ou de Google Cloud CLI lorsque vous créez un équilibreur de charge HTTPS ou SSL, ou à tout moment après la création de l'équilibreur de charge.

Créez des règles SSL

Vous pouvez créer des règles SSL avec des profils gérés par Google ou avec un profil personnalisé.

Créer une règle SSL avec un profil géré par Google

Console

Règle SSL globale

Pour créer une règle SSL globale avec un profil géré par Google, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Règles SSL.

    Accéder aux règles SSL

  2. Cliquez sur Create policy (Créer une régle).

  3. Dans la section Règle SSL globale, cliquez sur le bouton Créer situé en regard. La page Créer une règle s'affiche.

  4. Saisissez un nom.

  5. Sélectionnez une Version minimale de TLS.

  6. Dans la section Profil, sélectionnez Compatible, Moderne ou Limité. Les Fonctionnalités activées et les Fonctionnalités désactivées pour le profil s'affichent sur le côté droit de la page.

  7. Si vous souhaitez associer la règle à un équilibreur de charge existant, cliquez sur Appliquer aux cibles et sélectionnez une règle de transfert en tant que cible de la règle SSL. Si nécessaire, ajoutez d'autres cibles.

  8. Cliquez sur Créer.

Règle SSL régionale

Pour créer une règle SSL régionale avec un profil géré par Google, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Règles SSL.

    Accéder aux règles SSL

  2. Cliquez sur Create policy (Créer une régle).

  3. Dans la section Règle SSL régionale, cliquez sur le bouton Créer situé en regard. La page Créer une règle s'affiche.

  4. Saisissez un nom.

  5. Sélectionnez une Région.

  6. Sélectionnez une Version minimale de TLS.

  7. Dans la section Profil, sélectionnez Compatible, Moderne ou Limité. Les Fonctionnalités activées et les Fonctionnalités désactivées pour le profil s'affichent sur le côté droit de la page.

  8. Si vous souhaitez associer la règle à un équilibreur de charge existant, cliquez sur Appliquer aux cibles et sélectionnez une règle de transfert en tant que cible de la règle SSL. Si nécessaire, ajoutez d'autres cibles.

  9. Cliquez sur Créer.

gcloud

Règle SSL globale

Voici la syntaxe générale pour créer une règle SSL globale avec un profil géré par Google :

gcloud compute ssl-policies create SSL_POLICY_NAME \
    --profile COMPATIBLE | MODERN | RESTRICTED \
    --min-tls-version 1.0 | 1.1 | 1.2

La commande suivante crée une règle SSL globale avec le profil MODERN :

gcloud compute ssl-policies create my-ssl-policy \
    --profile MODERN \
    --min-tls-version 1.0

Règle SSL régionale

Voici la syntaxe générale pour créer une règle SSL régionale avec un profil géré par Google :

gcloud compute ssl-policies create SSL_POLICY_NAME \
    --profile COMPATIBLE | MODERN | RESTRICTED \
    --min-tls-version 1.0 | 1.1 | 1.2 \
    --region REGION

La commande suivante crée une règle SSL régionale avec le profil COMPATIBLE :

gcloud compute ssl-policies create my-ssl-policy \
    --profile COMPATIBLE \
    --min-tls-version 1.1 \
    --region us-west1

Créer une règle SSL avec un profil personnalisé

Console

Règle SSL globale

Pour créer une règle SSL globale avec un profil personnalisé, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Règles SSL.

    Accéder aux règles SSL

  2. Cliquez sur Create policy (Créer une régle).

  3. Dans la section Règle SSL globale, cliquez sur le bouton Créer situé en regard. La page Créer une règle s'affiche.

  4. Saisissez un nom.

  5. Sélectionnez une Version minimale de TLS.

  6. Dans la section Profil, sélectionnez Personnalisé. Toutes les fonctionnalités sont affichées en tant que Fonctionnalités désactivées sur le côté droit de la page.

  7. Dans la liste Fonctionnalités, sélectionnez toutes les suites de chiffrement que vous souhaitez activer. Les suites de chiffrement activées sont maintenant répertoriées en tant que Fonctionnalités activées.

  8. Si vous souhaitez associer la règle à un équilibreur de charge existant, cliquez sur Appliquer aux cibles et sélectionnez une règle de transfert en tant que cible de la règle SSL. Si nécessaire, ajoutez d'autres cibles.

  9. Cliquez sur Créer.

Règle SSL régionale

Pour créer une règle SSL régionale avec un profil personnalisé, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Règles SSL.

    Accéder aux règles SSL

  2. Cliquez sur Create policy (Créer une régle).

  3. Dans la section Règle SSL régionale, cliquez sur le bouton Créer situé en regard. La page Créer une règle s'affiche.

  4. Saisissez un nom.

  5. Sélectionnez une Région.

  6. Sélectionnez une Version minimale de TLS.

  7. Dans la section Profil, sélectionnez Personnalisé. Toutes les fonctionnalités sont affichées en tant que Fonctionnalités désactivées sur le côté droit de la page.

  8. Dans la liste Fonctionnalités, sélectionnez toutes les suites de chiffrement que vous souhaitez activer. Les suites de chiffrement activées sont maintenant répertoriées en tant que Fonctionnalités activées.

  9. Si vous souhaitez associer la règle à un équilibreur de charge existant, cliquez sur Appliquer aux cibles et sélectionnez une règle de transfert en tant que cible de la règle SSL. Si nécessaire, ajoutez d'autres cibles.

  10. Cliquez sur Créer.

gcloud

Lorsque vous créez une règle SSL avec le profil PERSONNALISÉ, seules les fonctionnalités que vous spécifiez dans la commande create sont acceptées. Les autres fonctionnalités ne sont pas prises en compte.

Règle SSL globale

Voici la syntaxe générale pour créer une règle SSL globale avec un profil personnalisé :

gcloud compute ssl-policies create SSL_POLICY_NAME \
    --profile CUSTOM \
    --min-tls-version 1.0 | 1.1 | 1.2 \
    --custom-features SSL_FEATURE_1[,SSL_FEATURE_2,SSL_FEATURE_3]

L'exemple suivant crée une règle SSL globale avec le profil PERSONNALISÉ, une version TLS minimale de 1.2 et des fonctionnalités TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 et TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256.

gcloud compute ssl-policies create SSL_POLICY_NAME \
    --profile CUSTOM \
    --min-tls-version 1.2 \
    --custom-features TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256

Règle SSL régionale

Voici la syntaxe générale pour la création d'une règle SSL régionale avec un profil personnalisé :

gcloud compute ssl-policies create SSL_POLICY_NAME \
    --profile CUSTOM \
    --min-tls-version 1.0 | 1.1 | 1.2 \
    --custom-features SSL_FEATURE_1[,SSL_FEATURE_2,SSL_FEATURE_3] \
    --region REGION

L'exemple suivant crée une règle SSL régionale avec le profil PERSONNALISÉ, une version TLS minimale de 1.2 et des fonctionnalités TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 et TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256.

gcloud compute ssl-policies create SSL_POLICY_NAME \
    --profile CUSTOM \
    --min-tls-version 1.2 \
    --custom-features TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 \
    --region us-west1

Obtenir la liste des règles du protocole SSL

Console

Dans la console Google Cloud, accédez à la page Règles SSL.

Accéder aux règles SSL

Vous pouvez afficher la liste de toutes les règles SSL disponibles. Le champ Portée indique si la règle SSL est globale ou régionale.

gcloud

Pour répertorier les règles SSL globales et régionales, exécutez :

  gcloud compute ssl-policies list

Pour répertorier uniquement les règles SSL globales, exécutez la commande suivante :

  gcloud compute ssl-policies list --global

Pour répertorier uniquement les règles SSL régionales, exécutez la commande suivante :

  gcloud compute ssl-policies list --regions REGION

Répertorier les fonctionnalités disponibles dans une règle SSL

Console

  1. Dans la console Google Cloud, accédez à la page Règles SSL.

    Accéder aux règles SSL

  2. Cliquez sur le nom de la règle dont vous souhaitez afficher les fonctionnalités. Les suites de chiffrement activées et désactivées sont répertoriées sur le côté droit de la page.

gcloud

Pour répertorier les fonctionnalités disponibles dans les règles SSL globales :

gcloud compute ssl-policies list-available-features

Pour répertorier les fonctionnalités disponibles dans les règles SSL régionales, procédez comme suit :

gcloud compute ssl-policies list-available-features \
    --region REGION

Modifier des règles SSL

Console

Pour modifier une règle SSL globale ou régionale, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page Règles SSL.

    Accéder aux règles SSL

  2. Cliquez sur le nom de la règle que vous souhaitez modifier.

  3. Cliquez sur Modifier.

  4. Apportez les modifications souhaitées.

  5. Cliquez sur Enregistrer.

gcloud

Pour modifier une règle SSL existante, transmettez tout ou partie des options correspondant aux champs que vous souhaitez mettre à jour. Les champs non spécifiés ne sont pas mis à jour.

Si vous mettez à jour les fonctionnalités, celles que vous avez précédemment activées sont supprimées et remplacées par les fonctionnalités que vous spécifiez.

Règles SSL globales

gcloud compute ssl-policies update SSL_POLICY_NAME \
    --profile COMPATIBLE|MODERN|RESTRICTED|CUSTOM \
    --min-tls-version 1.0|1.1|1.2 \
    --custom-features FEATURES

Règles SSL régionales

gcloud compute ssl-policies update SSL_POLICY_NAME \
    --profile COMPATIBLE|MODERN|RESTRICTED|CUSTOM \
    --min-tls-version 1.0|1.1|1.2 \
    [--custom-features FEATURES \]
    --region REGION

Créer un proxy cible avec une règle SSL

Console

Vous pouvez créer un proxy cible à l'aide de la console Google Cloud lorsque vous créez ou mettez à jour l'équilibreur de charge, comme indiqué dans les documents suivants :

gcloud

Pour créer un proxy SSL cible avec une règle SSL globale :

gcloud compute target-ssl-proxies create TARGET_SSL_PROXY_NAME \
  --backend-service BACKEND_SERVICE_NAME \
  --ssl-certificate SSL_CERTIFICATE_NAME \
  --ssl-policy SSL_POLICY_NAME

Pour créer un proxy HTTPS cible mondial avec une règle SSL globale, procédez comme suit :

gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
  --ssl-certificate SSL_CERTIFICATE_NAME \
  --url-map URL_MAP_NAME \
  --ssl-policy SSL_POLICY_NAME

Pour créer un proxy HTTPS cible régional avec une règle SSL régionale, procédez comme suit :

gcloud compute target-https-proxies create REGIONAL_TARGET_HTTPS_PROXY_NAME \
  --ssl-certificates SSL_CERTIFICATE_NAME \
  --url-map URL_MAP_NAME \
  --url-map-region REGION \
  --ssl-policy SSL_POLICY_NAME \
  --region REGION

Associer une règle SSL existante à un proxy cible existant

Console

gcloud

Utilisez ces commandes pour associer une règle SSL existante à un proxy SSL ou proxy HTTPS.

  • Pour rechercher tous les projets de votre organisation qui disposent de proxys SSL cibles, procédez comme suit :

    gcloud asset search-all-resources \
        --scope=organizations/ORGANIZATION_ID \
        --asset-types=compute.googleapis.com/TargetSslProxy
    
  • Pour rechercher tous les projets de votre organisation qui disposent de proxys HTTPS cibles :

    gcloud asset search-all-resources \
        --scope=organizations/ORGANIZATION_ID \
        --asset-types=compute.googleapis.com/TargetHttpsProxy
    
  • Pour répertorier tous les proxys SSL cibles globaux d'un projet, utilisez la méthode targetSslProxies.aggregatedList. Utilisez ensuite le paramètre de requête filter pour rechercher les proxys SSL cibles qui ne font pas référence à une règle SSL.

    curl \
        'https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetSslProxies?filter=sslPolicy%3D%22%22&key=YOUR_API_KEY' \
        --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
        --header 'Accept: application/json' \
        --compressed
    
  • Pour répertorier tous les proxys HTTPS cibles globaux et régionaux d'un projet, utilisez la méthode targetHttpsProxies.aggregatedList avec le paramètre de requête includeAllScopes défini sur true. Utilisez ensuite le paramètre de requête filter pour rechercher les proxys HTTPS cibles qui ne font pas référence à une règle SSL.

    curl \
        'https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/targetHttpsProxies?filter=sslPolicy%3D%22%22&includeAllScopes=true&key=YOUR_API_KEY' \
        --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
        --header 'Accept: application/json' \
        --compressed
    
  • Pour associer une règle SSL globale existante à un proxy SSL cible :

    gcloud compute target-ssl-proxies update TARGET_SSL_PROXY_NAME \
        --ssl-policy SSL_POLICY_NAME
    
  • Pour associer une règle SSL globale existante à un proxy HTTPS cible mondial :

    gcloud compute target-https-proxies update TARGET_HTTPS_PROXY_NAME \
        --ssl-policy SSL_POLICY_NAME
    
  • Pour associer une règle SSL régionale existante à un proxy HTTPS cible régional :

    gcloud compute target-https-proxies update REGIONAL_TARGET_HTTPS_PROXY_NAME \
        --ssl-policy SSL_POLICY_NAME \
        --region REGION
    

Si vous ne fournissez pas l'option --ssl-policy ou l'option --clear-ssl-policy dans une mise à jour du proxy cible (par exemple, lors de la mise à jour d'un certificat SSL), la règle SSL n'est pas modifiée. L'option --clear-ssl-policy est décrite dans la section Supprimer une règle SSL d'un proxy cible.

API

Pour définir une règle SSL globale pour un proxy cible global, utilisez la méthode targetHttpsProxies.patch.

Pour définir une règle SSL régionale pour un proxy cible régional, utilisez la méthode regionTargetHttpsProxies.patch.

Supprimer une règle SSL d'un proxy cible

Console

gcloud

Utilisez ces commandes pour supprimer une règle SSL d'un proxy SSL ou proxy HTTPS. Si vous n'associez pas une autre règle SSL au proxy cible, l'équilibreur de charge utilisera la règle SSL par défaut. L'utilisation de l'option --clear-ssl-policy équivaut au fait de remplacer une règle SSL par la règle SSL par défaut.

Pour supprimer une règle SSL globale d'un proxy SSL cible, procédez comme suit :

gcloud compute target-ssl-proxies update TARGET_SSL_PROXY_NAME \
    --clear-ssl-policy

Pour supprimer une règle SSL globale d'un proxy HTTPS cible mondial, procédez comme suit :

gcloud compute target-https-proxies update TARGET_HTTPS_PROXY_NAME \
    --clear-ssl-policy

Pour supprimer une règle SSL régionale d'un proxy HTTPS cible régional, procédez comme suit :

gcloud compute target-https-proxies update REGIONAL_TARGET_HTTPS_PROXY_NAME \
    --clear-ssl-policy \
    --region REGION

Lorsque vous fournissez l'option --clear-ssl-policy dans la commande de mise à jour, la règle SSL est supprimée du proxy.

Si vous ne fournissez pas l'option --clear-ssl-policy ou l'option --ssl-policy dans la mise à jour du proxy cible (par exemple, lors de la mise à jour d'un certificat SSL), la règle SSL n'est pas modifiée. L'option --ssl-policy est décrite dans la section Associer une règle SSL existante à un proxy cible existant.

Gérer les règles SSL

Si vous utilisez des contraintes personnalisées pour restreindre les fonctionnalités TLS, vérifiez manuellement la conformité TLS dans les règles SSL préexistantes associées aux proxys SSL cibles et aux proxys HTTPS cibles.

Suivez l'exemple ci-dessous pour rechercher et mettre à jour les règles SSL qui ne répondent pas à vos objectifs de sécurité.

  • Pour rechercher tous les projets de votre organisation disposant de ressources de règles SSL, procédez comme suit :

    gcloud asset search-all-resources \
      --scope=organizations/ORGANIZATION_ID \
      --asset-types=compute.googleapis.com/SslPolicy
    
  • Pour répertorier toutes les règles SSL globales et régionales d'un projet, utilisez la méthode sslPolicies.aggregatedList avec le paramètre de requête includeAllScopes défini sur true. Ensuite, utilisez le paramètre de requête filter pour rechercher les règles SSL qui ne correspondent pas à vos objectifs de sécurité.

    Par exemple, pour rechercher des règles SSL avec une version TLS antérieure à 1.2, utilisez le filtre minTlsVersion="TLS_1_0" OR minTlsVersion="TLS_1_1" :

    curl \
    
      'https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/sslPolicies?filter=minTlsVersion%3D%22TLS_1_0%22%20OR%20minTlsVersion%3D%22TLS_1_1%22&includeAllScopes=true&key=YOUR_API_KEY' \
      --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
      --header 'Accept: application/json' \
      --compressed
    

    Pour obtenir votre clé API, consultez S'authentifier à l'aide de clés API. Pour obtenir votre jeton d'accès, utilisez la méthode projects.serviceAccounts.generateAccessToken.

    Mettez ensuite à jour les règles SSL qui ne répondent pas à votre exigence TLS minimale.

    Pour mettre à jour une règle SSL globale, vous pouvez utiliser la commande suivante:

    gcloud compute ssl-policies update SSL_POLICY_NAME \
      --min-tls-version=TLS_1_2 \
      --global
    

    Pour mettre à jour une règle SSL régionale, vous pouvez utiliser la commande suivante:

    gcloud compute ssl-policies update SSL_POLICY_NAME \
      --min-tls-version=TLS_1_2 \
      --region REGION
    

  • Pour répertorier tous les proxys SSL cibles d'un projet qui ne sont pas associés à une règle SSL, exécutez la commande suivante:

    curl \
    
      'https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/targetSslProxies?filter=sslPolicy%3D%22%22&key=YOUR_API_KEY' \
        --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
        --header 'Accept: application/json' \
        --compressed
    

    Pour associer une règle SSL à ces proxys cibles, consultez la section Associer une règle SSL existante à un proxy cible existant.

  • Vous pouvez également utiliser l'inventaire des éléments cloud ou Google APIs Explorer pour rechercher et mettre à jour les ressources qui ne répondent pas à vos exigences de sécurité.

    Par exemple, pour rechercher une liste de proxys SSL cibles qui ne sont pas associés à une règle SSL, vous pouvez suivre la procédure ci-dessous dans inventaire des éléments cloud:

    1. Dans la console Google Cloud, accédez à la page Inventaire des éléments.

      Accéder à l'inventaire des éléments

    2. Cliquez sur Requête sur les composants.

    3. Dans le champ Edit query (Modifier la requête), saisissez la requête suivante, puis cliquez sur Run (Exécuter).

      select * from `compute_googleapis_com_TargetSslProxy` where resource.data.sslPolicy IS NULL
      
    4. Pour associer une règle SSL à ces proxys cibles, consultez la section Associer une règle SSL existante à un proxy cible existant.

    5. Exécutez la requête dans l'inventaire des éléments cloud jusqu'à ce que la réponse soit vide.

Limites

Consultez les quotas et limites de l'équilibreur de charge.

Documentation de référence de l'API

Pour une description des propriétés et des méthodes disponibles lorsque vous utilisez des règles SSL via l'API REST, consultez les pages suivantes :

Produit Documentation de l'API
  • Équilibreur de charge d'application externe global
  • Équilibreur de charge d'application classique
  • Équilibreur de charge d'application interne interrégional
  • Équilibreur de charge réseau proxy externe global
  • Équilibreur de charge réseau proxy classique
sslPolicies
  • Équilibreur de charge d'application externe régional
  • Équilibreur de charge d'application interne régional
regionSslPolicies

Documentation de référence sur la CLI gcloud

Pour Google Cloud CLI, consultez les ressources suivantes :

Étapes suivantes