디스크 암호화 정보


기본적으로 Compute Engine은 미사용 고객 콘텐츠를 암호화합니다. Compute Engine은 자동으로 Google-owned and Google-managed encryption keys를 사용하여 데이터를 암호화합니다.

하지만 키 암호화 키(KEK)를 제공하여 Compute Engine에서 리소스에 사용할 암호화를 맞춤설정할 수 있습니다. 키 암호화 키는 데이터를 직접 암호화하는 것이 아니라 Compute Engine이 데이터를 암호화하는 데 사용하는Google-owned and managed keys 를 암호화합니다.

키 암호화 키를 제공하는 방법은 두 가지가 있습니다.

  • 권장사항. Compute Engine과 함께 Cloud KMS에서 고객 관리 암호화 키(CMEK)를 사용합니다. Cloud KMS 키를 사용하면 보호 수준, 위치, 순환 일정, 사용 및 액세스 권한, 암호화 경계를 관리할 수 있습니다. Cloud KMS를 사용하면 키 사용을 추적하고 감사 로그를 보며 키 수명 주기를 제어할 수도 있습니다. Google에서 데이터를 보호하는 대칭 키 암호화 키(KEK)를 소유하고 관리하는 대신 개발자가 Cloud KMS에서 이러한 키를 제어하고 관리합니다.

    CMEK를 직접 만들거나 Cloud KMS Autokey를 사용하여 대신 자동으로 만들 수 있습니다.

    대부분의 경우 CMEK로 암호화된 디스크를 만든 후에는 디스크로 작업할 때 키를 지정할 필요가 없습니다.

  • Compute Engine 외부에서 자체 키 암호화 키를 관리하고 디스크를 만들거나 관리할 때마다 키를 제공할 수 있습니다. 이 옵션을 고객 제공 암호화 키(CSEK)라고 합니다. CSEK로 암호화된 리소스를 관리할 때는 항상 리소스를 암호화할 때 사용한 키를 지정해야 합니다.

각 암호화 유형에 관한 자세한 내용은 고객 관리 암호화 키고객 제공 암호화 키를 참고하세요.

Hyperdisk Balanced 디스크에 보안 추가 계층을 추가하려면 비밀 모드를 사용 설정하세요. 비밀 모드는 Hyperdisk Balanced 디스크에 하드웨어 기반 암호화를 추가합니다.

지원되는 디스크 유형

이 섹션에는 Compute Engine에서 제공하는 디스크 및 기타 스토리지 옵션에 지원되는 암호화 유형이 나열되어 있습니다.

Cloud KMS Autokey를 사용하는 CMEK

Cloud KMS 키를 사용하여 Compute Engine 리소스를 보호하는 경우 CMEK를 직접 만들거나 Cloud KMS Autokey를 사용하여 키를 만들 수 있습니다. Autokey를 사용하면 Compute Engine에서 리소스를 만들 때 필요에 따라 키링과 키가 생성됩니다. 암호화 및 복호화 작업에 키를 사용하는 서비스 에이전트가 없으면 생성되고 필요한 Identity and Access Management(IAM) 역할이 부여됩니다. 자세한 내용은 Autokey 개요를 참조하세요.

Cloud KMS Autokey에서 만든 CMEK를 사용하여 Compute Engine 리소스를 보호하는 방법은 Compute Engine 리소스에 Autokey 사용을 참조하세요.

스냅샷

Autokey를 사용하여 Compute Engine 리소스를 보호하는 키를 만들 경우 Autokey에서는 스냅샷의 새 키를 만들지 않습니다. 소스 디스크를 암호화하는 데 사용된 키와 동일한 키로 스냅샷을 암호화해야 합니다. Google Cloud 콘솔을 사용하여 스냅샷을 만들면 디스크에서 사용한 암호화 키가 자동으로 스냅샷에 적용됩니다. gcloud CLI, Terraform 또는 Compute Engine API를 사용하여 스냅샷을 만드는 경우 디스크를 암호화하는 데 사용된 키의 리소스 식별자를 가져온 후 이 키를 사용하여 스냅샷을 암호화해야 합니다.

고객 관리 암호화 키로 데이터 암호화

수동으로 만든 고객 관리 암호화 키(CMEK)를 사용하여 디스크와 기타 Compute Engine 리소스를 암호화하는 방법에 대한 자세한 내용은 Cloud KMS 키를 사용하여 리소스 보호를 참조하세요.

고객 제공 암호화 키로 디스크 암호화

고객 제공 암호화 키(CSEK)를 사용하여 디스크와 기타 Compute Engine 리소스를 암호화하는 방법을 알아보려면 고객 제공 암호화 키로 디스크 암호화를 참조하세요.

디스크 암호화에 대한 정보 보기

Compute Engine의 디스크는 다음 유형의 암호화 키 중 하나로 암호화됩니다.

  • Google-owned and managed keys
  • 고객 관리 암호화 키(CMEK)
  • 고객 제공 암호화 키(CSEK)

기본적으로 Compute Engine은 Google-owned and managed keys를 사용합니다.

gcloud CLI, Google Cloud 콘솔, Compute Engine API를 사용하여 디스크의 암호화 유형을 볼 수 있습니다.

콘솔

  1. Google Cloud Console에서 디스크 페이지로 이동합니다.

    디스크로 이동

  2. 이름 열에서 디스크 이름을 클릭합니다.

  3. 속성 테이블에서 암호화 라벨이 지정된 행은 Google 관리, 고객 관리 또는 고객 제공 암호화 유형을 나타냅니다.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. gcloud compute disks describe 명령어를 사용합니다.

        gcloud compute disks describe DISK_NAME \
          --zone=ZONE \
          --format="json(diskEncryptionKey)"
      

    다음을 바꿉니다.

    • PROJECT_ID: 프로젝트 ID입니다.
    • ZONE: 디스크가 있는 영역입니다.
    • DISK_NAME: 디스크의 이름입니다.

      명령어 결과

      출력이 null이면 디스크는 Google-owned and managed key를 사용합니다.

      그렇지 않으면 출력은 JSON 객체입니다.

      JSON 객체에 diskEncryptionKey라는 필드가 포함되어 있으면 디스크가 암호화됩니다. diskEncryptionKey 객체에는 디스크가 CMEK로 암호화되는지 아니면 CSEK로 암호화되는지에 대한 정보가 포함됩니다.

      • diskEncryptionKey.kmsKeyName 속성이 있으면 디스크가 CMEK로 암호화됩니다. kmsKeyName 속성은 디스크를 암호화하는 데 사용된 특정 키의 이름을 나타냅니다.
        {
          "diskEncryptionKey": {
            "kmsKeyName": "projects/my-proj/.."
          }
        }
        
      • diskEncryptionKey.sha256 속성이 있으면 디스크가 CSEK로 암호화됩니다. sha256 속성은 디스크를 보호하는 고객 제공 암호화 키의 SHA-256 해시입니다.
          {
            "diskEncryptionKey": {
              "sha256": "abcdefghijk134560459345dssfd"
            }
          }
            

API

compute.disks.get 메서드에 대해 POST 요청을 실행합니다.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • ZONE: 디스크가 있는 영역입니다.
  • DISK_NAME: 디스크의 이름입니다.

요청 응답

응답이 null이면 디스크는 Google-owned and managed key를 사용합니다.

그렇지 않으면 응답은 JSON 객체입니다.

JSON 객체에 diskEncryptionKey라는 필드가 포함되어 있으면 디스크가 암호화됩니다. diskEncryptionKey 객체에는 디스크가 CMEK로 암호화되는지 아니면 CSEK로 암호화되는지에 대한 정보가 포함됩니다.

  • diskEncryptionKey.kmsKeyName 속성이 있으면 디스크가 CMEK로 암호화됩니다. kmsKeyName 속성은 디스크를 암호화하는 데 사용된 특정 키의 이름을 나타냅니다.
    {
      "diskEncryptionKey": {
        "kmsKeyName": "projects/my-proj/.."
      }
    }
    
  • diskEncryptionKey.sha256 속성이 있으면 디스크가 CSEK로 암호화됩니다. sha256 속성은 디스크를 보호하는 고객 제공 암호화 키의 SHA-256 해시입니다.
      {
        "diskEncryptionKey": {
          "sha256": "abcdefghijk134560459345dssfd"
        }
      }
        

디스크가 CMEK를 사용하는 경우 프로젝트별 키 보기의 단계에 따라 키, 키링, 위치에 대한 자세한 정보를 확인할 수 있습니다.

디스크에서 CSEK를 사용하는 경우 키에 대한 자세한 내용은 조직 관리자에게 문의하세요. CMEK를 사용하면 해당 키가 키 사용 정보 추적으로 보호하는 리소스를 확인할 수도 있습니다. 자세한 내용은 키 사용 정보 보기를 참조하세요.

Hyperdisk Balanced의 비밀 모드

컨피덴셜 컴퓨팅을 사용하는 경우 비밀 모드를 사용 설정하여 하드웨어 기반 암호화를 Hyperdisk Balanced 볼륨으로 확장할 수 있습니다.

Hyperdisk Balanced 볼륨의 기밀 모드를 사용하면 애플리케이션을 리팩터링하지 않고도 추가 보안을 활성화할 수 있습니다. 비밀 모드는 새 Hyperdisk Balanced 볼륨을 만들 때 지정할 수 있는 속성입니다.

비밀 모드의 Hyperdisk Balanced 볼륨은 컨피덴셜 VM에서만 사용할 수 있습니다.

비밀 모드로 Hyperdisk Balanced 볼륨을 만들려면 Hyperdisk Balanced 볼륨에 비밀 모드 사용 설정을 참고하세요.

비밀 모드에서 Hyperdisk Balanced 볼륨에 지원되는 머신 유형

비밀 모드의 Hyperdisk Balanced 볼륨은 N2D 머신 유형을 사용하는 컨피덴셜 VM에서만 사용할 수 있습니다.

비밀 모드의 Hyperdisk Balanced 볼륨에 대해 지원되는 리전

Hyperdisk Balanced 볼륨의 비밀 모드는 다음 리전에서 사용할 수 있습니다.

  • europe-west4
  • us-central1
  • us-east4
  • us-east5
  • us-south1
  • us-west4

비밀 모드의 Hyperdisk Balanced 볼륨 제한사항

  • Hyperdisk Extreme, Hyperdisk Throughput, Hyperdisk ML, Hyperdisk Balanced 고가용성은 비밀 모드를 지원하지 않습니다.
  • 비밀 모드에서 Hyperdisk Balanced 볼륨을 사용하는 VM은 일시중지하거나 재개할 수 없습니다.
  • 비밀 모드에서는 Hyperdisk Balanced 볼륨과 함께 Hyperdisk Storage Pool을 사용할 수 없습니다.
  • 비밀 모드에서는 Hyperdisk Balanced 볼륨에서 머신 이미지 또는 커스텀 이미지를 만들 수 없습니다.

다음 단계