들어가며
안녕하세요. Amazon CloudFront와 AWS Lambda@Edge를 사용하여 간단하게 Basic HTTP Authentication을 하는 방법을 소개합니다.
Lambda@Edge 생성
Source: https://gist.github.com/lmakarov/e5984ec16a76548ff2b278c06027f1a4
위의 링크에서 Lambda 코드를 복사하여, 아래와 같이 신규 Lambda를 버지니아 북부 리전에 생성합니다.
위의 코드에는 authUser와 authPass가 HardCoding 되어있지만, 이부분은 수정이 가능합니다.
Best Practice는 Secrets Manager를 사용하는 것입니다.
Basic Auth의 목적은 어차피 간단한 인증이기에 이부분은 패스하고 넘어가도록 하겠습니다.
Lambda의 Role의 Trusted Entity를 다음과 같이 수정합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"lambda.amazonaws.com",
"edgelambda.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
CloudFront Trigger를 연결합니다.
다음과 같은 Lambda Edge를 배포합니다.
CloudFront에서도 잘 보이는지 확인합니다.
동작 확인
도메인으로 이동해 잘 동작하는지 확인합니다.
인증되지 않은 사용자의 경우 다음과 같이 Unauthorized로 표시되는 것을 확인할 수 있습니다.
정상적인 로그인의 경우 페이지가 잘 표시됩니다!
궁금하신 점이 있으시면 댓글 남겨주세요!
감사합니다.
'AWS > Network' 카테고리의 다른 글
Amazon CloudFront와 AWS Global Accelerator의 차이점 (0) | 2022.08.07 |
---|
댓글