View a markdown version of this page

Modes de validation supplémentaires - Amazon CloudFront

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Modes de validation supplémentaires

Le mode obligatoire est le mode par défaut pour le protocole TLS CloudFront mutuel : il CloudFront valide chaque certificat client et refuse les connexions qui échouent. Toutefois, pour prendre en charge d'autres cas d'utilisation, tels que les applications qui desservent un mélange de clients m TLS-authenticated et non authentifiés, ou les environnements dans lesquels le serveur d'origine effectue sa propre validation MTLS, deux modes supplémentaires sont pris CloudFront en charge.

Le mode optionnel est conçu pour les applications avec des populations de clients mixtes. Par exemple, un portail qui diffuse du contenu public à des navigateurs non authentifiés tout en limitant les points de terminaison d'API aux clients présentant des certificats valides. Ou un scénario de migration dans lequel vous intégrez progressivement les clients aux MTL et devez autoriser les connexions authentifiées et non authentifiées pendant la transition.

Le mode passthrough est conçu pour les clients dont les serveurs d'origine effectuent déjà la validation MTLS. Par exemple, les services qui migrent à partir de proxys inverses sur site, d'autres CDN ou d'équilibreurs de charge d'application qui gèrent déjà la vérification des certificats. Le mode passthrough permet à ces clients de se placer CloudFront devant leurs applications sans avoir à réimplémenter la logique de validation à la périphérie.

Mode optionnel

Validation du certificat client Mode facultatif

CloudFront propose un autre mode facultatif de validation des certificats clients qui valide les certificats clients présentés mais autorise l'accès aux clients qui ne présentent pas de certificats.

Comportement du mode facultatif

  • Accorde la connexion aux clients dotés de certificats valides (les certificats non valides sont refusés).

  • Permet la connexion aux clients sans certificat.

  • Permet des scénarios d'authentification client mixtes via une distribution unique.

Le mode optionnel est idéal pour la migration progressive vers l'authentification mTLS, la prise en charge des clients détenteurs de certificats et des clients dépourvus de certificats, ou le maintien de la rétrocompatibilité avec les anciens clients.

Note

En mode facultatif, les fonctions de connexion sont toujours invoquées même lorsque les clients ne présentent pas de certificats. Cela vous permet d'implémenter une logique personnalisée, telle que la journalisation des adresses IP des clients ou l'application de politiques différentes en fonction de la présentation des certificats.

Pour configurer le mode facultatif (console)

  1. Dans vos paramètres de distribution, accédez à l'onglet Général, puis choisissez Modifier.

  2. Accédez à la section Authentification mutuelle (mTLS) du visualiseur dans le conteneur de connectivité.

  3. Pour le mode de validation du certificat client, sélectionnez Facultatif.

  4. Enregistrez les modifications.

Pour configurer le mode facultatif (AWS CLI)

L'exemple suivant montre comment configurer le mode facultatif :

"ViewerMtlsConfig": { "Mode": "optional", ...other settings }

Personnaliser les en-têtes de certificats

Utilisez les fonctions d'assistance mTLS dans Viewer-request CloudFront Functions pour renommer, reformater ou combiner les en-têtes de certificat avant qu'ils n'atteignent votre origine. Cela est utile lors de la migration depuis d'autres services qui utilisent des noms d'en-tête ou des formats de codage de certificats différents.

Mode passthrough

Le mode passthrough permet aux clients disposant d'implémentations MTLS existantes à l'origine de les utiliser. CloudFront CloudFront met fin à la connexion TLS et transmet le certificat client à votre origine sous forme d'en-têtes HTTP. Votre origine effectue toutes les validations des certificats, y compris la vérification en chaîne, le contrôle de révocation et l'application des politiques personnalisées.

Comment fonctionne le mode passthrough

  1. Le client se connecte à un certificat client CloudFront et le présente lors de la prise de contact TLS.

  2. CloudFront termine le handshake TLS sans valider le certificat par rapport à un trust store.

  3. CloudFront ajoute le certificat client et la chaîne de certificats en tant qu'en-têtes HTTP sur la demande.

  4. La demande est transmise à votre point d'origine. Aucun contenu n'est mis en cache.

  5. Votre origine valide le certificat et traite la demande.

Les clients peuvent également se connecter sans présenter de certificat. Votre fonction d'origine ou de connexion gère les scénarios de certificats vides.

Note

En mode relais, les fonctions de connexion sont toujours invoquées même lorsque les clients ne présentent pas de certificats. Cela vous permet d'implémenter une logique personnalisée, telle que la journalisation des adresses IP des clients ou l'application de politiques différentes en fonction de la présentation des certificats.

Exigences de configuration

  • Aucun magasin de confiance : la distribution ne doit comporter aucune association de magasins de confiance.

  • Mise en cache désactivée : tous les comportements du cache doivent utiliser la politique de CachingDisabled cache géré.

  • Origin Shield interdit — Origin Shield ne peut pas être activé.

  • Lambda @Edge interdite — Les associations de fonctions Lambda @Edge ne sont pas autorisées.

  • Politique de demande d'origine requise — Vous devez autoriser la liste des Client-Cert-Chain en-têtes Client-Cert et dans votre politique de demande d'origine pour que l'origine puisse les recevoir.

  • Certificate-chain-depth— CloudFront permet une profondeur maximale de 4 pour que la chaîne de certificats client soit transmise aux origines.

Activer le mode passthrough

Console

  1. Mettez à jour tous les comportements du cache pour utiliser la politique de CachingDisabled cache géré.

  2. Ouvrez la CloudFront console et choisissez votre distribution.

  3. Choisissez l'onglet Général, puis sélectionnez Modifier dans Paramètres.

  4. Sous Authentification mutuelle Viewer (mTLS), sélectionnez Passthrough.

  5. Sélectionnez Enregistrer les modifications.

AWS INTERFACE DE LIGNE DE COMMANDE (CLI)

Assurez-vous que tous les comportements du cache font référence à la CachingDisabled politique gérée, puis mettez à jour la configuration de distribution :

{ "ViewerMtlsConfig": { "Mode": "passthrough" } }

En-têtes transférés à l'origine

CloudFront ajoute les en-têtes suivants à la demande envoyée à votre origine :

  • Client-Cert— Le certificat d'entité finale (feuille) présenté par le client, codé en base64.

  • Client-Cert-Chain— La chaîne de certificats (à l'exception de la feuille), sous forme de liste de champs structurée. Chaque certificat est codé en base64. Client-Cert-Chainest un en-tête de type liste. Il peut apparaître plusieurs fois dans une demande. La concaténation de toutes les valeurs préserve l'ordre de chaîne d'origine. Client-Cert-Chainest omis lorsque le client ne présente qu'un seul certificat.

CloudFront supprime les entrées Client-Cert ou Client-Cert-Chain les en-têtes de la demande du client avant d'ajouter les données de certificat réelles. Cela empêche l'usurpation d'en-tête.

Personnaliser les en-têtes de certificats

Utilisez les fonctions d'assistance mTLS dans Viewer-request CloudFront Functions pour renommer, reformater ou combiner les en-têtes de certificat avant qu'ils n'atteignent votre origine. Cela est utile lors de la migration depuis d'autres services qui utilisent des noms d'en-tête ou des formats de codage de certificats différents.