...
API Gateway 인증 키
지난 시간에 REST API Gateway 배포에 성공했었다.
하지만 만일 누군가가 불순한 의도를 가지고 프로그램을 이용하여 하루에 100만건의 api 요청 트래픽을 보내면 어찌될까?
서비스가 터져버릴 것이며, 요금 또한 핵폭탄을 맞게 될 것이다.
따라서 API Key를 생성하여 프로젝트별로 고객이 원하는 요청 속도, 할당량을 설정하여 제한하여야 한다.
API Key를 관리하여 사용자들에게 요청 권한을 제공하고, 사용량 계획을 이용하여 일,월 요청 수 또는 n초 당 m개의 요청 수를 제한하는 기능을 설정한다.
이렇게 개발자들은 주로 API Key와 사용량 계획, Lambda 권한 부여자를 함께 사용함으로서 API 엑세스를 제어 한다.
주의사항 ⚠️
API Key를 인증과 인가 목적으로 사용하는 것은 권장하지 않는다.
API Key는 보안상 안전하지 않기 때문이다.쉽게 도난이 가능하고 운영자가 만료시점에 맞게 별도로 관리해 주지 않으면 무한대로 사용이 가능하기 때문이다.
때문에 인증과 인가는 인증 토큰(Lambda 또는 Cognito)을 기반으로 구현하는 것이 좋다.
API Key 설정
가장 먼저 해당 api request에 API-KEY 사용함을 등록해주어야 한다.
그리고 나서 API KEY를 생성한다.
API 사용량 제한 설정
API키와 사용량 제한 설정을 마쳤으면 마지막으로 리소스를 재배포를 해서 api gateway 스테이지에 적용이 잘 되도록 한다.
키 제한 설정된 API 요청해보기
API 키 제한 테스트
Postman에서 실제로 api gateway endpoint url로 요청을 해보면 다음과 같이 Forbidden 에러가 뜨게 된다.
이때 상단에서 발급한 API KEY 문자열을, 요청 Header에 다음과 같이 넣고 재요청을 하면 정상적으로 api 처리가 됨을 확인 할 수 있다.
사용량 한도 테스트
실제로 api 요청을 10번 초과를 하니까 다음과 같이 Limit Exceeded 에러가 뜨게 된다.
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.