현재 이메일인증, 휴대폰인증은 람다를 통해서 요청을 보내며 원래는 x-api-key를 담아서 요청을 보내야만 에러가 안 나도록 해놨다. 하지만 헤더에 x-api-key가 노출이 되기에 보안적으로 전혀 안전하지가 않았다. 그래서 보통은 권한부여자를 통해 보안적으로 간다고하는데 이것 역시 헤더에 담아서 보내기에 노출이 되며 안전하지가 않았다. 우선 Apikey 자체를 보안적으로 쓰기엔 적절하지않다고한다. 보통 이것으로 사용량 조절을 많이하고 보안적으로는 권한부여자가 맞다고 하는데 람다를 하나 더 만들어 거기에서 권한이 있는지 없는지 체킹하고 권한이 있으면 람다로 보내고 없으면 에러를 띄우는 방식이었다. 그래서 권한부여자에서 jwt를 이용해서 프론트에서 요청을 보낼때마다 토큰을 새로 보내주면 그 토큰이 유효한지 확인하는 식으로 하고싶었는데 프론트에서 토큰을 보낼 수 있나 라는 생각이 들었다.. 그래서 이 방법은 일단 안 될거같았다.

현재 계속 찾아보고 고민하고 있는데 가장 현실적인 방법은 api gateway로 요청을 보낼 때 프론트에서 api gateway로 보내지말고 서버나 람다를 하나 더 두어서 api gateway로 요청을 보내는 것이 가장 간단한 방법일것 같다. 거기에 x-api-key에 권한부여자까지 발급해서 요청을 보낼 때 JWT 토큰을 헤더에 담아서 권한부여자에서 토큰을 검증까지하면 정말 안전할 것 같은데 닭 잡는데 소 잡는 칼 쓰는 기분이긴하다. 그래도 이 방법이 최선일거같은데 한번 매니저님에게 물어봐야할것같다.
'TIL' 카테고리의 다른 글
| Grafana (0) | 2023.02.11 |
|---|---|
| AWS API Gateway lambda 권한부여자 (1) | 2023.01.30 |
| Simple & Easy Notification Service + AWS lambda (0) | 2023.01.22 |
| PresignedURL S3 - Lambda image Resizing (0) | 2023.01.15 |
| nodemailer + AWS lambda (0) | 2023.01.04 |