ESXi 8.0 Update 1 以降でスクリプトによるインストールを行う場合は、キックスタート ファイル内で外部エントロピー ソースを構成できます。

スクリプトによるインストール方法を使用することで、安全性の高い環境において、ハードウェア セキュリティ モジュール (HSM) などの外部エントロピー ソースのエントロピーを使用し、BSI コモン クライテリア、EAL4、NIST FIPS CMVP などの標準に適合するように ESXi を構成することができます。

ESXi 8.0 Update 1 には entropyd というエントロピー デーモンが導入されています。このデーモンを使用して vAPI エンドポイントを作成することにより、REST API はエントロピー データのクエリや、ESXi ホストへのエントロピー データの送信を行うことが可能になります。このエントロピー デーモンには、in-memory-cache sizein-storage-cache sizein-memory-low watermarkentropy-lost-timeout などのいくつかの構成可能なパラメータがあります。エントロピー ソース(内部および外部)は、エントロピーミキサー モジュールで収集されます。エントロピー デーモンは、ミキサーからカーネルのエントロピー プールにエントロピー ソースを転送します。

外部エントロピー ソースを選択する必要がない場合は、既存のスクリプトの変更は不要です。

外部エントロピー ソースを構成できるのは、新規インストールの場合のみです。エントロピー デーモンは、初回起動時のインストール中に渡されたエントロピー データを使用します。
注: 対話型インストール、クラスタ イメージ、Auto Deploy などの他の方法を使用して、外部エントロピー ソースを構成することはできません。既存の ESXi ホストでこの機能を有効にすることはできません。

キックスタート ファイルを更新する前に、HSM などの外部ソースから合法的なバイナリ エントロピー データを取得し、512 KB ~ 10 MB のサイズのファイル(entropy_data.dat など)として保存する必要があります。次に、entropy_data ファイルの内容を有効な base64 形式でエンコードして、entropy_data.b64 などの別のファイルを作成します。

キックスタート ファイルで、entropy コマンドの一部として次の新しいパラメータを指定します。

  • data:外部ソースから取得された、base64 でエンコードされたエントロピー データ。
  • sources:このビットマスク値(0 = default1 = interrupts2 = RDRAND4 = RDSEED8 = entropyd)は、インストール時にカーネルで設定されます。RDSEED がサポートされている場合、デフォルトは FIPS コンプライアンスです。それ以外の場合、デフォルトはすべてのエントロピー ソース(entropyd を除く)です。EAL4 に準拠するために必要な値は 8 のみですが、10 進数の範囲 (0-15) 内の他のソースを使用することができます。ソース値は、インストールの間、カーネル設定として保持されます。
    注: 外部エントロピー ソースのみを使用して ESXi ホストを構成する場合( sources 値が 8 に設定されている場合)は、エントロピー API を使用して外部エントロピーをホストに提供し続ける必要があります。ホストで外部エントロピーが枯渇すると、ホストが応答しなくなり、このような状況からホストをリカバリするために強制的な再起動または再インストールが必要になることがあります。

エントロピー パラメータを使用したキックスタートの例:

vmaccepteula
rootpw xxxxxxxx 
entropy --sources=8 --data=xxxxxxx/xx/xxxxx/xx/xxxx...
install --firstdisk --overwritevmfs 
network --bootproto=dhcp
図 1. 外部エントロピー ソースを追加するためのスクリプトによるインストールのワークフロー
外部エントロピー ソースを追加するためのスクリプトによるインストールのワークフロー
インストールが完了したら、次の ESXCLI コマンドを使用して ESXi ホストにログインし、シェルからエントロピー デーモンのパラメータをいくつか定義できます。

ESXCLI コマンド

1. コマンドを取得する

## esxcli system entropyd get コマンドの説明
1 <no argument> すべての entropyd パラメータの現在の構成値とデフォルト値を取得します
2 --default-values デフォルト値を取得します

2. コマンドを設定する

## esxcli system entropyd set コマンドの説明
1 --help 「esxcli system entropyd set」コマンドの詳細と引数を出力します
2

--reset=all

--reset=memory-cache-size

--reset=memory-cache-low-watermark

--reset=storage-cache-size

--reset=external-entropy-lost-timeout

特定のパラメータまたはすべてのパラメータをデフォルト値にリセットします。
3 --memory-cache-size=<value in KiB> メモリ キャッシュ サイズを KiB 単位で設定します。
4 --memory-cache-low-watermark=<value in %> メモリ キャッシュの下位のウォーター マークをパーセンテージで設定します。
5 --storage-cache-size=<value in KiB> ストレージ キャッシュ サイズを KiB 単位で設定します。
6 --external-entropy-lost-timeout=<value in seconds> 外部エントロピーで失われたタイムアウトを秒単位で設定します。

例:

$ esxcli system entropyd set --external-entropy-lost-timeout=70 --memory-cache-low-watermark=30 --memory-cache-size=612 --storage-cache-size=5096
$ esxcli system entropyd get
External Entropy Lost Timeout Seconds: 70
Memory Cache Low Watermark Percentage: 30
Memory Cache Size Kibibytes: 612
Storage Cache Size Kibibytes: 5096
                
$ esxcli system entropyd get --default-values
External Entropy Lost Timeout Seconds: 60
Memory Cache Low Watermark Percentage: 20
Memory Cache Size Kibibytes: 512
Storage Cache Size Kibibytes: 4096

ESXi インストーラによるインストール中にカーネル設定のエントロピー ソース値は更新され、インストール後も ConfigStore に保持されるようになります。この変更は、ESXi ホストのセキュア ブートには影響しません。

詳細については、『vSphere セキュリティ』および『vSphere Automation SDK プログラミング ガイド』を参照してください。