使用するキー プロバイダに関係なく、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 を暗号化し、DEK は XTS-AES-256(512 ビット キー サイズ)アルゴリズムを使用して VMDK を暗号化します。キー プロバイダのタイプに応じて、DEK と KEK の作成および管理にはさまざまな方法が使用されます。
- ESXi ホストは内部キーを生成して使用し、仮想マシンとディスクを暗号化します。これらのキーは DEK として使用されます。
- vCenter Server は、キー サーバ (KMS) からのキーの取得を要求します。これらのキーは KEK として使用されます。vCenter Server では各 KEK の ID のみが保存されます。キー自体は保存されません。
- ESXi は、KEK を使用して内部キーを暗号化し、暗号化された内部キーをディスクに保存します。ESXi では KEK はディスクに保存されません。ホストが再起動されると、vCenter Server は、対応する ID を持つ KEK をキー サーバに要求して、ESXi で使用できるようにします。その後、ESXi は必要に応じて内部キーを復号化できます。
vSphere 信頼機関 の信頼済みキー プロバイダは次のように動作します。
- 暗号化された仮想マシンを作成する ESXi ホストにデフォルトの信頼済みキー プロバイダからアクセスできるかどうか、信頼済みクラスタの vCenter Server が確認します。
- 信頼済みクラスタの vCenter Server が、信頼済みキー プロバイダを仮想マシンの ConfigSpec に追加します。
- 仮想マシンの作成要求が ESXi ホストに送信されます。
- 証明トークンが ESXi ホストでまだ使用できない場合、ホストが証明サービスに対して要求します。
- キー プロバイダ サービスが証明トークンを検証し、ESXi ホストに送信される KEK を作成します。KEK は、キー プロバイダで設定されたプライマリ キーでラップ(暗号化)されます。KEK 暗号文と KEK プレーンテキストの両方が信頼済みホストに返されます。
- ESXi ホストが、仮想マシン ディスクを暗号化するための DEK を生成します。
- ESXi ホストによって生成された DEK が KEK を使用してラップされ、キー プロバイダからの暗号文が暗号化されたデータとともに保存されます。
- 仮想マシンが暗号化され、ストレージに書き込まれます。
vSphere クラスタ内の ESXi ホストは暗号化された仮想マシンの KEK をホスト メモリに保持し、高可用性、vMotion、DRS などの可用性機能を有効にします。仮想マシンが削除されるか登録解除されると、クラスタ内の ESXi ホストはメモリから KEK を削除します。したがって、ESXi ホストでは KEK を使用できなくなります。この動作は、標準のキー プロバイダでも信頼済みキー プロバイダでも同じです。
vSphere Native Key Provider は次のように動作します。
- キー プロバイダを作成すると、vCenter Server がプライマリ キーを生成し、クラスタ内の ESXi ホストにプッシュします。(外部キー サーバは関与しません。)
- ESXi ホストは、必要に応じて DEK を生成します。
- 暗号化アクティビティを実行すると、データが DEK で暗号化されます。
暗号化された DEK が、暗号化されたデータとともに保存されます。
- データを復号化する場合は、プライマリ キーを使用して DEK を復号化し、次にデータを復号化します。
vSphere 仮想マシンの暗号化で暗号化されるコンポーネント
- 仮想マシン ファイル
-
仮想マシンのほとんど、具体的には、VMDK ファイルに保存されていないゲスト データが暗号化されます。このファイル セットには、NVRAM、VSWP、および VMSN ファイルが含まれますが、これに限定されません。キー プロバイダから取得したキーにより、内部キーおよびその他のシークレットが含まれる VMX ファイル内の、暗号化されたバンドルのロックが解除されます。キーの取得は、キー プロバイダに応じて次のように機能します。
- 標準のキー プロバイダ:vCenter Server はキー サーバから取得したキーを管理し、ESXi ホストはキー プロバイダに直接アクセスできません。ホストは、vCenter Server がキーをプッシュするまで待ちます。
- 信頼済みキー プロバイダおよび vSphere Native Key Provider:ESXi ホストはキー プロバイダに直接アクセスし、要求されたキーを vSphere 信頼機関 サービスから直接取得するか、vSphere Native Key Provider から取得します。
- 仮想ディスク ファイル
- 暗号化された仮想ディスク (VMDK) ファイルのデータが、クリアテキストでストレージや物理ディスクに書き込まれたり、ネットワーク経由で転送されたりすることはありません。VMDK 記述子ファイルは、ほとんどがクリアテキストですが、暗号化されたバンドルに KEK のキー ID と内部キー (DEK) が含まれます。
- コア ダンプ
- 暗号化モードが有効になっている ESXi ホストのコア ダンプは常に暗号化されます。 vSphere 仮想マシンの暗号化とコア ダンプを参照してください。 vCenter Server システムのコア ダンプは暗号化されません。 vCenter Server システムへのアクセスを保護してください。
- 仮想マシンのスワップ ファイル
- 仮想マシン スワップ ファイルは、仮想マシンに vTPM を追加するたびに暗号化されます。RAM が不足している環境では、パフォーマンスに影響を与える可能性のある暗号化関連のページングが発生する可能性があります。
- vTPM
- vTPM を構成すると、仮想マシン ファイルは暗号化されますが、ディスクは暗号化されません。仮想マシンとそのディスクの暗号化は、明示的に追加できます。詳細については、 仮想 Trusted Platform Module を使用する仮想マシンの保護を参照してください。
vSphere 仮想マシンの暗号化で暗号化されないコンポーネント
暗号化操作を実行するために必要な権限
暗号化操作権限が割り当てられているユーザーのみが、暗号化操作を行うことができます。権限セットは細かく設定されています。デフォルトの管理者システム ロールには、すべての暗号化操作権限が含まれています。非暗号化管理者ロールでは、暗号化操作権限を除くすべての管理者権限がサポートされます。
vSphere Native Key Provider は、Cryptographer.* 権限だけでなく、Cryptographer.ReadKeyServersInfo 権限を使用できます。この権限は、vSphere Native Key Provider に固有の権限です。
詳細については暗号化操作権限を参照してください。
追加のカスタム ロールを作成することで、たとえば、あるユーザー グループに対して仮想マシンの暗号化のみを許可し、復号化は禁止することができます。
暗号化操作の実行方法
vSphere Client では、多くの暗号化操作がサポートされています。他のタスクについては、PowerCLI または vSphere API を使用できます。
インターフェイス | 操作 | 詳細情報 |
---|---|---|
vSphere Client | 暗号化された仮想マシンの作成 仮想マシンの暗号化および復号化 仮想マシンの再暗号化(表層)の実行(別の KEK を使用) |
本書 |
PowerCLI | 暗号化された仮想マシンの作成 仮想マシンの暗号化および復号化 vSphere 信頼機関 の構成 |
VMware PowerCLI コマンドレット リファレンス |
vSphere Web Services SDK | 暗号化された仮想マシンの作成 仮想マシンの暗号化および復号化 仮想マシンの再暗号化(深層)の実行(別の DEK を使用) 仮想マシンの再暗号化(表層)の実行(別の KEK を使用) |
vSphere Web Services SDK プログラミング ガイド vSphere Web Services API リファレンス |
crypto-util | 暗号化されたコア ダンプの復号化 ファイルが暗号化されているかどうかの確認 ESXi ホスト上での他の管理タスクの直接実行 |
コマンドライン ヘルプ |
暗号化された仮想マシンを再暗号化(再キー化)する方法
キーの有効期限が切れた場合や侵害された場合などに、新しいキーで仮想マシンを再暗号化(再キー化)できます。次の再キー化オプションを使用できます。
- 再暗号化(表層)。キー暗号化キー (KEK) のみが置き換えられます。
- 再暗号化(深層)。ディスク暗号化キー (DEK) と KEK の両方が置き換えられます。
再暗号化(深層)を行うには、仮想マシンがパワーオフされ、スナップショットが含まれていないことが必要です。再暗号化(表層)は、仮想マシンのスナップショットが作成済みであれば仮想マシンがパワーオン状態でも実行できます。スナップショットが作成済みの暗号化された仮想マシンの再暗号化(表層)は、単一のスナップショット分岐(ディスク チェーン)に対してのみ許可されます。複数のスナップショット分岐はサポートされていません。また、仮想マシンまたはディスクのリンク クローンでは再暗号化(表層)はサポートされません。チェーン内のすべてのリンクを新しい KEK で更新する前に再暗号化(表層)が失敗した場合でも、古い KEK と新しい KEK があれば暗号化された仮想マシンにアクセスできます。ただし、スナップショット操作を実行する前に、再暗号化(表層)操作を再実行することをお勧めします。
仮想マシンの再キー化は、vSphere Client、CLI、または API を使用して実行できます。vSphere Client を使用した暗号化された仮想マシンの再キー化、CLI を使用した暗号化された仮想マシンの再キー化、およびvSphere Web Services SDK プログラミング ガイドを参照してください。