ディスクの暗号化について


Compute Engine のデフォルトではお客様の保存コンテンツが暗号化されます。Compute Engine はこの暗号化を自動的に処理および管理するため、お客様側での作業は必要ありません。このオプションは、Google 管理の暗号化と呼ばれます。

ただし、コンプライアンスや暗号マテリアルの地域性に関連する特定の要件がある場合は、Compute Engine がリソースに使用する暗号化をカスタマイズできます。

鍵暗号鍵を提供することで暗号化をカスタマイズできます。鍵暗号鍵はデータを直接暗号化しませんが、Compute Engine がデータの暗号化に使用する Google 生成の鍵を暗号化します。

鍵暗号鍵を指定するには、次の 2 つの方法があります。

  • (推奨)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 コンソールで、[ディスク] ページに移動します。

    [ディスク] に移動

  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 暗号化が使用されている場合は、鍵の詳細について組織の管理者にお問い合わせください。

次のステップ