Amazon DVA-C02: 보안, IAM, KMS 및 시크릿 관리 (Cognito, Secrets Manager, SSM) — 학습 가이드

다음의 일부입니다: AWS Developer Associate DVA-C02 — 학습 가이드. 검증된 답안으로 연습하기: Amazon 시험 허브, 또는 다음에서 시간 제한 모의고사 풀기: ExamRoll.io.

Cognito 인증, 권한 부여 및 API 통합

Amazon Cognito는 인증을 위한 사용자 풀과 임시 AWS 자격 증명을 위한 자격 증명 풀을 제공합니다. Cognito 사용자 풀을 사용하여 가입, 다중 인증(MFA), JWT(ID, 액세스, 리프레시 토큰) 발급을 관리합니다. 브라우저 기반 단일 페이지 앱은 클라이언트 보안 암호가 없는 앱 클라이언트를 사용해야 하며, 비밀번호 노출을 피하기 위해 호스팅 UI 또는 SRP 흐름을 구현하는 Amazon Cognito SDK(amazon-cognito-identity-js)를 사용해야 합니다. 서버나 API Gateway에서 사용자 풀의 JWKS URI를 가져와 서명, 발급자, 대상(aud), 토큰 만료 시간을 검증하여 JWT를 확인합니다. API Gateway JWT 권한 부여 기능이나 Lambda 사용자 지정 권한 부여 기능이 이 검증을 수행할 수 있습니다. 서버 간 인증을 위해서는 Cognito 자격 증명 풀과 sts:AssumeRoleWithWebIdentity를 통해 사용자 풀 토큰을 임시 자격 증명으로 교환합니다. 잘못 구성된 콜백 또는 로그아웃 URL, 토큰 범위나 그룹을 검증하지 않는 것, ID 토큰을 AWS API 호출에 직접 사용할 수 있다고 예상하는 것(자격 증명 풀을 통해 교환해야 함) 등이 일반적인 실수입니다. 세분화된 권한 부여를 위해서는 그룹이나 사용자 지정 클레임을 사용하고, Cognito를 리소스 기반 정책 및 aws:userid 또는 cognito-identity.amazonaws.com:sub과 같은 IAM 조건 키와 결합하여 자격 증명을 AWS 역할에 매핑합니다. CloudTrail을 통해 로그인 및 관리자 작업을 감사하고, Cognito의 고급 보안 기능을 활성화하여 침해된 자격 증명을 탐지합니다.

실제 문제: 사용 사례 시나리오

시나리오: 게임 스튜디오인 PixelForge는 단일 AWS 계정에서 Lambda, API Gateway, S3, DynamoDB, Cognito 사용자 풀을 사용하여 서버리스 백엔드를 운영합니다. 여러 배포 단계에 대한 민감한 API 키와 데이터베이스 자격 증명이 저장되어 있으며, 제3자 감사팀은 1~24시간 동안 S3에 있는 프로덕션 이미지의 일부에 액세스해야 합니다.

과제: 외부 감사자에게 프로덕션 이미지에 대한 단기적이고 감사 가능한 액세스를 안전하게 제공하고, Lambda가 애플리케이션 보안 암호를 안전하게 순환하고 액세스하도록 보장하며, 관리자의 교차 계정 액세스에 MFA를 강제합니다.

권장 접근 방식:

  1. PixelForge 계정에 대한 복호화를 허용하는 키 정책과 감사자 IAM 역할을 위한 권한 부여(grant)를 포함하는 고객 관리형 KMS 키를 생성합니다. 키 순환을 활성화하고 복호화 작업 시 EncryptionContext를 요구합니다.
  2. Secrets Manager에 자격 증명(단계별로 별도의 보안 암호)을 저장하고, 최소한의 secretsmanager:GetSecretValue 권한과 KMS 키에 대한 kms:Decrypt 권한을 가진 IAM 역할을 Lambda에 연결합니다. AWS SDK를 사용하여 secretsmanager.getSecretValue({ SecretId })를 호출하는 Lambda 시작 코드를 구현합니다.
  3. 감사자 액세스를 위해 별도의 감사자 AWS 계정 역할을 생성하고, 리소스 기반 S3 버킷 정책에서 aws:PrincipalArn으로 제한된 감사자 계정으로부터의 sts:AssumeRole을 허용하고, 시간 제한이 있는 사전 구성된 역할 매핑을 사용합니다. sts:AssumeRole을 통해 단기 자격 증명을 생성하고, 역할 수임 시 aws:MultiFactorAuthPresent 조건을 사용하여 MFA를 강제합니다.
  4. CloudTrail(S3 및 KMS에 대한 관리 및 데이터 이벤트)로 모든 액세스를 기록하고, 추가적인 포렌식을 위해 S3 객체 수준 로깅과 Amazon Macie 또는 S3 Access Logs를 활성화합니다. 임시 감사자 세션이 특정 EncryptionContext를 사용하도록 요구하고, 추적성을 위해 객체/요청에 태그를 지정합니다.

근거: Secrets Manager를 KMS 및 단기 STS 자격 증명과 함께 사용하면 최소 권한 원칙을 강제하고, 자동 순환을 활성화하며, 보안 암호를 코드에 포함하는 것을 방지합니다. MFA 및 CloudTrail 데이터 이벤트를 사용하는 시간 제한이 있는 역할 수임(assume-role) 패턴은 직무 분리를 유지하면서 제3자에게 감사 가능하고 취소 가능한 액세스를 제공합니다.


배포 및 CI · 모든 도메인 · 모니터링

이 문제 연습하기 → · ExamRoll.io에서 시간 제한 연습 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

시험 합격하기 →

Amazon 찾아보기 →

Related guides

올인원 액세스

하나의 구독. 모든 시험.

모든 플랜은 무제한 답변 검색, 모의고사, AI 해설, 전체 자료 라이브러리를 20개 이상의 언어로 잠금 해제합니다.

월간
24.87
Just €0.83/day
모든 포함:
  • 무제한 답변 검색
  • 무제한 모의고사
  • AI 기반 해설
  • 전체 자료 라이브러리
  • 20개 이상의 언어
  • 주간 콘텐츠 업데이트
  • 보상 및 추천
  • 우선 지원
무료 체험 시작

신용카드 필요 없음*

최고의 가치
12개월
179.87
Just €0.49/daySave 40%
모든 포함:
  • 무제한 답변 검색
  • 무제한 모의고사
  • AI 기반 해설
  • 전체 자료 라이브러리
  • 20개 이상의 언어
  • 주간 콘텐츠 업데이트
  • 보상 및 추천
  • 우선 지원
무료 체험 시작

신용카드 필요 없음*

✓ 무료 플랜 포함 · ✓ 언제든지 취소 가능 · ✓ 모든 플랜은 전체 제품을 잠금 해제합니다