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.