使用するキー プロバイダに関係なく、vSphere 仮想マシンの暗号化を使用して、暗号化された仮想マシンを作成し、既存の仮想マシンを暗号化できます。機密情報が含まれるすべての仮想マシン ファイルを暗号化することで、仮想マシンが保護されます。この暗号化および復号化タスクを実行できるのは、暗号化権限が付与されている管理者だけです。

vSphere 仮想マシンの暗号化でサポートされるストレージ

vSphere 仮想マシンの暗号化は、VMware vSAN を含む、サポートされているすべてのストレージ タイプ(NFS、iSCSI、ファイバ チャネル、直接接続されたストレージなど)で動作します。vSAN クラスタでの暗号化の使用の詳細については、『VMware vSAN の管理』ドキュメントを参照してください。

vSphere 仮想マシンの暗号化と vSAN では同じ暗号化ライブラリが使用されますが、プロファイルは異なります。仮想マシンの暗号化は仮想マシンごとの暗号化であり、vSAN はデータストア レベルでの暗号化です。

vSphere 暗号化キーとキー プロバイダ

vSphere では、キー暗号化キー (KEK) およびデータ暗号化キー (DEK) の形式の 2 つの暗号化レベルを使用します。簡単に言えば、ESXi ホストは仮想マシンとディスクを暗号化するための DEK を生成します。KEK はキー サーバによって提供され、DEK を暗号化(「ラップ」)します。KEK は AES256 アルゴリズムを使用して暗号化され、DEK は XTS-AES-256 アルゴリズムを使用して暗号化されます。キー プロバイダのタイプに応じて、DEK と KEK の作成および管理にはさまざまな方法が使用されます。

標準のキー プロバイダは次のように動作します。
  1. ESXi ホストは内部キーを生成して使用し、仮想マシンとディスクを暗号化します。これらのキーは DEK として使用されます。
  2. vCenter Server は、キー サーバ (KMS) からのキーの取得を要求します。これらのキーは KEK として使用されます。vCenter Server では各 KEK の ID のみが保存されます。キー自体は保存されません。
  3. ESXi は、KEK を使用して内部キーを暗号化し、暗号化された内部キーをディスクに保存します。ESXi では KEK はディスクに保存されません。ホストが再起動されると、vCenter Server は、対応する ID を持つ KEK をキー サーバに要求して、ESXi で使用できるようにします。その後、ESXi は必要に応じて内部キーを復号化できます。

vSphere 信頼機関 の信頼済みキー プロバイダは次のように動作します。

  1. 暗号化された仮想マシンを作成する ESXi ホストにデフォルトの信頼済みキー プロバイダからアクセスできるかどうか、信頼済みクラスタの vCenter Server が確認します。
  2. 信頼済みクラスタの vCenter Server が、信頼済みキー プロバイダを仮想マシンの ConfigSpec に追加します。
  3. 仮想マシンの作成要求が ESXi ホストに送信されます。
  4. 証明トークンが ESXi ホストでまだ使用できない場合、ホストが証明サービスに対して要求します。
  5. キー プロバイダ サービスが証明トークンを検証し、ESXi ホストに送信される KEK を作成します。KEK は、キー プロバイダで設定されたプライマリ キーでラップ(暗号化)されます。KEK 暗号文と KEK プレーンテキストの両方が信頼済みホストに返されます。
  6. ESXi ホストが、仮想マシン ディスクを暗号化するための DEK を生成します。
  7. ESXi ホストによって生成された DEK が KEK を使用してラップされ、キー プロバイダからの暗号文が暗号化されたデータとともに保存されます。
  8. 仮想マシンが暗号化され、ストレージに書き込まれます。
注: 暗号化された仮想マシンを削除または登録解除すると、 ESXi ホストとクラスタでは、KEK がキャッシュから削除されます。 ESXi ホストでは KEK を使用できなくなります。この動作は、標準のキー プロバイダでも信頼済みキー プロバイダでも同じです。

vSphere Native Key Provider は次のように動作します。

  1. キー プロバイダを作成すると、vCenter Server がプライマリ キーを生成し、クラスタ内の ESXi ホストにプッシュします。(外部キー サーバは関与しません。)
  2. ESXi ホストは、必要に応じて DEK を生成します。
  3. 暗号化アクティビティを実行すると、データが DEK で暗号化されます。

    暗号化された DEK が、暗号化されたデータとともに保存されます。

  4. データを復号化する場合は、プライマリ キーを使用して DEK を復号化し、次にデータを復号化します。

暗号化されるもの

vSphere 仮想マシンの暗号化機能は、仮想マシン ファイル、仮想ディスク ファイル、およびコア ダンプ ファイルの暗号化に対応しています。
仮想マシン ファイル
仮想マシンのほとんど、具体的には、VMDK ファイルに保存されていないゲスト データが暗号化されます。このファイル セットには、NVRAM、VSWP、および VMSN ファイルが含まれますが、これに限定されません。キー プロバイダから取得したキーにより、内部キーおよびその他のシークレットが含まれる VMX ファイル内の、暗号化されたバンドルのロックが解除されます。キーの取得は、キー プロバイダに応じて次のように機能します。
  • 標準のキー プロバイダ:vCenter Server はキー サーバから取得したキーを管理し、ESXi ホストはキー プロバイダに直接アクセスできません。ホストは、vCenter Server がキーをプッシュするまで待ちます。
  • 信頼済みキー プロバイダおよび vSphere Native Key Provider:ESXi ホストはキー プロバイダに直接アクセスし、要求されたキーを vSphere 信頼機関 サービスから直接取得するか、vSphere Native Key Provider から取得します。
vSphere Client を使用して暗号化された仮想マシンを作成する場合は、仮想マシンのファイルとは別に仮想ディスクの暗号化と復号化が可能になります。デフォルトでは、すべての仮想ディスクが暗号化されます。既存の仮想マシンの暗号化など、その他の暗号化タスクについては、仮想マシンのファイルとは別に仮想ディスクを暗号化および復号化できます。
注: 暗号化された仮想ディスクを、暗号化されていない仮想マシンに関連付けることはできません。
仮想ディスク ファイル
暗号化された仮想ディスク (VMDK) ファイルのデータが、クリアテキストでストレージや物理ディスクに書き込まれたり、ネットワーク経由で転送されたりすることはありません。VMDK 記述子ファイルは、ほとんどがクリアテキストですが、暗号化されたバンドルに KEK のキー ID と内部キー (DEK) が含まれます。
vSphere API を使用すると、新しい KEK で表層の再暗号化操作、または新しい内部キーで深層の再暗号化操作を行うことができます。
コア ダンプ
暗号化モードが有効になっている ESXi ホストのコア ダンプは常に暗号化されます。 vSphere 仮想マシンの暗号化とコア ダンプを参照してください。 vCenter Server システムのコア ダンプは暗号化されません。 vCenter Server システムへのアクセスを保護してください。
注: vSphere 仮想マシンの暗号化と連携できるデバイスおよび機能に関する制限については、 仮想マシンの暗号化の相互運用性を参照してください。

暗号化されないもの

仮想マシンに関連付けられているファイルの中には、暗号化されないもの、または部分的に暗号化されるものがあります。
ログ ファイル
ログ ファイルには機密データが含まれていないため、暗号化されません。
仮想マシン設定ファイル
VMX および VMSD ファイルに保存される仮想マシン構成情報のほとんどが暗号化されません。
仮想ディスク記述子ファイル
キーなしでディスクを管理できるように、仮想ディスク記述子ファイルのほとんどが暗号化されません。

暗号化操作を実行できるユーザー

暗号化操作権限が割り当てられているユーザーのみが、暗号化操作を行うことができます。権限セットは細かく設定されています。デフォルトの管理者システム ロールには、すべての暗号化操作権限が含まれています。非暗号化管理者ロールでは、暗号化操作権限を除くすべての管理者権限がサポートされます。

vSphere Native Key Provider は、Cryptographer.* 権限だけでなく、Cryptographer.ReadKeyServersInfo 権限を使用できます。この権限は、vSphere Native Key Provider に固有の権限です。

詳細については暗号化操作権限を参照してください。

追加のカスタム ロールを作成することで、たとえば、あるユーザー グループに対して仮想マシンの暗号化のみを許可し、復号化は禁止することができます。

暗号化操作の実行方法

vSphere Client では、多くの暗号化操作がサポートされています。他のタスクについては、vSphere API を使用できます。

表 1. 暗号化操作のインターフェイス
インターフェイス 操作 詳細情報
vSphere Client 暗号化された仮想マシンの作成

仮想マシンの暗号化および復号化

本書
PowerCLI 暗号化された仮想マシンの作成

仮想マシンの暗号化および復号化

vSphere 信頼機関 の構成

VMware PowerCLI コマンドレット リファレンス
vSphere Web Services SDK 暗号化された仮想マシンの作成

仮想マシンの暗号化および復号化

仮想マシンの再暗号化(深層)の実行(別の DEK を使用)

仮想マシンの再暗号化(表層)の実行(別の KEK を使用)

vSphere Web Services SDK プログラミング ガイド

vSphere Web Services API リファレンス

crypto-util 暗号化されたコア ダンプの復号化

ファイルが暗号化されているかどうかの確認

ESXi ホスト上での他の管理タスクの直接実行

コマンドライン ヘルプ

vSphere 仮想マシンの暗号化とコア ダンプ

仮想マシンの再暗号化

キーの有効期限が切れた場合や侵害された場合などに、新しいキーで仮想マシンを再暗号化できます。次のオプションを使用できます。

  • 再暗号化(深層)。ディスク暗号化キー (DEK) とキー暗号化キー (KEK) の両方が置き換えられます。
  • 再暗号化(表層)。KEK のみが置き換えられます。

仮想マシンの再暗号化は、API を使用して実行する必要があります。vSphere Web Services SDK プログラミング ガイド を参照してください。

再暗号化(深層)を行うには、仮想マシンがパワーオフされ、スナップショットが含まれていないことが必要です。再暗号化(表層)は、仮想マシンのスナップショットが作成済みであれば仮想マシンがパワーオン状態でも実行できます。スナップショットが作成済みの暗号化された仮想マシンの再暗号化(表層)は、単一のスナップショット分岐(ディスク チェーン)に対してのみ許可されます。複数のスナップショット分岐はサポートされていません。また、仮想マシンまたはディスクのリンク クローンでは再暗号化(表層)はサポートされません。チェーン内のすべてのリンクを新しい KEK で更新する前に再暗号化(表層)が失敗した場合でも、古い KEK と新しい KEK があれば暗号化された仮想マシンにアクセスできます。ただし、スナップショット操作を実行する前に、再暗号化(表層)操作を再実行することをお勧めします。