以前、別件で少し設定したことがあるのだが改めて試してみる。結論としては、かなり簡単なので標準的に設定をしてもいいと思う。KMIPサーバが立てっぱなしにできるのであれば。
以下のユースケースの場合、Key Providerの登録が必要となる。
- HDDの暗号化
- vTPM (Windows11で必要となる)
今回は、vCenterにKey Providerを登録してみる。vCenter 7U3nとvCenter 8U1cで確認をしている。
Key Providerの登録は、vCenterのSecurityで登録ができる。
Native Key ProviderとStandard Key Providerが選べる。
Native Key Provider
特にKey Providerを別に立てる必要はなく、vCenterの中で閉じて使えるもの。
物理マシン側には、ハードウェアTPMモジュールはあってもなくても構わない。またESXのライセンスは、Enterprise Plusが必要。
導入方法は簡単なので、他のページに譲るが、注意点としては、ハードウェアTPMが付いていないサーバを利用する場合は、以下のチェックを外して登録する必要がある。
登録後、Keyファイルをダウンロードすることで利用が可能になる。しかし、ここに1つ盲点が。。。VMを作るESXはクラスタに登録されている必要がある。
クラスタに入っていないESXでWindows11の仮想マシンを作成しようとすると以下のエラーが表示される。
A general runtime error occurred. Key provider キー名 is not compatible with the host ESXホスト名. Reason: “The host does not support Native Key Provider.”
Windows 11を使おうとしたESXはクラスタのメンバーではなかった。
Standard Key Provider
外部のKey Providerを利用するもの。多くが有償製品だが、無料で動くPythonモジュールもある。
pykmip https://github.com/OpenKMIP/PyKMIP
Pykmipのドキュメント https://pykmip.readthedocs.io/en/latest/installation.html#building-pykmip-on-linux
以下のページには、Dockerで立ち上げる方法が記載されている。Dockerのほうが簡単。必要となるリソースもごくわずかである。
vSphere 6.5での記事だが、vSphere 7U3nや8U1cでも利用できた。自分は管理がめんどくさかったので、常時稼働させているQnapのDockerで立てた。
pykmipは設定不要。ログには、Not implementedと出たりするが、特に問題はない。もちろん、物理マシン側には、ハードウェアTPMモジュールは不要。
vCenterの登録は名前とIPアドレス、ポートだけである。
Key Providerが登録できない場合、 Password protectionを確認する。ブラウザのパスワード補完でパスワードが入ってしまっている場合がある。その場合、パスワードを削除してあげれば登録ができる。
以下の赤枠を削除。
この方法の場合、ESXはクラスタのメンバーである必要はない!よって、KMIPサーバを建てられるのであれば、外部KMIPのほうが、ESXの構成に依存しないので便利かもしれない。
それにしてもNative Key Providerは、ESXがクラスタメンバーではないと動かないのは盲点だった。