AWS Secrets Manager와 Parameter Store

AWS 데이터 스토어 활용

Dunieski Otano

AWS Solutions Architect

하드코딩된 비밀번호의 위험

  • 개발자가 코드에 데이터베이스 비밀번호를 하드코딩
  • 코드가 공개 GitHub 저장소에 푸시됨
  • 공격자가 12분 만에 비밀번호 발견
  • 데이터베이스 삭제 후 랜섬 요구

공격

AWS 데이터 스토어 활용

시크릿을 절대 하드코딩하면 안 되는 이유

  • 흔한 실수
    • 소스 코드에 하드코딩
    • 설정 파일에 평문 저장
    • 버전 관리 시스템에 커밋
  • 결과
    • 공개 저장소에 노출
    • 교체가 어려움
    • 감사 추적 불가

금지

AWS 데이터 스토어 활용

AWS Secrets Manager 개요

  • 목적
    • 자격 증명을 저장하고 자동으로 교체
  • 저장 대상
    • 데이터베이스 비밀번호, API 키, OAuth 토큰
  • 주요 기능
    • 자동 교체, KMS 암호화, 감사 로깅

sm

AWS 데이터 스토어 활용

Secrets Manager 자동 교체

  • 교체 프로세스
    • Lambda 함수가 자격 증명 업데이트
  • 교체 주기
    • 교체 시점 설정 (rate 또는 cron)
  • 무중단
    • 교체 중 기존 비밀번호와 새 비밀번호 모두 사용 가능

교체

AWS 데이터 스토어 활용

JSON 형식으로 시크릿 저장하기

  • 구조화된 시크릿
    • 하나의 시크릿에 여러 값 저장
  • JSON 형식
    • {"username": "admin", "password": "...", "host": "db.example.com"}
  • 조회 및 파싱
    • GetSecretValue API 사용

조회

AWS 데이터 스토어 활용

Parameter Store 개요

  • 소속 AWS Systems Manager
  • 목적
    • 설정값 및 정적 시크릿 저장
  • 계층적 구조
    • /app/prod/db/password
    • /app/dev/api-key
  • 무료 티어
    • 표준 파라미터 최대 10,000개 (최대 4 KB)
    • 고급 파라미터 (최대 8 KB)는 유료

ps

AWS 데이터 스토어 활용

Parameter Store 파라미터 유형

  • String
    • 평문 설정값 (기능 플래그, 엔드포인트)
  • StringList
    • 쉼표로 구분된 값 (IP 주소)
  • SecureString
    • KMS로 암호화 (비밀번호, API 키)

유형

AWS 데이터 스토어 활용

Secrets Manager vs Parameter Store 선택 가이드

  • Secrets Manager 사용 시
    • 자동 교체가 필요할 때
    • 데이터베이스 자격 증명 저장 시
  • Parameter Store 사용 시
    • 정적 설정값 저장 시
    • 비용 절감이 중요할 때 (무료 티어)
  • 함께 사용
    • 프로덕션 환경에서 일반적인 패턴

고급

AWS 데이터 스토어 활용

연습해 봅시다!

AWS 데이터 스토어 활용

Preparing Video For Download...