Application.properties의 관리
GitHub Secrets, AWS SSM Parameter Store, 그리고 AWS Secrets Manager 세 가지 옵션 중에서 어떤 것이 더 선호되는지에 대해 비교해 보겠습니다. 각 서비스는 민감한 정보를 관리하는 목적은 같지만, 기능과 사용 사례가 약간씩 다릅니다.
1. GitHub Secrets
- 장점
- 간단한 통합: GitHub Actions 워크플로우 내에서 바로 사용 가능.
- 비용 없음: GitHub 리포지토리 자체 기능으로 별도의 비용이 들지 않음.
- 단점
- AWS 외 다른 환경과의 통합 제한: GitHub Actions 내부에서만 사용 가능하며, 다른 클라우드 환경과 통합이 제한됨.
- 회전 기능 부족: 비밀 값 자동 회전 기능 없음.
2. AWS SSM Parameter Store
- 장점
- 저렴한 비용: 표준 파라미터는 무료로 제공되고
SecureString 타입도 비용이 매우 낮음.
- 통합 기능: EC2, Lambda, ECS 등 다양한 AWS 서비스와 통합이 용이함.
- 간편한 사용: Spring Cloud를 사용하여 쉽게 연동할 수 있음.
- 단점
- 회전 기능 제한: Secrets Manager에 비해 비밀 값 자동 회전 기능이 부족함.
3. AWS Secrets Manager
- 장점
- 자동 회전 기능: RDS와 같은 특정 서비스에 대한 자동 회전 기능 제공.
- 보안 기능 강화: IAM 및 KMS와 함께 높은 수준의 보안 관리 가능.
- 다양한 통합 기능: RDS, Lambda와 같은 AWS 서비스 및 다양한 언어의 SDK 지원.
- 단점
- 비용: Parameter Store보다 더 비쌈.
- 복잡성: SSM Parameter Store에 비해 조금 더 복잡한 설정 필요.
선호 방식 요약
- 간단한 프로젝트: GitHub Secrets
- 작은 규모의 프로젝트에서 빠르게 시작하기 위해 간단하게 사용 가능.
- AWS 서비스와 통합된 중간 규모 프로젝트: AWS SSM Parameter Store
- 대부분의 AWS 서비스와의 통합 및 저렴한 비용을 선호할 때 적합.
- 보안이 중요한 대규모 프로젝트: AWS Secrets Manager
- 자동 회전 기능과 높은 보안 수준이 필요한 대규모 프로젝트에서 유용.
개인적인 선호
- AWS SSM Parameter Store: 비용과 통합의 균형을 고려하여 중간 규모 프로젝트에서 선호합니다.
- EC2, Lambda와 쉽게 통합되고 Spring Cloud에서도 연동이 쉬워서 대부분의 Spring Boot 프로젝트에 적합합니다.
- AWS Secrets Manager: 대규모 프로젝트에서 민감한 정보의 자동 회전 및 강화된 보안이 필요할 때 선호합니다.
예시 코드