Set-AzureRmVMDiskEncryptionExtension
Aktiverar kryptering på en virtuell IaaS-dator som körs i Azure.
Varning
AzureRM PowerShell-modulen är officiellt inaktuell från och med den 29 februari 2024. Användare rekommenderas att migrera från AzureRM till Az PowerShell-modulen för att säkerställa fortsatt support och uppdateringar.
Även om AzureRM-modulen fortfarande kan fungera, underhålls den inte längre eller stöds, vilket gör att användaren kan välja och riskera fortsatt användning. Se våra migreringsresurser för vägledning om övergången till Az-modulen.
Syntax
Set-AzureRmVMDiskEncryptionExtension
[-ResourceGroupName] <String>
[-VMName] <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-AzureRmVMDiskEncryptionExtension
[-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-AzureRmVMDiskEncryptionExtension
[-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
Cmdleten Set-AzureRmVMDiskEncryptionExtension möjliggör kryptering på en virtuell IaaS-dator (infrastruktur som en tjänst som körs) i Azure. Den här cmdleten möjliggör kryptering genom att installera diskkrypteringstillägget på den virtuella datorn. Om ingen namnparameter anges installeras ett tillägg med standardnamnet AzureDiskEncryption för virtuella datorer som kör Windows-operativsystemet eller AzureDiskEncryptionForLinux för virtuella Linux-datorer. Den här cmdleten kräver bekräftelse från användarna eftersom ett av stegen för att aktivera kryptering kräver en omstart av den virtuella datorn. Vi rekommenderar att du sparar ditt arbete på den virtuella datorn innan du kör den här cmdleten.
Exempel
Exempel 1: Aktivera kryptering
$RGName = "MyResourceGroup"
$VMName = "MyTestVM"
$VaultName= "MyKeyVault"
$KeyVault = Get-AzureRmKeyVault -VaultName $VaultName -ResourceGroupName $RGName
$DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
$KeyVaultResourceId = $KeyVault.ResourceId
Set-AzureRmVMDiskEncryptionExtension -ResourceGroupName $RGName -VMName $VMName -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId
Det här exemplet visar aktivering av kryptering utan att ange AD-autentiseringsuppgifter.
Exempel 2: Aktivera kryptering med pipelineindata
$params = New-Object PSObject -Property @{
ResourceGroupName = "[resource-group-name]"
VMName = "[vm-name]"
DiskEncryptionKeyVaultId = "/subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]"
DiskEncryptionKeyVaultUrl = "https://[keyvault-name].vault.azure.net"
KeyEncryptionKeyVaultId = "/subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]"
KeyEncryptionKeyUrl = "https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]"
VolumeType = "All"
}
$params | Set-AzureRmVmDiskEncryptionExtension
Det här exemplet visar hur du skickar parametrar med pipelineindata för att aktivera kryptering utan att ange AD-autentiseringsuppgifter.
Exempel 3: Aktivera kryptering med Microsoft Entra-klient-ID och klienthemlighet
$RGName = "MyResourceGroup"
$VMName = "MyTestVM"
$AADClientID = "<clientID of your Azure AD app>"
$AADClientSecret = "<clientSecret of your Azure AD app>"
$VaultName= "MyKeyVault"
$KeyVault = Get-AzureRmKeyVault -VaultName $VaultName -ResourceGroupName $RGName
$DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
$KeyVaultResourceId = $KeyVault.ResourceId
Set-AzureRmVMDiskEncryptionExtension -ResourceGroupName $RGName -VMName $VMName -AadClientID $AADClientID -AadClientSecret $AADClientSecret -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId
Det här exemplet möjliggör kryptering med microsoft entra-klient-ID och klienthemlighet.
Exempel 4: Aktivera kryptering med microsoft Entra-klient-ID och tumavtryck för klientcertifiering
$RGName = "MyResourceGroup"
$VMName = "MyTestVM"
#The KeyVault must have enabledForDiskEncryption property set on it
$VaultName= "MyKeyVault"
$KeyVault = Get-AzureRmKeyVault -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)
$CertValue = [System.Convert]::ToBase64String($cert.GetRawCertData())
$AzureAdApplication = New-AzureRmADApplication -DisplayName "<Your Application Display Name>" -HomePage "<https://YourApplicationHomePage>" -IdentifierUris "<https://YouApplicationUri>" -CertValue $CertValue
$ServicePrincipal = New-AzureRmADServicePrincipal -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-AzureRmKeyVaultAccessPolicy -VaultName $VaultName -ResourceGroupName $RGName -EnabledForDeployment
#deploy cert to VM
$CertUrl = (Get-AzureKeyVaultSecret -VaultName $VaultName -Name $KeyVaultSecretName).Id
$SourceVaultId = (Get-AzureRmKeyVault -VaultName $VaultName -ResourceGroupName $RGName).ResourceId
$VM = Get-AzureRmVM -ResourceGroupName $RGName -Name $VMName
$VM = Add-AzureRmVMSecret -VM $VM -SourceVaultId $SourceVaultId -CertificateStore "My" -CertificateUrl $CertUrl
Update-AzureRmVM -VM $VM -ResourceGroupName $RGName
#Enable encryption on the virtual machine using Azure AD client ID and client cert thumbprint
Set-AzureRmVMDiskEncryptionExtension -ResourceGroupName $RGName -VMName $VMName -AadClientID $AADClientID -AadClientCertThumbprint $AADClientCertThumbprint -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId
Det här exemplet möjliggör kryptering med microsoft entra-klient-ID och tumavtryck för klientcertifiering.
Exempel 5: Aktivera kryptering med Microsoft Entra-klient-ID, klienthemlighet och omsluta diskkrypteringsnyckel med hjälp av nyckelkrypteringsnyckel
$RGName = "MyResourceGroup"
$VMName = "MyTestVM"
$AADClientID = "<clientID of your Azure AD app>"
$AADClientSecret = "<clientSecret of your Azure AD app>"
$VaultName= "MyKeyVault"
$KeyVault = Get-AzureRmKeyVault -VaultName $VaultName -ResourceGroupName $RGName
$DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
$KeyVaultResourceId = $KeyVault.ResourceId
$KEKName = "MyKeyEncryptionKey"
$KEK = Add-AzureKeyVaultKey -VaultName $VaultName -Name $KEKName -Destination "Software"
$KeyEncryptionKeyUrl = $KEK.Key.kid
Set-AzureRmVMDiskEncryptionExtension -ResourceGroupName $RGName -VMName $VMName -AadClientID $AADClientID -AadClientSecret $AADClientSecret -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $KeyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId
Det här exemplet möjliggör kryptering med hjälp av Microsoft Entra-klient-ID, klienthemlighet och omsluta diskkrypteringsnyckel med hjälp av nyckelkrypteringsnyckeln.
Exempel 6: Aktivera kryptering med Microsoft Entra-klient-ID, tumavtryck för klientcertifikat och omslut diskkrypteringsnyckel med nyckelkrypteringsnyckel
$RGName = "MyResourceGroup"
$VMName = "MyTestVM"
#The KeyVault must have enabledForDiskEncryption property set on it
$VaultName= "MyKeyVault"
$KeyVault = Get-AzureRmKeyVault -VaultName $VaultName -ResourceGroupName $RGName
$DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
$KeyVaultResourceId = $KeyVault.ResourceId
$KEKName = "MyKeyEncryptionKey"
$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)
$CertValue = [System.Convert]::ToBase64String($cert.GetRawCertData())
$AzureAdApplication = New-AzureRmADApplication -DisplayName "<Your Application Display Name>" -HomePage "<https://YourApplicationHomePage>" -IdentifierUris "<https://YouApplicationUri>" -CertValue $CertValue
$ServicePrincipal = New-AzureRmADServicePrincipal -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-AzureRmKeyVaultAccessPolicy -VaultName $VaultName -ResourceGroupName $RGName -EnabledForDeployment
#deploy cert to VM
$CertUrl = (Get-AzureKeyVaultSecret -VaultName $VaultName -Name $KeyVaultSecretName).Id
$SourceVaultId = (Get-AzureRmKeyVault -VaultName $VaultName -ResourceGroupName $RGName).ResourceId
$VM = Get-AzureRmVM -ResourceGroupName $RGName -Name $VMName
$VM = Add-AzureRmVMSecret -VM $VM -SourceVaultId $SourceVaultId -CertificateStore "My" -CertificateUrl $CertUrl
Update-AzureRmVM -VM $VM -ResourceGroupName $RGName
#Enable encryption on the virtual machine using Azure AD client ID and client cert thumbprint
Set-AzureRmVMDiskEncryptionExtension -ResourceGroupName $RGname -VMName $VMName -AadClientID $AADClientID -AadClientCertThumbprint $AADClientCertThumbprint -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $KeyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId
Det här exemplet möjliggör kryptering med microsoft entra-klient-ID, tumavtryck för klientcertifikat och omsluter diskkrypteringsnyckel med hjälp av nyckelkrypteringsnyckel.
Parametrar
-AadClientCertThumbprint
Anger tumavtrycket för Microsoft Entra-programklientcertifikatet som har behörighet att skriva hemligheter till KeyVault.
Som en förutsättning måste Microsoft Entra-klientcertifikatet tidigare distribueras till den virtuella datorns lokala datorcertifikatarkiv my
.
Cmdleten Add-AzureRmVMSecret kan användas för att distribuera ett certifikat till en virtuell dator i Azure.
Mer information finns i cmdlet-hjälpen Add-AzureRmVMSecret .
Certifikatet måste tidigare distribueras till den virtuella datorns lokala dator mitt certifikatarkiv.
Typ: | String |
Position: | 3 |
standardvärde: | None |
Obligatorisk: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-AadClientID
Anger klient-ID för Microsoft Entra-programmet som har behörighet att skriva hemligheter till KeyVault.
Typ: | String |
Position: | 2 |
standardvärde: | None |
Obligatorisk: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-AadClientSecret
Anger klienthemligheten för Microsoft Entra-programmet som har behörighet att skriva hemligheter till KeyVault.
Typ: | String |
Position: | 3 |
standardvärde: | None |
Obligatorisk: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
Uppmanar dig att bekräfta innan du kör cmdleten.
Typ: | SwitchParameter |
Aliases: | cf |
Position: | Named |
standardvärde: | False |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultProfile
Autentiseringsuppgifter, konto, klientorganisation och prenumeration som används för kommunikation med Azure.
Typ: | IAzureContextContainer |
Aliases: | AzureRmContext, AzureCredential |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DisableAutoUpgradeMinorVersion
Anger att den här cmdleten inaktiverar automatisk uppgradering av delversionen av tillägget.
Typ: | SwitchParameter |
Position: | 14 |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-DiskEncryptionKeyVaultId
Anger resurs-ID för KeyVault som krypteringsnycklarna för virtuella datorer ska laddas upp till.
Typ: | String |
Position: | 5 |
standardvärde: | None |
Obligatorisk: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-DiskEncryptionKeyVaultUrl
Anger den KeyVault-URL som krypteringsnycklarna för den virtuella datorn ska laddas upp till.
Typ: | String |
Position: | 4 |
standardvärde: | None |
Obligatorisk: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-EncryptFormatAll
Kryptera alla dataenheter som inte redan är krypterade
Typ: | SwitchParameter |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ExtensionPublisherName
Tilläggsutgivarens namn. Ange endast den här parametern för att åsidosätta standardvärdet "Microsoft.Azure.Security".
Typ: | String |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ExtensionType
Tilläggstypen. Ange den här parametern för att åsidosätta standardvärdet "AzureDiskEncryption" för virtuella Windows-datorer och "AzureDiskEncryptionForLinux" för virtuella Linux-datorer.
Typ: | String |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Force
Tvingar kommandot att köras utan att be om användarbekräftelse.
Typ: | SwitchParameter |
Position: | Named |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-KeyEncryptionAlgorithm
Anger den algoritm som används för att omsluta och packa upp nyckelkrypteringsnyckeln för den virtuella datorn. Standardvärdet är RSA-OAEP.
Typ: | String |
accepterade värden: | RSA-OAEP, RSA1_5 |
Position: | 8 |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-KeyEncryptionKeyUrl
Anger URL:en för nyckelkrypteringsnyckeln som används för att omsluta och packa upp krypteringsnyckeln för den virtuella datorn. Detta måste vara den fullständiga versions-URL:en.
Typ: | String |
Position: | 6 |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-KeyEncryptionKeyVaultId
Anger resurs-ID för KeyVault som innehåller nyckelkrypteringsnyckeln som används för att omsluta och packa upp krypteringsnyckeln för den virtuella datorn. Detta måste vara en fullständig version av URL:en.
Typ: | String |
Position: | 7 |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Anger namnet på den Azure Resource Manager-resurs som representerar tillägget. Standardvärdet är AzureDiskEncryption för virtuella datorer som kör Windows-operativsystemet eller AzureDiskEncryptionForLinux för virtuella Linux-datorer.
Typ: | String |
Aliases: | ExtensionName |
Position: | 12 |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Passphrase
Anger den lösenfras som endast används för kryptering av virtuella Linux-datorer. Den här parametern används inte för virtuella datorer som kör Windows-operativsystemet.
Typ: | String |
Position: | 13 |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ResourceGroupName
Anger namnet på resursgruppen för den virtuella datorn.
Typ: | String |
Position: | 0 |
standardvärde: | None |
Obligatorisk: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SequenceVersion
Anger sekvensnumret för krypteringsåtgärderna för en virtuell dator. Detta är unikt för varje krypteringsåtgärd som utförs på samma virtuella dator. Cmdleten Get-AzureRmVMExtension kan användas för att hämta det tidigare sekvensnumret som användes.
Typ: | String |
Position: | 10 |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SkipVmBackup
Hoppa över att skapa säkerhetskopior för virtuella Linux-datorer
Typ: | SwitchParameter |
Position: | 15 |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-TypeHandlerVersion
Anger versionen av krypteringstillägget.
Typ: | String |
Aliases: | HandlerVersion, Version |
Position: | 11 |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-VMName
Anger namnet på den virtuella datorn.
Typ: | String |
Aliases: | ResourceName |
Position: | 1 |
standardvärde: | None |
Obligatorisk: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-VolumeType
Anger vilken typ av volymer av virtuella datorer som ska utföra krypteringsåtgärden. Tillåtna värden för virtuella datorer som kör Windows-operativsystemet är följande: Alla, OPERATIVSYSTEM och Data. De tillåtna värdena för virtuella Linux-datorer är följande: Alla, OPERATIVSYSTEM och Data när de stöds av Linux-distributionen.
Typ: | String |
accepterade värden: | OS, Data, All |
Position: | 9 |
standardvärde: | None |
Obligatorisk: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.
Typ: | SwitchParameter |
Aliases: | wi |
Position: | Named |
standardvärde: | False |
Obligatorisk: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |