AWS Parameter Store를 사용하여 정보 공유를 하는 방법에대해 알아보자!
소개
안녕하세요! 클래스메소드 금상원 입니다. 이번 블로그에서는 AWS의 Parameter Store를 사용하여 정보를 공유하는 방법에 대해 알아보겠습니다.
Parameter Store는 구성 데이터를 중앙 집중식으로 관리하려고 하시는 분이나 다양한 로그인 및 참조 스트림을 저장하려는 소프트웨어 개발자, 자신의 보안 암호와 암호가 변경되거나 변경되지 않을 때 알림을 받으려는 관리자와 같은 분들이 사용하면 엄청 유용한 서비스가 될것이라고 생각합니다.
Parameter Store란?
구성 데이터 관리 및 암호 관리를 위한 안전한 계층적 스토리지를 제공합니다. 암호, 데이터베이스 문자열, Amazon Machine Image(AMI) ID, 라이선스 코드와 같은 데이터를 파라미터 값(String, StringList, SecureString)으로 저장할 수 있습니다.
Parameter Store 사용 이점
- 파라미터 및 파라미터 정책 모두에 대해 변경 알림을 구성하고 자동화된 작업을 호출할 수 있습니다.
- 데이터를 코드와 격리하여 보안 태세를 개선합니다.
- 구성 데이터 및 암호화된 문자열을 계층으로 저장하고 버전을 추적합니다.
- 세분화된 수준에서 액세스를 제어하고 감사합니다.
- Parameter Store는 AWS 리전의 여러 가용 영역에서 호스팅되기 때문에 파라미터를 안정적으로 저장합니다.
기능에 대하여
- 파라미터 및 파라미터 정책 모두에 대해 변경 알림을 구성하고 자동화된 작업을 호출하여 변경 알림을 사용할 수 있습니다.
- 파라미터에 태그를 지정및 IAM 정책을 생성하여 파라미터에 지정한 태그를 토대로 하나 이상의 파라미터를 개별적으로 액세스 구성 및 제어할 수 있습니다.
- Labels 버전을 설정하여 파라미터 버전이 여러 개일 때 버전의 용도를 기억할 수 있습니다.
- 리소스 유형을 참조하는지, 리소스가 존재하는지, 고객에게 리소스 사용 권한이 있는지 데이터 유효성 검사를 비동기 검증으로 작업을 수행합니다.
- 다른 AWS 서비스를 사용할 때 Secrets Manager 암호를 검색할 수 있도록 AWS Secrets Manager와 통합했습니다.
- 다른 AWS 서비스에서 액세스 가능
- 다른 AWS 서비스와 통합
요금에 대하여
AWS KMS 암호화 사용한 암호화 또는 고급계층 사용 이외에는 요금이 발생하지 않습니다.
AWS KMS요금에 대해서는 아래의 사이트에서 확인해 주세요
고급계층 사용에 대해서는 아래의 사이트에서 확인해 주세요
Secrets Manager와 차이점은?
- | Parameter Store | Secrets Manager |
---|---|---|
최대 데이터 크기 | 4KB, 8KB | 64KB |
KMS로 암호화 | O | O |
CFn에서 참조 가능 | O | O |
내장 암호 생성 | X | O |
비밀번호 자동교체 | X | O |
교차계정 액세스 | X | O |
비용 | 계층(Parameter tier)를 고급으로 사용하거나 KMS 암호화를 사용할 경우 발생 | O |
Parameter Store 작성 해보기
System Manager화면에서 왼쪽 메뉴에서 파라미터 스토어를 클릭한 후 [파라미터 생성] 버튼을 클릭합니다.
이름과 설명
[이름] 과 [설명]을 입력합니다.
이름을 입력할 때 파라미터 계층 구조를 사용하면 파라미터를 조직하고 관리하는 데 도움이 됩니다. 계층 구조는 최대 15레벨 구조로 설정할 수 있으며, 슬래시(/)를 사용하여 정의하는 경로를 포함한 파라미터 이름입니다.
계층 구조에대해 자세한 내용은 아래의 사이트를 확인해 주세요
파라미터 계층 구조 예제
- /Environment/Type of computer/Application/Data
- /Dev/DBServer/MySQL/db-string13
계층(Parameter tier)
표준 이나 고급중 하나를 선택해서 설정할 수 있습니다. 고급을 설정하면 표준으로 돌아갈 수 없습니다.
- [표준] : 파라미터의 한도는 10,000개입니다. 파라미터 값의 최대 크기는 4KB(4,096자)입니다. 파라미터 정책을 사용할 수 없습니다.
-
[고급] : 파라미터 정책을 사용할 수 있으며, 10,000개 이상의 파라미터를 생성할 수 있습니다. 파라미터 값의 최대 크기는 8KB(8,192자)입니다.
유형
- [문자열] : 모든 문자열 값입니다. 텍스트 형식과 aws:ec2:ami형식으로 작성할 수 있습니다.
- [문자열 목록] : 쉼표를 사용하여 문자열을 구분합니다.
예) Monday,Wednesday,Friday or CSV,TSV,CLF,ELF,JSON - [보안 문자열] : 계정 또는 다른 계정의 KMS 키를 사용하여 암호나 라이선스 키처럼 사용자가 일반 텍스트로 수정하거나 참조해서는 안 되는 중요한 데이터를 암호화합니다.
유형에서 보안 문자열을 선택 하셨을 경우 [KMS 키 소스]를 자신의 계정이나 다른 계정을 설정할 수 있으며 위의 화면과 같이 암호화하여 작성할 수 있습니다.
데이터 입력을 완료 하셨으면 [파라미터 생성] 버튼을 클릭하여 파라미터를 작성합니다.
보안 문자열로 작성 완료된 파라미터의 상세화면을 확인하시면 위의 화면과 같이 암호화가 되어 있는것을 확인할 수 있습니다.
레이블(Labels) 작성해보기
레이블은 파라미터 버전 하나에 10개 까지 가능하며 문자(대소문자 구분), 숫자, 마침표(.), 하이픈(-) 또는 밑줄(_)을 포함하여 최대 100자 까지 입력할 수 있습니다.
!단 "aws", "ssm"으로 시작할 수 없습니다(대/소문자 구별하지 않음).
Label의 자세한 설명의 아래의 사이트에서 확인해주세요
상세화면에서 [기록] 탭에서 원하시는 파라미터 버전을 선택한 후 [레이블 관리] 버튼을 클릭합니다.
레이블을 입력한 후 [변경 내용 저장] 버튼을 클릭하여 완료합니다.
마무리
이번 블로그에서 Parameter Store를 사용하여 데이터를 공유하는 방법에 대해 알아보았습니다. 평소에 쉽고 안전하게 데이터를 공유하고 싶었던 분들에게 조금이나마 도움이 되었으면 좋겠습니다.
추가로
혹시 데이터의 크기가 커서 Parameter Store에서 데이터를 관리하지 못하거나 주기적으로 데이터를 교체해야 하시는 분들은 아래의 Secrets Manager를 사용하는 방법을 검토하시면 좋을것 같습니다.
참고 자료
본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !