GCP Cloud KMS seal 구성
GCP Cloud KMS seal 구성
GCP Cloud KMS seal은 Vault가 GCP Cloud KMS를 seal wrapping 메커니즘으로 사용하도록 구성합니다. GCP Cloud KMS seal은 다음 중 하나로 활성화됩니다:
출처: 문서
본문
Seal wrapping에는 Vault Enterprise가 필요합니다 모든 Vault 버전은 GCP Cloud에 대해 auto-unseal을 지원하지만, seal wrapping에는 Vault Enterprise가 필요합니다. Vault Enterprise는 기본적으로 seal wrapping을 활성화하므로 KMS 서비스가 봉인 해제 과정 중뿐만 아니라 런타임에도 사용 가능해야 합니다. 자세한 내용은 Seal wrap overview를 참고하세요.
- Vault 구성 파일에
seal "gcpckms"블록이 있는 경우 - 환경 변수
VAULT_SEAL_TYPE이gcpckms로 설정된 경우. 환경 변수로 활성화한다면 Cloud KMS 고유의 다른 필수 값(즉VAULT_GCPCKMS_SEAL_KEY_RING등)과 성공적인 인증에 도움이 되는 다른 모든 GCP 관련 환경 변수(즉GOOGLE_PROJECT등)도 제공해야 합니다.
gcpckms 예시
이 예시는 모든 필수 값을 제공해 Vault 구성 파일을 통해 GCP Cloud KMS seal을 구성합니다:
seal "gcpckms" {
credentials = "/usr/vault/vault-project-user-creds.json"
project = "vault-project"
region = "global"
key_ring = "vault-keyring"
crypto_key = "vault-key"
}
gcpckms 파라미터
다음 파라미터는 Vault 구성 파일의 seal 스탠자에 적용됩니다:
-
credentials(string: <required>): 사용할 자격 증명 JSON 파일의 경로입니다.GOOGLE_CREDENTIALS또는GOOGLE_APPLICATION_CREDENTIALS환경 변수로도 지정하거나, Google App Engine, Google Compute Engine 또는 Google Kubernetes Engine에서 실행 중이면 자동으로 설정됩니다. -
project(string: <required>): 사용할 GCP 프로젝트 ID입니다.GOOGLE_PROJECT환경 변수로도 지정할 수 있습니다. -
region(string: <required>): 키 링(key ring)이 있는 GCP 리전/위치입니다.GOOGLE_REGION환경 변수로도 지정할 수 있습니다. -
key_ring(string: <required>): 사용할 GCP CKMS 키 링입니다.VAULT_GCPCKMS_SEAL_KEY_RING환경 변수로도 지정할 수 있습니다. -
crypto_key(string: <required>): 암호화와 복호화에 사용할 GCP CKMS crypto key입니다.VAULT_GCPCKMS_SEAL_CRYPTO_KEY환경 변수로도 지정할 수 있습니다. -
disabled(string: ""): Vault가 auto seal 구성에서 마이그레이션 중이라면true로 설정하세요. 그렇지 않으면false로 설정하세요.
credentials는 간접 값 참조(indirect value references)일 수 있습니다.
seal 마이그레이션 과정에 대한 자세한 내용은 Seal Migration 문서를 참고하세요.
인증 및 권한
인증 관련 값은 환경 변수나 구성 파라미터로 제공해야 합니다.
GCP 인증 값:
GOOGLE_CREDENTIALS또는GOOGLE_APPLICATION_CREDENTIALSGOOGLE_PROJECTGOOGLE_REGION
참고: 위의 GCP 고유 값이 제공되지 않으면 클라이언트는 공식 Google SDK를 사용하며 지정된 자격 증명, 환경 자격 증명, 애플리케이션 기본 자격 증명 순서로 사용합니다.
서비스 계정은 crypto key에 대해 다음 최소 권한이 필요합니다:
cloudkms.cryptoKeyVersions.useToEncrypt
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeys.get
이 권한은 다음 역할로 설명할 수 있습니다:
roles/cloudkms.cryptoKeyEncrypterDecrypter
cloudkms.cryptoKeys.get
cloudkms.cryptoKeys.get 권한은 이 엔진 초기화 과정에서 CloudKMS의 키에 대한 메타데이터 정보를 검색하는 데 사용됩니다.
gcpckms 환경 변수
또는 다음 환경 변수를 제공해 GCP Cloud KMS seal을 활성화할 수 있습니다:
VAULT_SEAL_TYPEVAULT_GCPCKMS_SEAL_KEY_RINGVAULT_GCPCKMS_SEAL_CRYPTO_KEY
키 회전
이 seal은 Google Cloud KMS 문서에 정의된 키 회전을 지원합니다. 키 정보 덕분에 CKMS에 대해 예약 회전(scheduled rotation)과 수동 회전이 모두 지원됩니다. 이전 키 버전은 비활성화하거나 삭제해서는 안 되며 이전 데이터를 복호화하는 데 사용됩니다. 새 데이터나 갱신된 데이터는 기본 키 버전(primary key version)으로 암호화됩니다.
튜토리얼
Auto-unseal using GCP Cloud KMS 가이드를 참고해 단계별 튜토리얼을 확인하세요.