이번 챕터에서는 로그인을 위한 Cognito 사용자 풀(user pool)과 AWS 자격 증명을 위한 자격 증명 풀(identity pool)의 차이를 명확히 구분합니다. 그런 다음 토큰 내부 정보를 신뢰하기 전에 토큰 서명을 검증하는 방법을 배웁니다. 이어서 권한이 실제로 어디서 비롯되는지, 즉 자격 증명 정책(identity policy), 리소스 정책(resource policy), 그리고 이를 제한하는 권한 경계(boundary) 사이의 관계를 파악하고, 이를 바탕으로 API Gateway 엔드포인트에 IAM, Cognito, Lambda 권한 부여자(authorizer) 중 무엇을 사용할지 선택하는 방법을 배웁니다. 마지막으로 코드와 로그에서 민감 정보를 안전하게 보호하는 방법을 배우며, 사고 발생 시 점검을 견딜 수 있는 저장소 선택, 마스킹, 교체(rotation) 습관을 익힙니다.
Exercise 1: 사용자 풀, 자격 증명 풀, JWTExercise 2: 토큰을 신뢰하기 전에 먼저 검증하세요Exercise 3: 클레임을 바탕으로 접근 권한 판단하기Exercise 4: Cognito의 올바른 구성 요소 선택하기Exercise 5: 아이덴티티, 리소스, 경계Exercise 6: 정책을 어디에 둘지 선택하기Exercise 7: 거부한 계층 찾기Exercise 8: 테넌트 하나 격리하기Exercise 9: API Gateway 권한 부여자 선택하기Exercise 10: 호출자와 출입문 짝짓기Exercise 11: 스테일 윈도우(Stale Window) 닫기Exercise 12: 혼동된 대리인 문제 막기Exercise 13: 코드와 로그에서 민감 정보 숨기기Exercise 14: 값이 저장되는 위치Exercise 15: 정보를 가리면서도 디버깅은 가능하게 하기Exercise 16: 교체 상황에서 살아남기