Compute Engine 디스크 암호화 키 관리 점검

기본 암호화를 확인하고 필요한 경우 고객 관리 키의 권한과 복구 절차를 구성하세요.

설명

Compute Engine 디스크는 기본적으로 Google 관리 키로 저장 시 암호화됩니다. 고객 관리 또는 고객 제공 키가 없다는 사실만으로 평문 저장을 의미하지는 않지만, 조직에서 요구하는 키 통제 방식을 충족하는지는 확인해야 합니다.

Cloud KMS의 고객 관리 키와 직접 제공하는 CSEK는 관리 책임이 다릅니다. 필요한 키에 접근할 수 없거나 CSEK를 잃으면 데이터를 읽지 못할 수 있으며, 암호화가 디스크 접근 권한을 대신하지는 않습니다.

잠재적 영향

  • 조직의 키 소유권·감사 요구사항을 충족하지 못할 수 있습니다.
  • 키 분실이나 잘못된 권한 변경으로 데이터 접근과 서비스가 중단될 수 있습니다.

해결 방법

데이터에 필요한 키 통제 방식을 정하고 기본 암호화 또는 고객 관리 키를 선택하세요. CSEK를 사용한다면 256비트 무작위 키를 Base64로 인코딩해 보호된 입력으로 제공하고 코드나 로그에 남기지 마세요. 키 접근 권한, 안전한 보관과 복구를 시험하고 기존 디스크의 키 변경은 지원되는 데이터 이전 절차로 계획하세요.

예시

디스크 생성 발췌입니다. 프로젝트와 서비스 계정 JSON 파일 경로를 실제 값으로 바꾸세요. disk_csek_base64에는 보호된 입력으로 전달한 32바이트 무작위 키의 Base64 값을 제공해야 합니다.

변경 전

yaml
- name: create a disk1
  google.cloud.gcp_compute_disk:
    name: test-disk1
    size_gb: 50
    zone: us-central1-a
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

- name: create a disk3
  google.cloud.gcp_compute_disk:
    name: test-disk3
    size_gb: 50
    disk_encryption_key:
      raw_key:
    zone: us-central1-a
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

첫 작업은 기본 암호화를 사용합니다. 두 번째 작업의 빈 raw_key는 유효한 CSEK가 아니며, 암호화를 끄는 방법도 아닙니다.

변경 후

yaml
- name: create a disk
  google.cloud.gcp_compute_disk:
    name: test-disk
    size_gb: 50
    disk_encryption_key:
      raw_key: "{{ disk_csek_base64 }}"
    zone: us-central1-a
    project: test_project
    auth_kind: serviceaccount
    service_account_file: /tmp/auth.pem
    state: present
  no_log: true

외부에서 제공한 CSEK로 새 디스크를 생성하고 no_log로 작업 결과의 로그 노출을 줄입니다. 기존 디스크의 키를 그대로 교체하는 예시는 아니며, 키의 안전한 보관은 별도로 필요합니다.

참조