검증된 요청을 처리하고 브라우저 클라이언트를 지원하며 비공개 데이터에 애플리케이션 로그인을 요구하는 주문 API를 구축합니다. 관찰 가능한 요청과 저장된 결과를 통해 API Gateway, Lambda, DynamoDB, Cognito를 연결합니다.
안내형 실습 5개에서 HTTP API, 브라우저 CORS, Cognito 인증, JWT 경로 보호를 차례로 배웁니다. 독립 도전 과제에서는 공개 상태 확인 엔드포인트를 유지하면서 주문을 노출하는 비공개 API를 복구합니다.
배울 내용
- HTTP API를 통해 Lambda 함수 공개하기
- 주문 입력을 검증하고 DynamoDB 기반 결과 계산하기
- 브라우저 출처, 메서드, 헤더에 대한 CORS 동작 설정하기
- Cognito로 로그인하고 애플리케이션 자격 증명 갱신하기
- JWT 권한 부여자로 비공개 경로 보호하기
- 거부된 요청이 업무 데이터를 변경하지 않는지 테스트하기
- 공개 상태 확인 요청을 유지하면서 비공개 접근 복구하기
이 과정의 대상
Lambda와 데이터 접근 기초를 바탕으로 애플리케이션 API를 구축하고 보호하려는 학습자를 위한 과정입니다.
사전 요구 사항: Lambda 배포와 설정(FN01/FN02), IAM 역할, CloudWatch Logs를 먼저 학습하세요. 주문 API에는 Lambda–DynamoDB 접근(FN03)도 필요합니다. CORS와 로그인은 주문 API 다음에 학습할 수 있으며 JWT 경로 보호에는 로그인이 필요합니다. JWT 보호 후 챌린지에 진행하세요.
학습 환경: 모든 활동은 브라우저에서 제공되는 LabEx Linux 환경에서 진행합니다. AWS CLI 명령에는 Terminal을 사용하고, 옆의 AWS View에서 동일한 리소스와 애플리케이션 상태를 확인합니다. 도구와 연결은 준비되어 있으므로 개인 AWS 계정이나 액세스 키가 필요하지 않습니다. 각 실습은 새로운 VM에서 독립적으로 시작합니다. CORS 실습에서는 실제 브라우저 요청을 위한 Browser Client 항목을 AWS View에 제공합니다. 신원 화면은 비밀번호나 베어러 토큰 없이 안전한 메타데이터를 표시합니다.
자주 묻는 질문
CORS는 인증 방식인가요?
아니요. CORS는 브라우저 접근 동작을 제어하며 사용자 신원을 확인하지 않습니다. 애플리케이션 로그인은 IAM 리소스 권한과 별개이고, 유효한 JWT만으로 주문의 소유권이 증명되지는 않습니다.
비공개 경로는 어떻게 테스트하나요?
HTTP 요청이 의도한 함수를 실행하고 저장된 항목을 읽거나 써야 합니다. 인가가 거부된 요청은 Lambda에 도달하기 전에 중단되어 업무 데이터를 변경하지 않아야 합니다. 게이트웨이 결정, 함수 이벤트 및 응답 로그, 레코드를 비교하세요. 제공된 합성 신원만 사용하고 인증 파일을 비공개로 유지하세요.
어떤 API 및 로그인 기능을 다루나요?
HTTP API, $default AutoDeploy 스테이지, Python payload 2.0 통합, 범위가 제한된 Cognito 비밀번호 및 갱신 흐름과 RS256/JWKS JWT 흐름을 사용합니다. 경로 범위에는 Cognito 사용자 셀프서비스 범위를 사용합니다. 사용자 정의 업무 범위, 사용자별 주문 격리, 호스팅 OAuth/MFA, 프로덕션 서명 키 교체, 배포 자동화는 범위 밖입니다.
이 과정 후 프로젝트로 이어갈 수 있나요?
네. Secrets Manager와 Parameter Store 사전 요구 사항을 마치면 비공개 API 프로젝트에 이 역량을 활용할 수 있습니다. 각 단원은 새 환경에서 시작합니다. 직접 만든 리소스를 삭제하기 전에 기능을 확인하고 관련 없는 참조 리소스를 보존하세요.





