顧客指定の暗号鍵

このコンテンツの最終更新日は 2025 年 2 月で、作成時点の状況を表しています。お客様の保護を継続的に改善するために、Google のセキュリティ ポリシーとシステムは変更される場合があります。

顧客指定の暗号鍵(CSEK)は、Cloud StorageCompute Engine の機能です。独自の暗号鍵を提供した場合、Google はその鍵を使用して、データの暗号化と復号に使用される Google 生成の鍵を保護します。

このドキュメントでは、CSEK の仕組みとGoogle Cloudでの保護方法について説明します。

CSEK と Cloud Storage の連携の仕組み

Cloud Storage で CSEK を使用する場合、次の鍵がラップ プロセスの一部になります。

  • 未加工の CSEK: 未加工の CSEK を API 呼び出しの一部として指定します。未加工の CSEK 鍵は、Google Front End(GFE)からストレージ システムのメモリに送信されます。この鍵は、データの Cloud Storage の鍵暗号鍵(KEK)です。
  • ラップされたチャンク鍵: 未加工の CSEK は、ラップされたチャンク鍵をラップするために使用されます。
  • 未加工チャンク鍵: ラップされたチャンク鍵は、未加工チャンク鍵をメモリ内にラップします。未加工のチャンク鍵は、ストレージ システムに保存されているデータチャンクの暗号化に使用されます。この鍵は、Cloud Storage でユーザーデータのデータ暗号鍵(DEK)として使用されます。

次の図は、鍵ラッピング プロセスを示しています。

Cloud Storage CSEK。

次の表に、キーを示します。

キー 保存先 目的 アクセス期限

未加工 CSEK

ストレージ システムのメモリ

ラップされたチャンク鍵を保護します。

顧客が要求したオペレーション(insertObjectgetObject など)が完了している。

ラップされたチャンク鍵

ストレージ デバイス

保存されている未加工のチャンク鍵を保護します。

ストレージ オブジェクトが削除されるまで

未加工チャンク鍵

ストレージ デバイスのメモリ

ディスクへの読み取りまたは書き込みを行うデータを保護します。

顧客が要求したオペレーションが完了するまで

Compute Engine での CSEK の仕組み

Compute Engine で CSEK を使用する場合、次の鍵がラップ プロセスの一部になります。

  • 未加工の CSEK: 未加工の CSEK または RSA でラップされた鍵を API 呼び出しの一部として指定します。CSEK は、GFE から内部クラスタ マネージャーのフロントエンドに送信されます。クラスタ マネージャーは、Google の本番環境インフラストラクチャでクラスタ マネージャー ID で実行される一連のプロセスであり、ディスクや VM インスタンスなどの Compute Engine リソースを管理するロジックを実装します。
  • Google 所有の非対称ラッピング鍵: RSA でラップされた鍵が CSEK として指定されている場合、Google 所有の非対称ラッピング鍵を使用して鍵がラップ解除されます。
  • CSEK 派生鍵: 未加工の CSEK は永続ディスクごとの暗号ノンスと結合され、CSEK 派生鍵が生成されます。この鍵は、Compute Engine でデータの KEK として使用されます。Cluster Manager のフロントエンドでは、CSEK と CSEK 派生鍵は Cluster Manager のメモリにのみ保持されます。CSEK 派生鍵は、自動再起動が有効になっている場合、クラスタ マネージャーのメモリ内で、クラスタ マネージャーのインスタンス メタデータとインスタンス マネージャーのメタデータに格納されているラップされたディスク鍵のラップを解除するために使用されます(このメタデータはインスタンス メタデータとは異なります)。

  • 未加工のディスク鍵: CSEK 派生鍵は、ディスクの作成時には未加工のディスク鍵をラップし、ディスクへのアクセス時には未加工のディスク鍵をラップ解除するために使用されます。次のイベントが発生します。

    • 自動再起動が有効になっている場合、クラッシュが発生したときに VM を再起動できるように、ラップされたディスク鍵は VM の存続期間中、クラスタ マネージャーによって永続的に保存されます。ラップされたディスク鍵は、Google 所有の対称ラッピング鍵でラップされます。ラップ鍵の権限により、Compute Engine でのみ使用できます。自動再起動がオフになっている場合、ラップされたディスク鍵は、Google Cloudでのデータの削除で説明されている削除プロセスを使用して削除されます。
    • ライブ マイグレーションが有効になっている場合は、未加工のディスク鍵が古い VM インスタンス メモリから新しい VM インスタンス メモリに渡されます。Instance Manager または Cluster Manager が鍵のコピーに関与することはありません。

未加工のディスク鍵は、クラスタ マネージャー(CM)、インスタンス マネージャー、VM のメモリに渡されます。これらの鍵は、Compute Engine でユーザーデータの DEK として使用されます。

次の図は、鍵の暗号化の仕組みを示しています。

Compute Engine CSEK。

キー 保持される場所 目的 アクセス期限

未加工 CSEK

Cluster Manager フロントエンド

暗号ノンスを追加して CSEK 派生鍵を導出します。

顧客が要求したオペレーション(instances.insert, instances.attachDisk など)が完了している。

公開鍵でラップされた CSEK

RSA 鍵のラッピングを使用する場合)

Cluster Manager フロントエンド

まず Google 所有の非対称鍵でラップ解除して、CSEK 派生鍵を導出します。

お客様が要求したオペレーションが完了しました。

Google 所有の非対称鍵

(RSA 鍵のラッピングを使用する場合)

キーストア

RSA でラップされた鍵をラップ解除します。

無期限

CSEK 派生鍵

Cluster Manager フロントエンド

ディスク鍵をラップします。

鍵のラッピングまたはラッピング解除のオペレーションが完了するまで

Google でラップされたディスク鍵

自動再起動が使用されている場合)

Cluster Manager フロントエンド

実行中のインスタンスに接続されたディスク用に保存されているディスク鍵を保護します。

VM メモリが失われた場合(ホストのクラッシュなど)にインスタンスを再起動します。

VM が停止または削除されるまで。

未加工のディスク鍵

Virtual Machine Monitor(VMM)メモリ、クラスタ マネージャーのメモリ

ディスクへのデータの読み取りまたは書き込み、VM のライブ マイグレーション、インプレース アップグレードの実行

VM が停止または削除されるまで

Google でラップされた CSEK 派生鍵

Cluster Manager データベース

障害発生時にオペレーションを再開します。

顧客が要求したオペレーションが完了するまで

CSEK を保護する仕組み

このセクションでは、CSEK がディスク上、インフラストラクチャ内での移動中、およびメモリ内でどのように保護されるかについて説明します。 Google Cloud

未加工の CSEK、CSEK 派生鍵、未加工のディスク鍵は、暗号化されずにディスクに保存されることはありません。未加工のディスク鍵は、CSEK 派生鍵でラップされるか、自動再起動を使用する場合は Google 鍵でラップされて保存されます。ユーザーの鍵が Google のサーバーに永久に保存されることはありません。

各サービスは、インフラストラクチャが提供するアクセス管理機能を使用して、具体的に他のどのサービスが自身と通信できるかを指定します。サービスには許可されたサービス アカウント ID の許可リストが構成され、このアクセス制限がインフラストラクチャによって自動的に適用されます。 Google Cloud詳細については、サービス ID、整合性、分離をご覧ください。

また、ネットワーク上の RPC データの暗号化によるプライバシーと整合性もインフラストラクチャから提供されます。各サービスはインフラストラクチャ RPC ごとに必要な暗号保護のレベルを構成でき、それらは CSEK で有効になります。詳細については、ワークロード間通信の暗号化をご覧ください。

鍵マテリアルは、クラスタ マネージャーのメモリや VMM メモリなど、さまざまなシステムのメモリ内に存在します。こうしたシステムのメモリへのアクセスは例外的に(たとえばインシデントの一部として)行われ、アクセス制御リストによって管理されます。これらのシステムではメモリダンプが無効になっているか、メモリダンプ内の鍵マテリアルが自動的にスキャンされます。これらのジョブの保護については、Google が本番環境サービスを保護する方法をご覧ください。

次のステップ