Set-AzureRmVMDiskEncryptionExtension

Engedélyezi a titkosítást egy futó IaaS virtuális gépen az Azure-ban.

Figyelmeztetés

Az AzureRM PowerShell-modul 2024. február 29-én hivatalosan elavult. Javasoljuk a felhasználóknak, hogy migráljanak az AzureRM-ből az Az PowerShell-modulba a folyamatos támogatás és frissítések biztosítása érdekében.

Bár az AzureRM-modul továbbra is működik, a továbbiakban nem tart fenn vagy nem támogatott, így a folyamatos használatot a felhasználó saját belátása szerint és kockázatára teheti. Az Az modulra való áttéréshez tekintse meg a migrálási erőforrásainkat.

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

A Set-AzureRmVMDiskEncryptionExtension parancsmag lehetővé teszi a titkosítást egy szolgáltatásként futó infrastruktúra (IaaS) virtuális gépen az Azure-ban. Ez a parancsmag a lemeztitkosítási bővítmény virtuális gépre való telepítésével teszi lehetővé a titkosítást. Ha nincs megadva névparaméter , az alapértelmezett AzureDiskEncryption nevű bővítmény telepítve lesz a Windows operációs rendszert futtató virtuális gépekhez vagy a Linux rendszerű AzureDiskEncryptionForLinux virtuális gépekhez. Ez a parancsmag megerősítést igényel a felhasználóktól, mivel a titkosítás engedélyezésének egyik lépése a virtuális gép újraindítása. Javasoljuk, hogy a parancsmag futtatása előtt mentse a munkáját a virtuális gépen.

Példák

1. példa: Titkosítás engedélyezése

$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

Ez a példa bemutatja a titkosítás engedélyezését AD-hitelesítő adatok megadása nélkül.

2. példa: Titkosítás engedélyezése folyamatos bemenettel

$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

Ez a példa azt mutatja be, hogy paramétereket küld a folyamat által bevitt adatokkal a titkosítás engedélyezéséhez az AD hitelesítő adatainak megadása nélkül.

3. példa: Titkosítás engedélyezése a Microsoft Entra ügyfélazonosítója és titkos ügyfélkódja használatával

$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

Ez a példa lehetővé teszi a Titkosítást a Microsoft Entra ügyfélazonosítójával és az ügyfél titkos kódjával.

4. példa: Titkosítás engedélyezése a Microsoft Entra ügyfélazonosítójával és az ügyféltanúsítvány ujjlenyomatával

$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

Ez a példa lehetővé teszi a Titkosítást a Microsoft Entra ügyfélazonosítója és az ügyféltanúsítvány ujjlenyomatai használatával.

5. példa: Titkosítás engedélyezése a Microsoft Entra ügyfélazonosítójával, az ügyfél titkos kódjával és a lemeztitkosítási kulcs körbefuttatásával kulcstitkosítási kulccsal

$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

Ez a példa lehetővé teszi a Titkosítást a Microsoft Entra ügyfélazonosítója, az ügyféltitkosítás és a lemeztitkosítási kulcs körbefuttatása a kulcstitkosítási kulccsal.

6. példa: Titkosítás engedélyezése a Microsoft Entra ügyfélazonosítójával, az ügyfél tanúsítványának ujjlenyomatával és a lemeztitkosítási kulcs kulcstitkosítási kulcs használatával történő körbefuttatásával

$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

Ez a példa lehetővé teszi a Titkosítást a Microsoft Entra ügyfélazonosítója, az ügyfél-tanúsítvány ujjlenyomata és a lemeztitkosítási kulcs kulcstitkosítási kulcs használatával történő körbefuttatása használatával.

Paraméterek

-AadClientCertThumbprint

Megadja a Microsoft Entra alkalmazás ügyféltanúsítványának ujjlenyomatát, amely rendelkezik titkos kulcsok KeyVaultba írásához szükséges engedélyekkel. Előfeltételként a Microsoft Entra ügyféltanúsítványt korábban üzembe kell helyezni a virtuális gép helyi számítógép my tanúsítványtárolójában. Az Add-AzureRmVMSecret parancsmaggal tanúsítványt helyezhet üzembe egy Azure-beli virtuális gépen. További részletekért tekintse meg az Add-AzureRmVMSecret parancsmag súgóját. A tanúsítványt korábban telepíteni kell a virtuális gép helyi számítógépére a tanúsítványtárolóban.

Type:String
Position:3
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-AadClientID

Megadja annak a Microsoft Entra-alkalmazásnak az ügyfél-azonosítóját, amely rendelkezik titkos kulcsok KeyVaultba írásához szükséges engedélyekkel.

Type:String
Position:2
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-AadClientSecret

Megadja annak a Microsoft Entra-alkalmazásnak az ügyféltitkát, amely rendelkezik titkos kulcsok KeyVaultba írására vonatkozó engedélyekkel.

Type:String
Position:3
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

Jóváhagyást kér a parancsmag futtatása előtt.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

Az Azure-ral való kommunikációhoz használt hitelesítő adatok, fiók, bérlő és előfizetés.

Type:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisableAutoUpgradeMinorVersion

Azt jelzi, hogy ez a parancsmag letiltja a bővítmény alverziójának automatikus frissítését.

Type:SwitchParameter
Position:14
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DiskEncryptionKeyVaultId

Megadja annak a KeyVaultnak az erőforrás-azonosítóját, amelyre a virtuális gép titkosítási kulcsait fel kell tölteni.

Type:String
Position:5
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-DiskEncryptionKeyVaultUrl

Megadja azt a KeyVault URL-címet, amelyre a virtuális gép titkosítási kulcsait fel kell tölteni.

Type:String
Position:4
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-EncryptFormatAll

Még nem titkosított adatmeghajtók titkosítása

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ExtensionPublisherName

A bővítmény közzétevőjének neve. Ezt a paramétert csak a "Microsoft.Azure.Security" alapértelmezett értékének felülbírálásához adja meg.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ExtensionType

A bővítmény típusa. Adja meg ezt a paramétert, hogy felülbírálja az alapértelmezett "AzureDiskEncryption" értéket Windows rendszerű virtuális gépeken és "AzureDiskEncryptionForLinux" Linux rendszerű virtuális gépeken.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Force

Kényszeríti a parancs futtatását anélkül, hogy felhasználói megerősítést kérne.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-KeyEncryptionAlgorithm

Megadja a virtuális gép kulcstitkosítási kulcsának burkolásához és feloldásához használt algoritmust. Az alapértelmezett érték az RSA-OAEP.

Type:String
Accepted values:RSA-OAEP, RSA1_5
Position:8
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-KeyEncryptionKeyUrl

Megadja a virtuális gép titkosítási kulcsának tördeléséhez és kibontásához használt kulcstitkosítási kulcs URL-címét. Ennek a teljes verziójú URL-címnek kell lennie.

Type:String
Position:6
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-KeyEncryptionKeyVaultId

Megadja a kulcstitkosítási kulcsot tartalmazó KeyVault erőforrás-azonosítóját, amely a virtuális gép titkosítási kulcsának burkolásához és kicsomagolásához használatos. Ennek teljes verziójú URL-címnek kell lennie.

Type:String
Position:7
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

Megadja a bővítményt képviselő Azure Resource Manager-erőforrás nevét. Az alapértelmezett érték az AzureDiskEncryption a Windows operációs rendszert futtató virtuális gépekhez vagy a Linux rendszerű virtuális gépekhez készült AzureDiskEncryptionForLinux.

Type:String
Aliases:ExtensionName
Position:12
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Passphrase

Csak a Linux rendszerű virtuális gépek titkosításához használt jelszót adja meg. Ez a paraméter nem használatos a Windows operációs rendszert futtató virtuális gépekhez.

Type:String
Position:13
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ResourceGroupName

Megadja a virtuális gép erőforráscsoportjának nevét.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-SequenceVersion

A virtuális gép titkosítási műveleteinek sorszámát adja meg. Ez minden egyes, ugyanazon a virtuális gépen végrehajtott titkosítási műveletenként egyedi. A Get-AzureRmVMExtension parancsmaggal lekérheti a korábban használt sorszámot.

Type:String
Position:10
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SkipVmBackup

Biztonsági mentés létrehozásának kihagyása Linux rendszerű virtuális gépekhez

Type:SwitchParameter
Position:15
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-TypeHandlerVersion

A titkosítási bővítmény verzióját adja meg.

Type:String
Aliases:HandlerVersion, Version
Position:11
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-VMName

Megadja a virtuális gép nevét.

Type:String
Aliases:ResourceName
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VolumeType

Megadja a titkosítási művelet végrehajtásához szükséges virtuálisgép-kötetek típusát. A Windows operációs rendszert futtató virtuális gépek engedélyezett értékei a következők: Minden, operációs rendszer és Adatok. A Linux rendszerű virtuális gépek engedélyezett értékei a következők: Minden, operációs rendszer és Adat, ha a Linux-disztribúció támogatja.

Type:String
Accepted values:OS, Data, All
Position:9
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Bemutatja, mi történne a parancsmag futtatásakor. A parancsmag nem fut.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Bevitelek

String

SwitchParameter

Kimenetek

PSAzureOperationResponse