디스크 암호화 정보


기본적으로 Compute Engine은 미사용 고객 콘텐츠를 암호화합니다. Compute Engine은 사용자의 추가 작업 없이 암호화를 처리합니다. 이 옵션을 Google 기본 암호화라고 부릅니다.

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

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

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

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

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

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

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

지원되는 디스크 유형

이 섹션에는 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 관리, 고객 관리 또는 고객 제공 암호화 키로 암호화됩니다. Google 관리 암호화가 기본값입니다.

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 관리 암호화를 사용합니다.

      그렇지 않으면 출력은 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 관리 암호화를 사용합니다.

그렇지 않으면 응답은 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를 사용하면 해당 키가 키 사용 정보 추적으로 보호하는 리소스를 확인할 수도 있습니다. 자세한 내용은 키 사용 정보 보기를 참조하세요.

다음 단계