앱을 운영하다 보면 데이터베이스 비밀번호, 외부 서비스 API 키, 인증 토큰 같은 민감한 정보를 어딘가에 저장해야 합니다. 이 정보를 코드에 직접 써넣으면 GitHub에 올리는 순간 전 세계에 공개될 위험이 있습니다. 이를 안전하게 관리하는 방법을 알아봅시다.
DVA-C02 시험에서 시크릿 관리 문제는 비밀번호와 API 키를 어디에 어떻게 저장하는가를 집중적으로 묻습니다.
AWS Secrets Manager
AWS Secrets Manager는 앱의 민감한 정보를 안전하게 보관하고 자동으로 갱신해주는 서비스입니다. 쉽게 말하면 비밀 정보 자동 관리 금고입니다.
핵심 기능: 자동 교체(Auto Rotation) 데이터베이스 비밀번호를 주기적으로 자동 변경합니다. Lambda 함수를 통해 교체 로직을 실행합니다. RDS, Redshift 등과 직접 통합되어 있어 DB 비밀번호 교체가 매우 간단합니다. 크로스 계정 공유: 다른 AWS 계정에도 시크릿을 안전하게 공유할 수 있습니다. 비용: 시크릿 하나당 월 $0.40
AWS Systems Manager Parameter Store
Parameter Store는 앱 설정값과 민감한 정보를 저장하는 곳입니다. 쉽게 말하면 앱 설정 창고입니다. 무료로 사용할 수 있어 단순한 설정 저장에 많이 씁니다.
두 가지 계층이 있습니다. 표준(Standard): 무료, 파라미터 10,000개까지, 값 크기 4KB 제한 고급(Advanced): 유료, 100,000개까지, 값 크기 8KB, 파라미터 정책(만료일 등) 설정 가능
경로 기반 계층 구조로 환경별 설정을 깔끔하게 관리할 수 있습니다. /app/dev/db-url (개발 환경 DB 주소) /app/prod/db-url (운영 환경 DB 주소)
Secrets Manager vs Parameter Store 비교
| 항목 | Secrets Manager | Parameter Store | |------|----------------|-----------------| | 자동 교체 | 지원 (Lambda 기반) | 미지원 (직접 구현 필요) | | 비용 | 시크릿당 $0.40/월 | 표준 파라미터 무료 | | 크로스 계정 공유 | 지원 | 미지원 | | 통합 | RDS, Redshift 자동 교체 내장 | 범용 설정 저장 |
선택 기준: DB 비밀번호를 자동으로 바꾸고 싶다 → Secrets Manager 일반 설정 값 저장, 비용을 아끼고 싶다 → Parameter Store (표준) Lambda 환경 변수를 안전하게 저장하고 싶다 → Parameter Store (SecureString)
!Secrets Manager vs Parameter Store
Lambda 환경 변수 보안
Lambda 함수에서 민감한 정보를 다룰 때 주의해야 합니다.
잘못된 방법: 코드 안에 직접 적기
이렇게 하면 코드가 Git에 올라가는 순간 비밀번호가 공개됩니다.
올바른 방법 두 가지: KMS로 Lambda 환경 변수 자체를 암호화 (Lambda 콘솔에서 간단히 설정 가능) 런타임에 Secrets Manager 또는 Parameter Store에서 동적으로 조회
PII와 PHI 보호
PII(개인 식별 정보)는 특정 개인을 식별할 수 있는 정보입니다. 이름, 이메일 주소, 전화번호, 주민등록번호 등이 해당합니다. PHI(보호 건강 정보)는 환자의 의료 기록, 진단 정보 등 건강 관련 민감 정보입니다.
보호 방법: 데이터 마스킹: 일부만 보여주고 나머지는 숨기기. 예: 010-XXXX-5678 데이터 제거(Sanitization): 더 이상 필요 없는 민감 데이터를 완전히 삭제 Amazon Macie: S3 버킷 안에 PII가 있는지 자동으로 찾아주는 서비스. 쉽게 말하면 개인정보 자동 탐지기입니다.
시험 핵심 정리
"DB 비밀번호 자동 교체" -- Secrets Manager
"무료 설정 저장, 일반 용도" -- Parameter Store (Standard)
"Lambda 환경 변수 암호화" -- KMS 또는 Parameter Store SecureString
"코드에 비밀번호 하드코딩 방지" -- Secrets Manager 또는 Parameter Store에서 런타임 조회
"S3에서 PII 자동 탐지" -- Amazon Macie
"크로스 계정 시크릿 공유" -- Secrets Manager
Secrets Manager = 자동 교체 + 유료, Parameter Store = 수동 관리 + 무료