AWS Secret Manager vs Parameter Store
AWS Secret Manager vs Parameter Store — #개발자의도구들 #AWSSecretManager #AWSParameterStore DVA-C02에서 자주나오는 두 서비스 ...
#개발자의도구들 #AWSSecretManager #AWSParameterStore
DVA-C02에서 자주나오는 두 서비스
DVA-C02 문제 풀다보면 매우 자주나오는 서비스들이다. 이 둘이 하는 역할이 key 저장하는건데 좀 비슷해서 헷갈릴 때가 많다. 이번 기회에 정리해보자.
공통점
- 둘 다 AWS 관리형 서비스로 민감 정보를 안전하게 저장한다.
- KMS 기반 암호화를 지원한다.
- IAM 정책으로 접근 제어가 가능하다.
- API/CLI/SDK로 값을 읽을 수 있다.
- 전송 중 암호화(HTTPS)를 기본으로 적용한다.
차이점
| 항목 | Parameter Store | Secrets Manager |
|---|---|---|
| 주 목적 | 설정 값, 구성 데이터, 암호 등 일반 Key-Value 저장 | DB 암호, API 키, 자격 증명 등 민감 정보 저장·관리 |
| 암호화 유형 | SecureString → KMS(고객관리키/기본키) 암호화 | KMS 암호화(고객관리키/기본키) |
| 자동 교체(Rotation) | ❌ 없음 (직접 구현 필요) | ✅ 지원 (Lambda로 비밀번호/API 키 자동 변경) |
| 버전 관리 | ✅ 지원 | ✅ 지원 |
| 통합 기능 | SSM, EC2 User Data, Lambda, ECS 등에서 바로 참조 가능 | RDS, Redshift, DocumentDB 등과 자동 연동 가능 |
| 사용 요금 | 표준 파라미터 무료, 고급 파라미터(Advanced)는 소액 과금 | 저장 크기+API 호출 수 기반 과금(비교적 비쌈) |
| 최대 값 크기 | 표준 4KB / 고급 8KB | 최대 64KB |
| 보안 감사 | CloudTrail로 접근 로깅 가능 | CloudTrail로 접근 로깅 가능 + 자동 교체 이벤트 로깅 |
| 사용 난이도 | 간단, 저비용, 설정값/비밀 둘 다 저장 가능 | 보안 중심, 관리 기능 풍부, 비용↑ |
GPT가 정리해준 차이점이다. 뭐 깊게 들어가면 여러가지를 봐야겠지만 가장 중요한 건 언제 써야 되는지를 제대로 아는 것이 중요하다.
언제 써야 하나요?
우선차이점에서 주목해야할 핵심 부분은 바로 Rotation 부분이다. AWS System Manager Parameter Store는 이 Rotation을 지원하지 않지만, Secret Manager는 지원한다.
Rotation이라 함은 간단한데, 주기적으로 저장된 값을 변경하는 것을 의미한다. SecretManager의 경우 Lambda로 비밀번호나 API 키 값을 자동으로 변경 시키도록 구현할 수 있다. 주기적으로 변경해야하는 민감한 정보를 여기에 저장하면 좋다.
📌 선택 가이드
- Parameter Store
- 일반 앱 구성 값(API Endpoint, 설정 플래그)
- 자주 바뀌지 않는 암호 및 토큰
- 비용이 민감한 경우
- Secrets Manager
- 주기적으로 변경해야하는 민감 정보 (DB 비밀번호, API 키)
- RDS / Redshift/ DocumentDB 등과 자동 교체 필요
- 보안 감사, 권한 세분화 자동 로테이션 중요
자동 로테이션 -> SecretManager
저비용 + 단순 저장 -> Paramter Store
추가 정보
환경별 경로로 구분 가능
Parameter Store에서는 파라미터 이름에 디렉터리 경로처럼 / 를 사용하여 계층 구조를 만들 수 있다. 이를 활용하면 환경(dev/test/prod) 별로 값을 쉽게 구분 관리할 수 있다.
/dev/api/url → 개발 환경 API URL
/dev/api/auth-type → 개발 환경 인증 방식
/prod/api/url → 운영 환경 API URL
/prod/api/auth-type → 운영 환경 인증 방식
- 환경별로 같은 파라미터 이름 구조를 유지하면서 값만 달리 저장이 가능해진다.
- ECS 나 lambda에서 참조 시, 환경에 맞는 경로 값만 부르면 된다.