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 size、in-storage-cache size、in-memory-low watermark、entropy-lost-timeout などのいくつかの構成可能なパラメータがあります。エントロピー ソース(内部および外部)は、エントロピーミキサー モジュールで収集されます。エントロピー デーモンは、ミキサーからカーネルのエントロピー プールにエントロピー ソースを転送します。
外部エントロピー ソースを選択する必要がない場合は、既存のスクリプトの変更は不要です。
キックスタート ファイルを更新する前に、HSM などの外部ソースから合法的なバイナリ エントロピー データを取得し、512 KB ~ 10 MB のサイズのファイル(entropy_data.dat など)として保存する必要があります。次に、entropy_data ファイルの内容を有効な base64 形式でエンコードして、entropy_data.b64 などの別のファイルを作成します。
キックスタート ファイルで、entropy コマンドの一部として次の新しいパラメータを指定します。
- data:外部ソースから取得された、base64 でエンコードされたエントロピー データ。
- sources:このビットマスク値(0 = default、1 = interrupts、2 = RDRAND、4 = RDSEED、8 = 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
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 プログラミング ガイド』を参照してください。