서버리스 아키텍처에서 API 인증 및 권한 부여는 매우 중요한 부분입니다.
AWS Lambda를 사용하는 경우, AWS API Gateway를 이용하여 API를 노출하고 API 요청에 대한 인증 및 권한 부여를 구현할 수 있습니다.
이를 위해 API Gateway는 두 가지 방법을 제공합니다.
하나는 Token-based Authorizer이고 다른 하나는 Request-based Authorizer입니다.
이 블로그에서는 두 가지 방법에 대해 설명하고, AWS Lambda를 사용하여 서버리스 API 인증 및 권한 부여를 구현하는 방법을 자세히 다룰 예정입니다.
https://tobelinuxer.tistory.com/51
더불어 이전 포스트들에서 deploy한 결과가 어떻게 Lambda에 반영 됬는지도 함께 다루겠습니다.
아래와 같은 순서로 진행될 예정이며, 이 페이지에서는 1. 개요, 2. API Gateway Authorizer 소개 을 다루도록 하겠습니다.
1. 개요
- Serverless API와 인증 및 권한 부여의 중요성
2. API Gateway Authorizer 소개
- Token-based Authorizer
- Request-based Authorizer
3. Token-based Authorizer
- Token-based Authorizer 작동 원리
- Token-based Authorizer 구현 예시
4. Request-based Authorizer
- Request-based Authorizer 작동 원리
- Request-based Authorizer 구현 예시
5. 테스트
6. 결론
1. 개요: Serverless API와 인증 및 권한 부여의 중요성
서버리스 아키텍처는 기존의 서버 기반 아키텍처와 달리, 서버의 관리 및 운영 부담을 줄이고 개발자가 비즈니스 로직에 집중할 수 있는 환경을 제공합니다.
AWS Lambda를 사용한 서버리스 API 구축은 이러한 서버리스 아키텍처의 한 예입니다.
그러나 서버리스 환경에서도 보안은 여전히 중요한 고려사항입니다.
서버리스 API에서 인증 및 권한 부여는 사용자의 요청을 처리하기 전에 사용자의 신원을 확인하고, 해당 사용자가 요청한 리소스에 대한 접근 권한이 있는지 확인하는 과정입니다.
이를 통해 서비스를 안전하게 유지하고, 민감한 데이터를 보호하며, 과도한 요청으로 인한 서비스 과부하를 방지할 수 있습니다.
AWS에서는 API Gateway를 사용하여 이러한 인증 및 권한 부여 작업을 처리할 수 있습니다.
API Gateway는 사용자 요청을 처리하기 전에 사용자의 인증 정보를 확인하고, 사용자의 권한을 기반으로 요청을 허용하거나 거부할 수 있는 Authorizer 기능을 제공합니다.
이 글에서는 AWS Lambda와 API Gateway를 사용한 서버리스 API에서 Authorizer를 구현하는 방법에 대해 살펴보겠습니다.
Token-based Authorizer와 Request-based Authorizer에 대한 설명과 예제 코드, 그리고 Serverless Framework를 사용한 오프라인 테스트 방법을 다룰 예정입니다.
2. API Gateway Authorizer 소개
AWS API Gateway에서 제공하는 Authorizer는 크게 두 가지 유형이 있습니다: Token-based Authorizer와 Request-based Authorizer입니다.
각 유형은 인증 방식과 처리 방법에 차이가 있으며, 여러분의 API에 적합한 방식을 선택하여 사용할 수 있습니다.
Token-based Authorizer
Token-based Authorizer는 사용자의 요청 헤더에 포함된 인증 토큰을 기반으로 사용자의 신원을 인증하고 권한을 확인하는 방식입니다.
주로 JWT(JSON Web Token)나 OAuth 토큰 등이 사용됩니다.
Token-based Authorizer는 요청 헤더에서 토큰을 추출한 후, 해당 토큰의 유효성과 서명을 검증합니다.
검증이 완료되면 토큰에 포함된 사용자의 권한 및 기타 정보를 이용하여 인증 정책을 생성하고, 이를 바탕으로 요청을 허용하거나 거부합니다.
Request-based Authorizer
Request-based Authorizer는 요청의 헤더, 쿼리 스트링, 경로 변수 등 요청의 모든 정보를 기반으로 사용자의 인증 및 권한 확인을 수행하는 방식입니다.
이 방식은 Token-based Authorizer보다 더 유연한 인증 및 권한 부여 방식을 구현할 수 있습니다.
Request-based Authorizer는 요청의 모든 정보를 분석하여 사용자를 인증하고, 인증 정책을 생성한 후 요청을 허용하거나 거부합니다.
이 방식은 특정 요청 정보에 따라 다양한 정책을 적용하거나, 기존의 인증 시스템과 호환되도록 구성할 수 있습니다.
각 유형의 Authorizer는 서로 다른 요구 사항에 맞춰 사용할 수 있으며, 필요에 따라 복합적인 인증 및 권한 부여 방식을 구현할 수도 있습니다.
다음 섹션에서는 각 유형의 Authorizer를 Serverless Framework와 함께 구현하는 방법에 대해 살펴보겠습니다.
지금 보시는 글은 ChatGPT의 도움을 받아 작성되었습니다.
'ChatGPT > AWS Serverless' 카테고리의 다른 글
[AWS][LAMBDA][AUTHORIZER] TOKEN-BASED와 REQUEST-BASED 구현하기 - 3 (0) | 2023.04.04 |
---|---|
[AWS][LAMBDA][AUTHORIZER] TOKEN-BASED와 REQUEST-BASED AUTHORIZER 구현하기 - 2 (0) | 2023.04.04 |
[AWS][LAMBDA] 소개 - 3 (0) | 2023.04.04 |
[AWS][LAMBDA] 소개 - 2 (0) | 2023.04.04 |
[AWS][LAMBDA] 소개 - 1 (0) | 2023.04.04 |