Dela via


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

Indata

String

SwitchParameter

Utdata

PSAzureOperationResponse