We saw previously that we could use PowerCLI to rekey objects to a different key provider. It is much more common that you simply want to rekey objects within the same key provider, perhaps to meet a compliance requirement. We can use the same set of commands without specifying a key provider to perform rekey operations.
The simplest and fastest of the three is a vSAN rekey, which only needs to reissue one root key for each cluster protected by vSAN encryption:
PS C:\Users\Administrator> Invoke-VsanEncryptionRekey -Cluster cluster1 -DeepRekey $false
Executing shallow rekey of vSAN Cluster cluster1
PS C:\Users\Administrator>
This performs a shallow rekey. You can perform a deep rekey by changing $false
to $true
. This will take much longer to complete.
We can also rekey each of our VMs that is protected by vSphere encryption, as follows:
PS C:\Users\Administrator> foreach($myvm in Get-VM){
>> if($myvm.KMSserver){
>> echo $myvm.name
>> Set-VMEncryptionKey -VM $myvm
>> }
>> }
scott-test
Type Value
---- -----
Task task-23093
PS C:\Users\Administrator>
This took a couple minutes to complete for each VM. You can perform a deep rekey—which will take longer to complete—by adding the -Deep
parameter to the Set-VMEncryptionKey
cmdlet.
Finally, if you wish to rekey the host encryption keys used to protect core dumps, you can run the following:
PS C:\Users\Administrator> foreach($myhost in Get-VMHost){
>> echo $myhost.name
>> Set-VMHostCryptoKey -VMHost $myhost
>> }
host003.smoonen.example.com
host004.smoonen.example.com
host000.smoonen.example.com
host001.smoonen.example.com
host002.smoonen.example.com
PS C:\Users\Administrator>
This took a few minutes to complete for each host. There is no notion of deep rekeying for host encryption keys.