정지용
기술스택 목록
인프라

AWS SSM Parameter Store

프로젝트 1에서 사용했습니다. 각 프로젝트에서 어떤 역할로 썼는지 아래에 정리했습니다.

이 기술은 무엇인가요?

설정 값과 시크릿을 계층 구조 경로로 저장하고 조회하는 AWS 관리형 저장소

AWS SSM Parameter Store는 애플리케이션 설정 값이나 시크릿을 키-값 형태로 저장하고, 필요할 때 API나 CLI로 조회할 수 있게 해주는 서비스이다. 환경변수나 설정 파일에 값을 직접 하드코딩하지 않고 중앙 저장소에서 관리함으로써, 코드와 설정을 분리하고 배포 환경마다 다른 값을 안전하게 주입할 수 있도록 만들어졌다. 접근 권한을 IAM으로 세밀하게 제어할 수 있고, 값 변경 시 코드를 다시 배포하지 않아도 되는 것이 특징이다.

이럴 때 사용합니다

  • 환경변수나 설정 파일에 시크릿을 직접 넣지 않고 중앙에서 안전하게 관리하고 싶을 때
  • 배포 파이프라인에서 환경별(dev/staging/prod)로 다른 설정 값을 참조해야 할 때
  • 별도 유료 시크릿 관리 서비스 없이 AWS 환경 안에서 가볍게 설정을 관리하고 싶을 때
  • 설정 값 변경 이력과 접근 권한을 IAM 기준으로 추적하고 통제하고 싶을 때

핵심 개념

Parameter
저장되는 개별 값의 단위로, 슬래시(/)로 구분되는 경로 형태의 이름을 가진다.
Parameter Type
String, StringList, SecureString 세 가지 유형이 있으며 SecureString은 값을 암호화하여 저장한다.
Hierarchy
경로 기반 네이밍으로 파라미터를 계층화하여 서비스나 환경별로 그룹화할 수 있다.
KMS Encryption
SecureString 타입 파라미터는 AWS KMS 키로 암호화되어 저장 및 조회 시 복호화 권한이 필요하다.
IAM Policy
파라미터별 또는 경로별로 조회·수정 권한을 세밀하게 제어하는 접근 제어 수단이다.
Versioning
파라미터 값이 변경될 때마다 이전 버전이 유지되어 특정 시점의 값을 다시 조회할 수 있다.

SecureString 파라미터 생성 및 조회

경로 기반 이름으로 시크릿을 SecureString 타입으로 저장하고, 조회 시 복호화 옵션을 붙여 실제 값을 가져오는 예시이다.

Shell
# 시크릿 값을 암호화하여 저장
aws ssm put-parameter \
  --name "/myapp/prod/db-password" \
  --value "s3cr3tValue" \
  --type "SecureString"

# 저장된 값을 복호화하여 조회
aws ssm get-parameter \
  --name "/myapp/prod/db-password" \
  --with-decryption

처음 쓸 때 흔한 함정

  • SecureString 조회 시 --with-decryption을 빼먹으면 암호화된 값이 그대로 반환된다
  • 파라미터 개수와 처리량에 제한이 있어 대규모 시크릿 관리에는 별도 서비스가 필요할 수 있다
  • IAM 정책을 경로 단위로 세밀하게 설정하지 않으면 과도한 조회 권한이 부여되기 쉽다

위 개요는 기술 학습을 돕기 위해 자동 생성된 일반 설명입니다. 정확한 사양과 최신 정보는 공식 문서를 확인하세요.

프로젝트별 활용 방식

위 개념이 실제 프로젝트에서 어떻게 쓰였는지 보여줍니다.

함께 사용한 기술

위 프로젝트들에서 같이 쓰인 다른 기술입니다.