Google Cloud KMS로 데이터베이스 시크릿 암호화하기
Google Cloud KMS로 데이터베이스 시크릿 암호화하기
Google Cloud Key Management Service(Google Cloud KMS)의 암호화 키를 사용해 Grafana 데이터베이스의 시크릿을 암호화할 수 있어요. Google Cloud에서 키링과 대칭 암호화 키를 만들고, 서비스 계정으로 해당 키에 접근하도록 구성한 뒤 Grafana 설정에 연결하면 됩니다.
출처: 문서
본문
Google Cloud Key Management Service의 암호화 키를 사용해 Grafana 데이터베이스의 시크릿을 암호화할 수 있습니다.
전제조건:
- KMS 키를 나열·생성하고 해당 키에 접근할 서비스 계정을 만들 권한이 있는 Google Cloud 계정
- Grafana 구성 파일 접근 권한
- Google Cloud KMS에서 키링(Key ring) 생성.
- 키링에서 대칭 암호화 키(Symmetric encryption key) 생성.
- 서비스 계정 생성 후 Key Management Service로 시크릿 암호화·복호화 권한이 있는 역할(사전 정의 또는 커스텀)을 할당.
- 서비스 계정 키를 생성하고 JSON 파일을 예를 들어
~/.config/gcloud/sample-project-credentials.json으로 저장. - Grafana에서 envelope encryption을 켭니다.
- Grafana 구성 파일(보통
grafana.ini)에 Google Cloud KMS 세부정보를 추가합니다. a.[security.encryption.googlekms.<KEY-NAME>]형식의 새 섹션을 추가합니다.<KEY-NAME>은 다른 공급자 키와 구분되는 고유 이름입니다. b. 섹션에 다음 값을 채웁니다.
grafana.ini 파일의 Google Cloud KMS 공급자 섹션 예시:
# Example of Google Cloud KMS provider setup
;[security.encryption.googlekms.example-encryption-key]
# Google Cloud KMS key ID
key_id = 1234abcd-12ab-34cd-56ef-1234567890ab
# Full path to a JSON file with a service account key
credentials_file = ~/.config/gcloud/sample-project-credentials.json
key_id: 암호화 키 ID (Getting the ID for a Key 참고)credentials_file: 컴퓨터의 서비스 계정 키 JSON 파일 전체 경로
grafana.ini의[security]섹션을 새로 만든 암호화 공급자 키로 업데이트합니다.
[security]
# previous encryption key, used for legacy alerts, decrypting existing secrets or used as default provider when external providers are not configured
secret_key = AaaaAaaa
# encryption provider key in the format <PROVIDER>.<KEY-NAME>
encryption_provider = googlekms.example-encryption-key
# list of configured key providers, space separated
available_encryption_providers = googlekms.example-encryption-key
- Grafana 재시작.
- (선택) Grafana Enterprise 루트 디렉터리에서 다음 명령으로 데이터베이스 내 모든 시크릿을 새 키로 재암호화합니다.
grafana cli admin secrets-migration re-encrypt
기존 시크릿을 재암호화하지 않으면 이전 암호화 키로 남지만 사용자는 계속 접근할 수 있습니다.
참고: 데이터 소스 등 시크릿 수에 따라 이 과정은 몇 분 걸릴 수 있습니다. 진행 중 사용자는 오류를 겪을 수 있고 알림이 전송되지 않을 수 있습니다.
참고: 데이터 소스나 대시보드를 만들기 전 초기 설정 중에 키를 업데이트한다면 마이그레이션할 시크릿이 없으므로 이 단계는 필요하지 않습니다.