ESXi 8.0 업데이트 1부터는 스크립트로 작성된 설치를 위해 kickstart 파일에서 외부 엔트로피 소스를 구성할 수 있습니다.

HSM(하드웨어 보안 모듈)과 같은 외부 엔트로피 소스의 엔트로피를 사용하고 스크립트로 작성된 설치 방법을 사용하여 표준(예: BSI 조건 기준, EAL4 및 NIST FIPS CMVP)에 맞게 매우 안전한 환경에서 ESXi를 구성할 수 있습니다.

ESXi 8.0 업데이트 1에는 vAPI 끝점을 생성하는 엔트로피 데몬(entropyd)이 도입되어 ESXi 호스트에 엔트로피 데이터를 쿼리하고 전송하는 REST API를 제공합니다. 엔트로피 데몬에는 in-memory-cache size, in-storage-cache size, in-memory-low watermark, entropy-lost-timeout과 같이 구성 가능한 여러 매개 변수가 있습니다. 내부 및 외부 엔트로피 소스는 엔트로피 믹서 모듈에서 수집됩니다. 엔트로피 데몬은 엔트로피 소스를 믹서에서 커널의 엔트로피 풀로 전달합니다.

외부 엔트로피 소스를 선택할 필요가 없는 경우 기존 스크립트를 변경하지 않아도 됩니다.

외부 엔트로피 소스는 새 설치에 대해서만 구성할 수 있습니다. 엔트로피 데몬은 처음 부팅 시 설치 중에 전달된 엔트로피 데이터를 사용합니다.
참고: 대화형 설치, 클러스터 이미지 또는 Auto Deploy와 같은 다른 방법을 사용하여 외부 엔트로피 소스를 구성할 수 없습니다. 기존 ESXi 호스트에서는 이 기능을 사용하도록 설정할 수 없습니다.

kickstart 파일을 업데이트하기 전에 HSM과 같은 외부 소스에서 올바른 바이너리 엔트로피 데이터를 가져와서 512KB에서 10MB 사이 크기의 파일로 저장해야 합니다(예: entropy_data.dat). 그런 다음 entropy_data 파일의 컨텐츠를 유효한 base64 형식으로 인코딩하여 다른 파일(예: entropy_data.b64)을 생성합니다.

kickstart 파일에서 entropy 명령의 일부로 다음과 같은 새 매개 변수를 제공합니다.

  • data - 외부 소스의 base64로 인코딩된 엔트로피 데이터입니다.
  • sources - 이 비트마스크 값(0=default, 1=interrupts, 2=RDRAND, 4=RDSEED, 8=entropyd)은 설치 시 커널 설정에서 설정됩니다. RDSEED가 지원되는 경우 기본값은 FIPS 규정 준수입니다. 그렇지 않으면 기본값은 entropyd를 제외한 모든 엔트로피 소스입니다. EAL4 규정 준수를 위해 8이 유일한 필수 값이지만 십진수 범위 0-15에서 다른 소스를 사용할 수 있습니다. 소스 값은 설치 중에 커널 설정으로 유지됩니다.
    참고: 외부 엔트로피 소스만 사용하여 ESXi 호스트를 구성하는 경우 즉 sources 값이 8로 설정된 경우 엔트로피 API를 사용하여 호스트에 외부 엔트로피를 계속 제공해야 합니다. 호스트에서 외부 엔트로피가 소진되면 호스트가 응답하지 않게 되고 이러한 상황에서 호스트를 복구하려면 하드 재부팅 또는 재설치가 필요할 수 있습니다.

엔트로피 매개 변수가 있는 샘플 kickstart:

vmaccepteula
rootpw xxxxxxxx 
entropy --sources=8 --data=xxxxxxx/xx/xxxxx/xx/xxxx...
install --firstdisk --overwritevmfs 
network --bootproto=dhcp
그림 1. 외부 엔트로피 소스를 추가하기 위해 스크립트로 작성된 설치 워크플로
외부 엔트로피 소스를 추가하기 위해 스크립트로 작성된 설치 워크플로
설치가 완료된 후 ESXi 호스트에 로그인하고 다음 ESXCLI 명령을 사용하여 셸에서 엔트로피 데몬에 대한 일부 매개 변수를 정의할 수 있습니다.

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 프로그래밍 가이드를 참조하십시오.