DevOps

AWS Secrets Manager, KMS(Key Management Service)

팅리엔 2021. 4. 20. 23:44

AWS Secrets Manager

AWS의 비밀 값 관리 서비스
비밀 값들을 Secrets Manager에 저장하고, 애플리케이션에서 API를 통해 이 비밀 값들을 가져가 사용한다.

사용 절차

  1. Secrets Manager에 '비밀'을 만들고, 그 안에 key, value 형태의 비밀 값들을 등록한다.
  2. AWS CLI나 SDK를 사용해서 Secrets Manager에 비밀 값을 요청한다.
  3. 비밀 값을 요청할 때 특정 IAM 사용자로서 요청해야 하며, 이 사용자에게 비밀 값 조회 권한이 있다고 판단되면 비밀 값을 준다.

KMS (Key Management Service)

암호화 하는 데 사용되는 키를 관리하는 서비스
여기에 등록한 키를 다른 AWS 서비스가 가져다가 암호화를 진행한다.

Secrets Manager의 장점

  • '비밀'이라는 단위 안에 '비밀 값'들을 저장하므로 애플리케이션별로, 또는 환경별로 비밀 값들을 관리할 수 있다.
  • 각 값에 대한 변경 이력이 남으며 삭제해도 일정 기간 동안은 보존된다.
  • IAM 권한을 통하여 일부 관리자만 비밀 값에 접근하게 할 수 있다.

파라미터 스토어

AWS Systems Manager 서비스에 Secrets Manager와 비슷한 파라미터 스토어 기능이 있다.

  • 키/값 쌍으로 값 저장
  • KMS 이용해 암호화된 값 저장
  • IAM 이용해 일부 사용자만 접근 가능
  • AWS CLI, SDK 등 이용해 접근 가능
  • 값의 변경 이력 저장

차이점?

  • 파라미터 스토어는 무료 / Secrets Manager는 보안 정보당 월 0.40 USD, API 호출 1만 건당 0.05 USD
  • Secrets Manager는 RDS와 직접적 연동 가능
  • Secrets Manager는 값 삭제 후 일정 기간동안 복원 가능

 


참고

https://raymondhlee.wordpress.com/2019/10/11/using-aws-secrets-manager-to-manage-secrets-in-spring-boot-applications/