설정 가이드 - GCP Cloud KMS
설정 가이드 - GCP Cloud KMS
GCP Cloud KMS 키 링의 수명주기를 관리하려면 gcpckms 공급자를 사용해 키 관리 시크릿 엔진을 설정해야 해요.
출처: 문서
본문
설정(Setup)
-
키 관리 시크릿 엔진을 활성화해요.
$ vault secrets enable keymgmt -
example-kms라는 KMS 공급자 리소스를 구성해요.$ vault write keymgmt/kms/example-kms \ provider="gcpckms" \ key_collection="projects/<project-id>/locations/<location>/keyRings/<keyring>" \ credentials=service_account_file="/path/to/service_account/credentials.json"이 명령은 다음을 지정해요.
- Vault에서 이 KMS 공급자 인스턴스의 전체 경로(
keymgmt/kms/example-kms) gcpckms로 설정된 KMS 공급자 유형- 기존 GCP Cloud KMS 키 링의 리소스 ID를 가리키는 키 컬렉션(key collection). 이 값은 생성 후 변경할 수 없어요.
- GCP Cloud KMS 인증에 사용할 자격 증명 파일. 이 파라미터 값 제공은 선택 사항이에요.
GOOGLE_CREDENTIALS환경 변수나 기본 애플리케이션 자격 증명으로도 자격 증명을 지정할 수 있으니까요.
- Vault에서 이 KMS 공급자 인스턴스의 전체 경로(
API 문서: 개별 구성 파라미터에 대한 자세한 설명은 GCP Cloud KMS API 문서를 참고하세요.
사용법(Usage)
-
keymgmt/key/aes256-gcm96경로에aes256-gcm96유형의 새 키를 써요.$ vault write keymgmt/key/aes256-gcm96 type="aes256-gcm96" -
aes256-gcm96키를 읽어요. 출력을 JSON으로 지정하고 jq로 파이프해요.$ vault read -format=json keymgmt/key/aes256-gcm96 | jq예시 출력:
{ "request_id": "631f98de-b755-9863-40db-f789ff9ff10a", "lease_id": "", "lease_duration": 0, "renewable": false, "data": { "deletion_allowed": false, "latest_version": 1, "min_enabled_version": 1, "name": "aes256-gcm96", "type": "aes256-gcm96", "versions": { "1": { "creation_time": "2021-11-16T13:07:17.878864-05:00" } } }, "warnings": null }versions의 값에 주목해요. Vault가 아는 이 키의 첫 번째 버전이므로 1이에요. 이 값은 나중에 키 회전 예시에 나올 거예요. -
작성한 키를 사용하려면 Cloud KMS에 배포해야 해요.
aes256-gcm96키를keymgmt/kms/example-kms/key/aes256-gcm96경로의 Cloud KMS에 추가해요.$ vault write keymgmt/kms/example-kms/key/aes256-gcm96 \ purpose="encrypt,decrypt" \ protection="hsm" -
Cloud KMS 인스턴스에 배포된 키를 나열해요.
$ vault list keymgmt/kms/gcpckms/key/ Keys ---- aes256-gcm96 -
키를 회전시켜요.
$ vault write -f keymgmt/key/aes256-gcm96/rotate -
키를 읽고
.data.latest_version값을 가져와 키 회전이 성공했는지 확인해요.$ vault read -format=json keymgmt/key/aes256-gcm96 | jq '.data.latest_version' 2키는 이제 버전 2예요. Cloud Console에서는 Cloud Console UI 스크린샷에 보이는 것처럼 Primary version 아래의 키가 원래 값과 다른 버전 문자열을 가질 것으로 예상돼요.
더 알아보기 (Learn more)
- GCP Cloud KMS 시크릿 엔진 개요와 인증·권한 요구 사항을 살펴보세요.
- GCP Cloud KMS API 문서에서 구성 파라미터를 확인해 보세요.
- key-management 시크릿 엔진 개요를 확인해 보세요.