Ssoon
[6주차] 06 Terraform으로 Secret 관리 - Basic/Tools 본문
CloudNet@ 팀의 가시다님이 진행하는 Terraform 101 Study 06주차 정리입니다.
✅ Secret 관리 기본사항
📌 일반 텍스트로 SECRETS 을 저장하지 마십시오
- version control system 에 액세스할 수 있는 사람은 누구나 해당 secret 에 액세스할 수 있습니다.
- version control system 에 액세스할 수 있는 모든 컴퓨터는 해당 secret 의 복사본을 보관합니다.
- 실행하는 모든 소프트웨어는 해당 secret 에 액세스할 수 있습니다.
- 해당 secret 에 대한 액세스를 감사하거나 취소할 방법이 없습니다.
👉 secret 을 일반 텍스트로 저장하면 악의적인 행위자에게 가장 민감한 데이터에 액세스할 수 있는 수많은 방법을 제공하는 것입니다.
✅ Secret 관리 도구
✔ 저장하는 secret 유형
개인 비밀, 고객 비밀 및 인프라 비밀의 세 가지 기본 유형의 비밀이 있습니다
- 개인 secret 은 개인에게 속한 secret 입니다.
- the usernames and passwords for websites you visit; your SSH keys; your PGP keys.
- 고객 secret 은 고객에게 속한 secret 입니다.
- the usernames and passwords that your customers use to log into your product; personally identifiable info (PII) for your customers; personal health information (PHI) for your customers.
- 인프라 secret 은 인프라에 속한 secret 입니다
- database passwords; API keys; TLS certificates
✔ secret 저장하는 방법
secret 을 저장하는 가장 일반적인 두 가지 전략은 파일 기반 secret 저장소 또는 중앙 집중식 secret 저장소를 사용하는 것입니다.
- 파일 기반 secret 저장소
- 일반적으로 버전 제어에 체크인되는 암호화된 파일에 secret 을 저장합니다. 파일을 암호화하려면 암호화 키가 필요합니다
- AWS KMS, GCP KMS 또는 Azure Key Vault와 같은 클라우드 공급자가 제공하는 키 관리 서비스(KMS)에 키를 저장 하는 것입니다
- PGP 키를 사용하는 것입니다. 각 개발자는 공개 키와 개인 키로 구성된 고유한 PGP 키를 가질 수 있습니다. 하나 이상의 공개 키로 secret 을 암호화하면 해당 개인 키가 있는 개발자만 해당 secret 을 해독할 수 있습니다
- 일반적으로 버전 제어에 체크인되는 암호화된 파일에 secret 을 저장합니다. 파일을 암호화하려면 암호화 키가 필요합니다
- 중앙 집중식 secret 저장소
- secret 을 암호화하고 MySQL, PostgreSQL, DynamoDB 등과 같은 데이터 저장소에 저장하는 네트워크를 통해 대화하는 웹 서비스입니다.
- 일반적으로 암호화 키는 서비스 자체에서 관리하거나 서비스가 클라우드 공급자의 KMS에 의존합니다
✔ secret 에 액세스하는 데 사용하는 인터페이스
대부분의 비밀 관리 도구는 API, CLI 및/또는 UI를 통해 액세스할 수 있습니다.
- 거의 모든 중앙 집중식 secret 저장소는 네트워크 요청을 통해 사용할 수 있는 API(예: HTTP를 통해 액세스하는 REST API)를 노출합니다
- 모든 파일 기반 secret 저장소는 명령줄 인터페이스(CLI)를 통해 작동합니다. 많은 중앙 집중식 secret 저장소는 서비스에 대한 API 호출을 수행하는 CLI 도구도 제공합니다.
- 일부 중앙 집중식 secret 저장소는 웹, 데스크톱 또는 모바일을 통해 사용자 인터페이스 (UI)를 노출하기도 합니다.
✅ secret 관리 도구 비교
Types of secrets | Secret storage | Secret interface | |
HashiCorp Vault | Infrastructure | Centralized | UI, API, CLI |
AWS Secrets Manager |
Infrastructure | Centralized | UI, API, CLI |
Azure Key Vault | Infrastructure | Centralized | UI, API, CLI |
Okta |
Customer | Centralized | UI, API, CLI |
AWS Cognito |
Customer | Centralized | UI, API, CLI |
'Terraform 101 Study' 카테고리의 다른 글
[6주차] 06 Terraform으로 Secret 관리 - Resources & Data Sources (0) | 2022.11.27 |
---|---|
[6주차] 06 Terraform으로 Secret 관리 - Terraform과 함께 Secret 관리 도구 사용 (0) | 2022.11.22 |
[5주차] 05 테라폼의 팁과 요령 (2) 조건문 - count (0) | 2022.11.19 |
[5주차] 05 테라폼의 팁과 요령 (1) 반복문 - String Directive (0) | 2022.11.17 |
[5주차] 05 테라폼의 팁과 요령 (1) 반복문 - for expressions (0) | 2022.11.17 |
Comments