home
SAA-C03

[security] Parameter Store

설정값과 비밀을 여기저기 흩어두지 않고 한곳에서. Secrets Manager와는 언제 갈리는지도 함께 봅니다.

One-Line Summary

Parameter Store(SSM Parameter Store)는 설정값과 비밀을 계층적 경로(/앱/환경/키)로 저장하는 무료(Standard) 저장소로, 비밀은 KMS로 암호화(SecureString)한다. 시험에서는 "저렴하게/무료로 구성값·비밀 저장, 자동 회전은 불필요" → Parameter Store, "자동 회전 필요" → Secrets Manager로 갈린다. CloudFormation·ECS·Lambda가 값을 참조하는 실무 접점이 넓다.

뭔지 (What / Why)

앱이 쓰는 설정값(엔드포인트, 기능 플래그, 자격증명 등)을 코드에 박아두면 환경마다 재배포가 필요하고 관리가 어렵다.

Parameter Store는 이 값을 이름/경로로 중앙 관리하고, 비밀은 KMS로 암호화한다. Systems Manager의 일부라 별도 인프라가 없고 Standard 티어는 무료다.

/myapp/prod/db-url        (String,       평문)
/myapp/prod/db-password   (SecureString, KMS 암호화)
/myapp/dev/db-url         (String)
   │
   └─▶ 앱/Lambda/EC2/ECS/CloudFormation이 IAM 권한으로 런타임 조회

파라미터 유형과 계층 구조

유형의미
String평문 단일 값
StringList콤마 구분 목록
SecureStringKMS로 암호화된 비밀값

계층 경로(/)의 진짜 이점 = IAM 권한을 경로로 준다:

prod 역할에게: ssm:GetParameter*  on  arn:.../parameter/myapp/prod/*
  → prod 파라미터만 접근, dev는 차단. 경로 하나로 대량 권한 관리.
GetParametersByPath 로 /myapp/prod/ 아래를 한 번에 조회.

Standard vs Advanced 티어

항목StandardAdvanced
비용무료파라미터당 유료
계정/리전당 개수10,000100,000
값 크기4 KB8 KB
파라미터 정책없음만료(expiration)·미사용 알림

"설정이 아주 많다 / 값이 크다 / 만료 정책이 필요" = Advanced. 대부분은 Standard로 충분.

실무 활용 사례

사례 1. 환경별 설정 분리

  • /myapp/{dev,stage,prod}/... 구조 + 경로 기반 IAM으로 환경 격리. 배포 시 코드 변경 없이 파라미터만 교체.

사례 2. AWS 공개 파라미터로 최신 AMI 조회 (매우 실무적)

  • AWS가 최신 AMI ID 등을 공개 파라미터로 게시한다. CloudFormation/스크립트에서 하드코딩 대신 참조:
/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64
  → 항상 최신 Amazon Linux 2023 AMI ID (AMI 하드코딩 제거)

사례 3. CloudFormation / ECS / Lambda 연동

  • CloudFormation 동적 참조: {{resolve:ssm:/myapp/prod/db-url}}, 비밀은 {{resolve:ssm-secure:...}}.
  • ECS 태스크 정의·Lambda가 파라미터를 환경변수로 주입.

사례 4. Secrets Manager 비밀을 참조

  • Parameter Store 경로로 Secrets Manager 비밀을 읽어올 수 있다: /aws/reference/secretsmanager/{secret-name} → 인터페이스를 통일.

사례 5. 버전 관리

  • 값은 저장할 때마다 버전이 증가하고, 특정 버전/라벨을 지정해 조회·롤백 가능.

Parameter Store vs Secrets Manager (아주 빈출)

구분Parameter StoreSecrets Manager
비용Standard 무료유료(비밀당+호출)
자동 rotation없음(직접 Lambda)내장(RDS 등 네이티브)
주 용도설정값·저비용 비밀회전이 필요한 비밀
크기 한도4KB / 8KB최대 64KB
암호화SecureString=KMSKMS

회전 없이 저렴 = Parameter Store, 자동 회전·RDS 연동 = Secrets Manager. (자세히 secrets-manager.md)

Common Wrong Directions

오답 방향왜 부족한가
자동 회전이 필요한데 Parameter Store네이티브 회전은 Secrets Manager
단순 설정값에 비싼 Secrets Manager회전 불필요·비용 민감이면 Parameter Store
비밀을 String으로 평문 저장비밀은 SecureString(KMS)
AMI ID를 템플릿에 하드코딩공개 파라미터로 최신 AMI 참조
환경 격리를 값 이름 규칙으로만경로 기반 IAM으로 실제 접근 제어

Exam Triggers

문제에서 이런 표현이 나오면떠올릴 것
"store configuration/secrets at low or no cost"Parameter Store
"no rotation required, just secure storage"Parameter Store
"hierarchical config for multiple environments"Parameter Store(경로 + IAM)
"reference latest AMI without hardcoding"공개 파라미터
"resolve secret/config in CloudFormation"동적 참조 {{resolve:ssm...}}
"automatic secret rotation"Parameter Store 아님 → Secrets Manager

Memory Sentence

Parameter Store는 설정값·비밀을 /앱/환경/키 경로로 저장하는 무료(Standard) 저장소, SecureString은 KMS 암호화, 경로 기반 IAM으로 환경 격리한다. 공개 파라미터로 최신 AMI 참조, CloudFormation 동적 참조 지원. 회전이 필요 없고 저렴하면 Parameter Store, 자동 회전이면 Secrets Manager.

References

댓글

아직 댓글이 없습니다.