디스크 암호화 정보


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

하지만 규정 준수 또는 암호화 자료의 지역과 관련된 특정 요구사항이 있는 경우 Compute Engine이 리소스에 사용하는 암호화를 맞춤설정할 수 있습니다.

키 암호화 키를 제공하여 암호화를 맞춤설정할 수 있습니다. 키 암호화 키는 데이터를 직접 암호화하는 것이 아니라 Compute Engine이 데이터를 암호화하는 데 사용하는 Google 생성 키를 암호화합니다.

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

  • 권장사항. Compute Engine의 Cloud Key Management Service(Cloud KMS)를 사용하여 키 암호화 키를 만들고 관리합니다.

    Cloud Key Management Service에서 관리하는 키를 고객 관리 암호화 키(CMEK)라고 합니다. 키를 만든 후에는 디스크의 키 암호화 키로 사용할 수 있습니다.

    대부분의 경우 CMEK로 암호화된 디스크를 만든 후에는 디스크로 작업할 때 키를 지정할 필요가 없습니다. Cloud Key Management Service가 사용자가 사용한 키를 알고 있기 때문입니다. CMEK로 암호화된 인스턴트 스냅샷에서 디스크를 만드는 경우는 예외입니다.

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

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

지원되는 디스크 유형

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

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

고객 관리 암호화 키(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. Google Cloud 콘솔에서 Cloud Shell을 활성화합니다.

    Cloud Shell 활성화

    Google Cloud 콘솔 하단에서 Cloud Shell 세션이 시작되고 명령줄 프롬프트가 표시됩니다. Cloud Shell은 Google Cloud CLI가 사전 설치된 셸 환경으로, 현재 프로젝트의 값이 이미 설정되어 있습니다. 세션이 초기화되는 데 몇 초 정도 걸릴 수 있습니다.

  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 암호화를 사용하는 경우 키에 대한 자세한 내용은 조직 관리자에게 문의하세요.

다음 단계