AWS
AWS Parameter Store 개념, 가이드
TedDev
2025. 6. 4. 18:55
728x90
Parameter Store란?
AWS Parameter Store는 애플리케이션 설정과 비밀 정보를 안전하게 저장하고 관리할 수 있는 완전 관리형 서비스입니다. 하드코딩된 설정 값 대신 중앙에서 관리되는 매개변수를 런타임에 가져와 사용할 수 있습니다.
주요 특징
계층적 구조
/myapp/dev/database/host
/myapp/prod/database/host
데이터 타입
- String : 일반 텍스트
- StringList : 쉼표로 구분된 목록
- SecureString : KMS 암호화된 민감 정보
핵심 장점
- KMS 암호화로 보안성 확보
- IAM을 통한 세밀한 권한 제어
- CloudFormation, Lambda 등과 완벽 통합
실사용 예제
CLI로 매개변수 관리
# 매개변수 생성
aws ssm put-parameter \
--name "/myapp/dev/db-host" \
--value "dev-db.example.com" \
--type "String"
# 암호화된 매개변수 생성
aws ssm put-parameter \
--name "/myapp/dev/db-password" \
--value "mySecret123" \
--type "SecureString"
# 매개변수 조회
aws ssm get-parameter --name "/myapp/dev/db-host"
aws ssm get-parameter --name "/myapp/dev/db-password" --with-decryption
Python에서 활용
import boto3
def get_parameter(name, decrypt=False):
ssm = boto3.client('ssm')
response = ssm.get_parameter(Name=name, WithDecryption=decrypt)
return response['Parameter']['Value']
# 사용 예제
db_host = get_parameter('/myapp/prod/db-host')
db_password = get_parameter('/myapp/prod/db-password', decrypt=True)
Lambda에서 설정 로드
import boto3
import os
def lambda_handler(event, context):
# 환경별 설정 로드
env = os.environ.get('ENV', 'dev')
config = load_config(f'/myapp/{env}')
# 비즈니스 로직 수행
return process_request(event, config)
def load_config(path):
ssm = boto3.client('ssm')
config = {}
paginator = ssm.get_paginator('get_parameters_by_path')
for page in paginator.paginate(Path=path, Recursive=True, WithDecryption=True):
for param in page['Parameters']:
key = param['Name'].split('/')[-1]
config[key] = param['Value']
return config
Parameter Store vs Secrets Manager
기능 | Parameter Store | Secrets Manager |
용도 | 일반 설정 관리 | 민감 정보 전용 |
자동 로테이션 | X | O |
가격 | 저렴 (Standard 무료) | 비쌈 |
크기 제한 | 4KB/8KB |
Parameter Store는 애플리케이션 설정 관리의 모든 요구사항을 만족하는 강력한 도구입니다. 적절한 네이밍 컨벤션과 보안 정책만 수립한다면 안전하고 효율적인 설정 관리 체계를 구축할 수 있습니다.
반응형