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.
Vue d'ensemble et flux de travail
CloudFront Les fonctions de connexion sont un type spécialisé de CloudFront fonctions qui s'exécutent pendant le handshake TLS lorsqu'un client tente d'établir une connexion mTLS. Votre fonction de connexion peut accéder aux informations du certificat client, aux paramètres de configuration mTLS, aux résultats du contrôle de révocation du certificat et à l'adresse IP du client.
Les fonctions de connexion sont invoquées après CloudFront avoir effectué la validation standard des certificats (chaîne de confiance, expiration, vérification des signatures) mais peuvent être exécutées même si les vérifications de révocation des certificats échouent. Cela vous permet d'implémenter une logique personnalisée pour gérer les certificats révoqués ou ajouter des critères de validation supplémentaires.
Après avoir créé et publié une fonction de connexion, assurez-vous d'ajouter une association pour le type d'événement de demande de connexion avec une distribution compatible MTLS. Cela permet à la fonction de s'exécuter chaque fois qu'un client tente d'établir une connexion mTLS avec CloudFront.
CloudFront Les fonctions de connexion suivent un cycle de vie en deux étapes qui vous permet de développer et de tester des fonctions avant de les déployer en production. Ce flux de travail garantit le bon fonctionnement de vos fonctions de connexion avant qu'elles n'affectent le trafic réel.
Rubriques
Étapes de fonctionnement
Les fonctions de connexion se déclinent en deux étapes :
-
DÉVELOPPEMENT — Les fonctions de cette étape peuvent être modifiées, testées et mises à jour. Utilisez cette étape pour écrire et débugger le code de votre fonction.
-
LIVE — Les fonctions de cette étape sont en lecture seule et gèrent le trafic de production. Vous ne pouvez pas modifier directement les fonctions de la scène LIVE.
Lorsque vous créez une nouvelle fonction de connexion, elle commence dans la phase de DÉVELOPPEMENT. Après le test et la validation, vous publiez la fonction pour la déplacer vers le stage LIVE.
Flux de travail du développement
Suivez ce flux de travail pour développer et déployer des fonctions de connexion :
-
Créer — Créez une nouvelle fonction de connexion dans la phase de développement avec votre code et votre configuration initiaux.
-
Test : utilisez la fonctionnalité de test pour valider votre fonction à l'aide d'exemples d'événements de connexion avant le déploiement.
-
Mettre à jour : modifiez le code de fonction et la configuration selon les besoins en fonction des résultats des tests.
-
Publier — Lorsque vous êtes prête pour la production, publiez la fonction pour la faire passer de la phase DEVELOPMENT à la phase LIVE.
-
Associer : associez la fonction publiée à votre distribution compatible MTLS pour gérer les connexions en direct.
Pour apporter des modifications à une fonction LIVE, vous devez mettre à jour la version DEVELOPMENT et la publier à nouveau. Cela crée une nouvelle version dans la phase LIVE.
Différences par rapport aux autres types de fonctions
Les fonctions de connexion diffèrent des fonctions de demande et de réponse du spectateur de plusieurs manières importantes :
-
Les fonctions de connexion s'exécutent après la prise de contact mTLS, avant tout traitement HTTP
-
Les fonctions de connexion ont accès aux informations du certificat TLS au lieu des données HTTP request/response
-
Les fonctions de connexion peuvent uniquement autoriser ou refuser la connexion, pas modifier les données HTTP
-
Les fonctions de connexion ne sont invoquées que pour les nouvelles connexions TLS, et non pour la réutilisation des connexions
-
La reprise de session TLS n'est pas prise en charge par MTLS pour garantir que la validation des certificats a lieu à chaque connexion
-
Les fonctions de connexion s'exécutent en plus des fonctions standard de demande et de réponse du spectateur
-
Vous associez les fonctions de connexion au niveau de la distribution plutôt qu'au niveau du comportement du cache.
-
Les fonctions de connexion ne sont compatibles qu'avec JavaScript Runtime 2.0.