Delen via


Set-AzVMDiskEncryptionExtension

Hiermee schakelt u versleuteling in op een actieve Virtuele IaaS-machine in Azure.

Syntaxis

Set-AzVMDiskEncryptionExtension
   [-ResourceGroupName] <String>
   [-VMName] <String>
   [-AadClientID] <String>
   [-AadClientSecret] <String>
   [-DiskEncryptionKeyVaultUrl] <String>
   [-DiskEncryptionKeyVaultId] <String>
   [[-KeyEncryptionKeyUrl] <String>]
   [[-KeyEncryptionKeyVaultId] <String>]
   [[-KeyEncryptionAlgorithm] <String>]
   [[-VolumeType] <String>]
   [[-SequenceVersion] <String>]
   [[-TypeHandlerVersion] <String>]
   [[-Name] <String>]
   [[-Passphrase] <String>]
   [-Force]
   [-DisableAutoUpgradeMinorVersion]
   [-SkipVmBackup]
   [-ExtensionType <String>]
   [-ExtensionPublisherName <String>]
   [-EncryptFormatAll]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-AzVMDiskEncryptionExtension
   [-ResourceGroupName] <String>
   [-VMName] <String>
   [-AadClientID] <String>
   [-AadClientCertThumbprint] <String>
   [-DiskEncryptionKeyVaultUrl] <String>
   [-DiskEncryptionKeyVaultId] <String>
   [[-KeyEncryptionKeyUrl] <String>]
   [[-KeyEncryptionKeyVaultId] <String>]
   [[-KeyEncryptionAlgorithm] <String>]
   [[-VolumeType] <String>]
   [[-SequenceVersion] <String>]
   [[-TypeHandlerVersion] <String>]
   [[-Name] <String>]
   [[-Passphrase] <String>]
   [-Force]
   [-DisableAutoUpgradeMinorVersion]
   [-SkipVmBackup]
   [-ExtensionType <String>]
   [-ExtensionPublisherName <String>]
   [-EncryptFormatAll]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

De cmdlet Set-AzVMDiskEncryptionExtension schakelt versleuteling in op een actieve IaaS-vm (Infrastructure as a Service) in Azure. Met deze cmdlet schakelt u versleuteling in door de schijfversleutelingsextensie op de virtuele machine te installeren. Als er geen naamparameter is opgegeven, wordt een extensie met de standaardnaam AzureDiskEncryption geïnstalleerd voor virtuele machines waarop het Windows-besturingssysteem of AzureDiskEncryptionForLinux voor virtuele Linux-machines wordt uitgevoerd. Voor deze cmdlet is een bevestiging van de gebruikers vereist als een van de stappen om versleuteling in te schakelen, moet de virtuele machine opnieuw worden opgestart. Het is raadzaam om uw werk op de virtuele machine op te slaan voordat u deze cmdlet uitvoert.

Voorbeelden

Voorbeeld 1: Versleuteling inschakelen met behulp van De Client-id van Microsoft Entra en clientgeheim

$RGName = "MyResourceGroup"
$VMName = "MyTestVM"
$AADClientID = "<clientID of your Azure AD app>"
$AADClientSecret = "<clientSecret of your Azure AD app>"
$VaultName= "MyKeyVault"
$KeyVault = Get-AzKeyVault -VaultName $VaultName -ResourceGroupName $RGName
$DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
$KeyVaultResourceId = $KeyVault.ResourceId
Set-AzVMDiskEncryptionExtension -ResourceGroupName $RGName -VMName $VMName -AadClientID $AADClientID -AadClientSecret $AADClientSecret -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId

In dit voorbeeld wordt versleuteling ingeschakeld met behulp van de Client-id van Microsoft Entra en het clientgeheim.

Voorbeeld 2: Versleuteling inschakelen met microsoft Entra-client-id en vingerafdruk voor clientcertificering

$RGName = "MyResourceGroup"
$VMName = "MyTestVM"
#The KeyVault must have enabledForDiskEncryption property set on it
$VaultName= "MyKeyVault"
$KeyVault = Get-AzKeyVault -VaultName $VaultName -ResourceGroupName $RGName
$DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
$KeyVaultResourceId = $KeyVault.ResourceId

# create Azure AD application and associate the certificate
$CertPath = "C:\certificates\examplecert.pfx"
$CertPassword = "Password"
$Cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($CertPath, $CertPassword)
$KeyValue = [System.Convert]::ToBase64String($cert.GetRawCertData())
$AzureAdApplication = New-AzADApplication -DisplayName "<Your Application Display Name>" -HomePage "<https://YourApplicationHomePage>" -IdentifierUris "<https://YouApplicationUri>" -KeyValue $KeyValue -KeyType AsymmetricX509Cert
$ServicePrincipal = New-AzADServicePrincipal -ApplicationId $AzureAdApplication.ApplicationId

$AADClientID = $AzureAdApplication.ApplicationId
$aadClientCertThumbprint= $cert.Thumbprint

#Upload pfx to KeyVault
$KeyVaultSecretName = "MyAADCert"
$FileContentBytes = get-content $CertPath -Encoding Byte
$FileContentEncoded = [System.Convert]::ToBase64String($fileContentBytes)
$JSONObject = @"
    {
        "data" : "$filecontentencoded",
        "dataType" : "pfx",
        "password" : "$CertPassword"
    }
"@
$JSONObjectBytes = [System.Text.Encoding]::UTF8.GetBytes($jsonObject)
$JSONEncoded = [System.Convert]::ToBase64String($jsonObjectBytes)

$Secret = ConvertTo-SecureString -String $JSONEncoded -AsPlainText -Force
Set-AzureKeyVaultSecret -VaultName $VaultName -Name $KeyVaultSecretName -SecretValue $Secret
Set-AzKeyVaultAccessPolicy -VaultName $VaultName -ResourceGroupName $RGName -EnabledForDeployment

#deploy cert to VM
$CertUrl = (Get-AzureKeyVaultSecret -VaultName $VaultName -Name $KeyVaultSecretName).Id
$SourceVaultId = (Get-AzKeyVault -VaultName $VaultName -ResourceGroupName $RGName).ResourceId
$VM = Get-AzVM -ResourceGroupName $RGName -Name $VMName
$VM = Add-AzVMSecret -VM $VM -SourceVaultId $SourceVaultId -CertificateStore "My" -CertificateUrl $CertUrl
Update-AzVM -VM $VM -ResourceGroupName $RGName

#Enable encryption on the virtual machine using Azure AD client ID and client cert thumbprint
Set-AzVMDiskEncryptionExtension -ResourceGroupName $RGName -VMName $VMName -AadClientID $AADClientID -AadClientCertThumbprint $AADClientCertThumbprint -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId

In dit voorbeeld wordt versleuteling ingeschakeld met behulp van microsoft Entra-client-id en vingerafdruk voor clientcertificering.

Voorbeeld 3: Versleuteling inschakelen met de client-id van Microsoft Entra, clientgeheim en schijfversleutelingssleutel verpakken met behulp van sleutelversleutelingssleutel

$RGName = "MyResourceGroup"
$VMName = "MyTestVM"

$AADClientID = "<clientID of your Azure AD app>"
$AADClientSecret = "<clientSecret of your Azure AD app>"

$VaultName= "MyKeyVault"
$KeyVault = Get-AzKeyVault -VaultName $VaultName -ResourceGroupName $RGName
$DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
$KeyVaultResourceId = $KeyVault.ResourceId

$KEK = Add-AzureKeyVaultKey -VaultName $VaultName -Name $KEKName -Destination "Software"
$KeyEncryptionKeyUrl = $KEK.Key.kid

Set-AzVMDiskEncryptionExtension -ResourceGroupName $RGName -VMName $VMName -AadClientID $AADClientID -AadClientSecret $AADClientSecret -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $KeyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId

In dit voorbeeld wordt versleuteling ingeschakeld met behulp van de Client-id van Microsoft Entra, het clientgeheim en de schijfversleutelingssleutel verpakken met behulp van de sleutelversleutelingssleutel.

Voorbeeld 4: Versleuteling inschakelen met behulp van microsoft Entra-client-id, clientcertificaatvingerafdruk en schijfversleutelingssleutel verpakken met behulp van sleutelversleutelingssleutel

$RGName = "MyResourceGroup"
$VMName = "MyTestVM"
#The KeyVault must have enabledForDiskEncryption property set on it
$VaultName= "MyKeyVault"
$KeyVault = Get-AzKeyVault -VaultName $VaultName -ResourceGroupName $RGName
$DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
$KeyVaultResourceId = $KeyVault.ResourceId
$KEK = Add-AzureKeyVaultKey -VaultName $VaultName -Name $KEKName -Destination "Software"
$KeyEncryptionKeyUrl = $KEK.Key.kid

# create Azure AD application and associate the certificate
$CertPath = "C:\certificates\examplecert.pfx"
$CertPassword = "Password"
$Cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($CertPath, $CertPassword)
$KeyValue = [System.Convert]::ToBase64String($cert.GetRawCertData())
$AzureAdApplication = New-AzADApplication -DisplayName "<Your Application Display Name>" -HomePage "<https://YourApplicationHomePage>" -IdentifierUris "<https://YouApplicationUri>" -KeyValue $KeyValue -KeyType AsymmetricX509Cert
$ServicePrincipal = New-AzADServicePrincipal -ApplicationId $AzureAdApplication.ApplicationId

$AADClientID = $AzureAdApplication.ApplicationId
$AADClientCertThumbprint= $Cert.Thumbprint

#Upload pfx to KeyVault
$KeyVaultSecretName = "MyAADCert"
$FileContentBytes = get-content $CertPath -Encoding Byte
$FileContentEncoded = [System.Convert]::ToBase64String($FileContentBytes)
$JSONObject = @"
    {
        "data" : "$filecontentencoded",
        "dataType" : "pfx",
        "password" : "$CertPassword"
    }
"@
$JSONObjectBytes = [System.Text.Encoding]::UTF8.GetBytes($JSONObject)
$JsonEncoded = [System.Convert]::ToBase64String($JSONObjectBytes)
$Secret = ConvertTo-SecureString -String $JSONEncoded -AsPlainText -Force
Set-AzureKeyVaultSecret -VaultName $VaultName-Name $KeyVaultSecretName -SecretValue $Secret
Set-AzKeyVaultAccessPolicy -VaultName $VaultName -ResourceGroupName $RGName -EnabledForDeployment

#deploy cert to VM
$CertUrl = (Get-AzureKeyVaultSecret -VaultName $VaultName -Name $KeyVaultSecretName).Id
$SourceVaultId = (Get-AzKeyVault -VaultName $VaultName -ResourceGroupName $RGName).ResourceId
$VM = Get-AzVM -ResourceGroupName $RGName -Name $VMName
$VM = Add-AzVMSecret -VM $VM -SourceVaultId $SourceVaultId -CertificateStore "My" -CertificateUrl $CertUrl
Update-AzVM -VM $VM -ResourceGroupName $RGName

#Enable encryption on the virtual machine using Azure AD client ID and client cert thumbprint
Set-AzVMDiskEncryptionExtension -ResourceGroupName $RGname -VMName $VMName -AadClientID $AADClientID -AadClientCertThumbprint $AADClientCertThumbprint -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId

In dit voorbeeld is versleuteling mogelijk met behulp van client-id van Microsoft Entra, vingerafdruk van clientcertificaat en versleutelingssleutel voor schijfterugloop met behulp van sleutelversleutelingssleutel.

Parameters

-AadClientCertThumbprint

Hiermee geeft u de vingerafdruk op van het Clientcertificaat van de Microsoft Entra-toepassing met machtigingen voor het schrijven van geheimen naar KeyVault. Als vereiste moet het Microsoft Entra-clientcertificaat eerder worden geïmplementeerd in het certificaatarchief van de lokale computer van de virtuele machine my . De cmdlet Add-AzVMSecret kan worden gebruikt om een certificaat te implementeren op een virtuele machine in Azure. Zie de Help voor de cmdlet Add-AzVMSecret voor meer informatie. Het certificaat moet eerder worden geïmplementeerd op de lokale computer van de virtuele machine waarop het certificaatarchief is opgeslagen.

Type:String
Position:3
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-AadClientID

Hiermee geeft u de client-id op van de Microsoft Entra-toepassing met machtigingen voor het schrijven van geheimen naar KeyVault.

Type:String
Position:2
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-AadClientSecret

Hiermee geeft u het clientgeheim op van de Microsoft Entra-toepassing met machtigingen voor het schrijven van geheimen naar KeyVault.

Type:String
Position:3
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Confirm

Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.

Type:SwitchParameter
Aliassen:cf
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-DefaultProfile

De referenties, het account, de tenant en het abonnement die worden gebruikt voor communicatie met Azure.

Type:IAzureContextContainer
Aliassen:AzureRmContext, AzureCredential
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-DisableAutoUpgradeMinorVersion

Geeft aan dat deze cmdlet automatische upgrade van de secundaire versie van de extensie uitschakelt.

Type:SwitchParameter
Position:14
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-DiskEncryptionKeyVaultId

Hiermee geeft u de resource-id op van de KeyVault waarnaar de versleutelingssleutels van de virtuele machine moeten worden geüpload.

Type:String
Position:5
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-DiskEncryptionKeyVaultUrl

Hiermee geeft u de KeyVault-URL op waarnaar de versleutelingssleutels van de virtuele machine moeten worden geüpload.

Type:String
Position:4
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-EncryptFormatAll

Alle gegevensstations versleutelen die nog niet zijn versleuteld

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-ExtensionPublisherName

De naam van de uitgever van de extensie. Geef deze parameter alleen op om de standaardwaarde van Microsoft.Azure.Security te overschrijven.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-ExtensionType

Het extensietype. Geef deze parameter op om de standaardwaarde van 'AzureDiskEncryption' voor Windows-VM's en 'AzureDiskEncryptionForLinux' voor Linux-VM's te overschrijven.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Force

Hiermee dwingt u de opdracht uit te voeren zonder dat u om bevestiging van de gebruiker wordt gevraagd.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-KeyEncryptionAlgorithm

Hiermee geeft u het algoritme op dat wordt gebruikt voor het verpakken en uitpakken van de sleutelversleutelingssleutel van de virtuele machine. De standaardwaarde is RSA-OAEP.

Type:String
Geaccepteerde waarden:RSA-OAEP, RSA1_5
Position:8
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-KeyEncryptionKeyUrl

Hiermee geeft u de URL op van de sleutelversleutelingssleutel die wordt gebruikt voor het verpakken en uitpakken van de versleutelingssleutel van de virtuele machine. Dit moet de volledige URL met versie zijn.

Type:String
Position:6
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-KeyEncryptionKeyVaultId

Hiermee geeft u de resource-id op van de KeyVault die sleutelversleutelingssleutel bevat die wordt gebruikt voor het verpakken en uitpakken van de versleutelingssleutel van de virtuele machine. Dit moet een volledige URL met versie zijn.

Type:String
Position:7
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Name

Hiermee geeft u de naam op van de Azure Resource Manager-resource die de extensie vertegenwoordigt. De standaardwaarde is AzureDiskEncryption voor virtuele machines waarop het Windows-besturingssysteem of AzureDiskEncryptionForLinux voor virtuele Linux-machines wordt uitgevoerd.

Type:String
Aliassen:ExtensionName
Position:12
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Passphrase

Hiermee geeft u de wachtwoordzin op die alleen wordt gebruikt voor het versleutelen van virtuele Linux-machines. Deze parameter wordt niet gebruikt voor virtuele machines waarop het Windows-besturingssysteem wordt uitgevoerd.

Type:String
Position:13
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-ResourceGroupName

Hiermee geeft u de naam van de resourcegroep van de virtuele machine.

Type:String
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-SequenceVersion

Hiermee geeft u het volgnummer van de versleutelingsbewerkingen voor een virtuele machine. Dit is uniek per versleutelingsbewerking die op dezelfde virtuele machine wordt uitgevoerd. De Cmdlet Get-AzVMExtension kan worden gebruikt om het vorige volgnummer op te halen dat is gebruikt.

Type:String
Position:10
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-SkipVmBackup

Back-up maken voor Virtuele Linux-machines overslaan

Type:SwitchParameter
Position:15
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-TypeHandlerVersion

Hiermee geeft u de versie van de versleutelingsextensie.

Type:String
Aliassen:HandlerVersion, Version
Position:11
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-VMName

Hiermee geeft u de naam van de virtuele machine.

Type:String
Aliassen:ResourceName
Position:1
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-VolumeType

Hiermee geeft u het type virtuele-machinevolumes op om de versleutelingsbewerking uit te voeren. Toegestane waarden voor virtuele machines waarop het Windows-besturingssysteem wordt uitgevoerd, zijn als volgt: Alle, het besturingssysteem en de gegevens. De toegestane waarden voor virtuele Linux-machines zijn als volgt: alleen gegevens.

Type:String
Geaccepteerde waarden:OS, Data, All
Position:9
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-WhatIf

Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert.

De cmdlet wordt niet uitgevoerd.

Type:SwitchParameter
Aliassen:wi
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

Invoerwaarden

None

Deze cmdlet accepteert geen invoer.

Uitvoerwaarden

PSAzureOperationResponse