Comment restreindre l’accès à votre distribution CloudFront avec l’authentification de base
Pour que cela fonctionne, vous devez d’abord créer un Lambda
fonction, qui est donnée ci-dessous:
Pour rester simple, vous devez définir le nom d’utilisateur et le mot de passe à stocker en mémoire. Mais si vous souhaitez avoir plusieurs utilisateurs qui peuvent se connecter à cette distribution, vous devez connecter le Lambda
fonction à DynamoDB, où vous stockeriez les utilisateurs et leurs mots de passe.
La logique principale réside dans la validation de l’en-tête, où vous validez si le Authorization
en-tête existe et si sa valeur correspond à la basicAuthentication
valeur. basicAuthentication
est la variable où le base64
la valeur codée de la combinaison nom d’utilisateur-mot de passe est stockée après son calcul.
En cas d’échec du contrôle, Lambda
renvoie une coutume 401 Unauthorized
réponse en attachant www-authenticate
en-têtes pour informer le client du type de la méthode d’authentification requise.
La deuxième étape consiste à permettre le déclenchement de cette fonction pour chaque requête adressée à la distribution. Vous devez publier une nouvelle version de votre Lambda
(Actions -> Publier une nouvelle version sur le Lambda
menu) et copiez le Lambda ARN
, ainsi que sa version. le Lambda ARN
devrait ressembler à ceci:
arn:aws:lambda:us-east-1:ACCOUNT_NUMBER:function:basic_auth:1
Ensuite, vous devez modifier le comportement de votre distribution CloudFront en associant le Lambda
fonctionner avec une demande de visionneuse, comme indiqué dans l’image suivante:
Ce comportement demandera à Lambda @ Edge de déclencher la Lambda
fonction pour chaque demande faite à la distribution.