Kulcstartó létrehozása és konfigurálása Az Azure Disk Encryptionhez Microsoft Entra ID azonosítóval (korábbi kiadás) Linux rendszerű virtuális gépekhez

A következőkre vonatkozik: ✔️ Linux rendszerű virtuális gépek rugalmas méretezési ✔️ csoportjai

Az Azure Disk Encryption új kiadása szükségtelenné teszi a Microsoft Entra alkalmazásparaméter biztosítását a virtuálisgép-lemez titkosításának engedélyezéséhez. Az új kiadással már nem kell megadnia a Microsoft Entra hitelesítő adatait az engedélyezési titkosítási lépés során. Az új kiadással minden új virtuális gépet titkosítani kell a Microsoft Entra alkalmazásparaméterei nélkül. A virtuálisgép-lemeztitkosítás új kiadással történő engedélyezésére vonatkozó utasításokat az Azure Disk Encryption című témakörben tekintheti meg. A Microsoft Entra alkalmazásparaméterekkel már titkosított virtuális gépek továbbra is támogatottak, és továbbra is a Microsoft Entra szintaxissal kell fenntartani őket.

Az Azure Disk Encryption az Azure Key Vault használatával szabályozza és kezeli a lemeztitkosítási kulcsokat és titkos kulcsokat. A kulcstartókkal kapcsolatos további információkért tekintse meg az Azure Key Vault használatának első lépéseit és a kulcstartó biztonságossá tételét ismertető témakört.

Az Azure Disk Encryption és a Microsoft Entra ID (korábbi kiadás) használatával használható kulcstartó létrehozása és konfigurálása három lépésből áll:

  1. Kulcstartó létrehozása.
  2. Microsoft Entra-alkalmazás és szolgáltatásnév beállítása.
  3. Állítsa be a Key Vault hozzáférési szabályzatát a Microsoft Entra alkalmazáshoz.
  4. A kulcstartó speciális hozzáférési szabályzatainak beállítása.

Szükség esetén kulcstitkosítási kulcsot (KEK) is létrehozhat vagy importálhat.

Az eszközök telepítésével és az Azure-hoz való csatlakozással kapcsolatos lépésekről az Azure Disk Encryption kulcstartójának létrehozásáról és konfigurálásáról szóló cikkből tájékozódhat.

Feljegyzés

A cikkben szereplő lépések automatizáltak az Azure Disk Encryption előfeltételeinek cli-szkriptjében és az Azure Disk Encryption előfeltételeiben a PowerShell-szkriptben.

Kulcstartó létrehozása

Az Azure Disk Encryption integrálva van az Azure Key Vaulttal, így szabályozhatja és kezelheti a kulcstartó-előfizetés lemeztitkosítási kulcsait és titkos kulcsait. Létrehozhat egy kulcstartót, vagy használhat egy meglévőt az Azure Disk Encryptionhez. A kulcstartókkal kapcsolatos további információkért tekintse meg az Azure Key Vault használatának első lépéseit és a kulcstartó biztonságossá tételét ismertető témakört. Kulcstartó létrehozásához resource Manager-sablont, Azure PowerShellt vagy Azure CLI-t használhat.

Figyelmeztetés

Annak érdekében, hogy a titkosítási titkos kódok ne léphessék át a regionális határokat, az Azure Disk Encryptionnek a Key Vaultnak és a virtuális gépeknek ugyanabban a régióban kell lenniük. Hozzon létre és használjon egy Key Vaultot, amely ugyanabban a régióban található, mint a titkosítandó virtuális gép.

Kulcstartó létrehozása a PowerShell-lel

A New-AzKeyVault parancsmaggal kulcstartót hozhat létre az Azure PowerShell használatával. További parancsmagok a Key Vaulthoz: Az.KeyVault.

  1. Szükség esetén hozzon létre egy új erőforráscsoportot a New-AzResourceGroup használatával. Az adatközpontok helyeinek listázásához használja a Get-AzLocation parancsot.

    # Get-AzLocation
    New-AzResourceGroup –Name 'MyKeyVaultResourceGroup' –Location 'East US'
    
  2. Új kulcstartó létrehozása a New-AzKeyVault használatával

    New-AzKeyVault -VaultName 'MySecureVault' -ResourceGroupName 'MyKeyVaultResourceGroup' -Location 'East US'
    
  3. Jegyezze fel a tároló nevét, az erőforráscsoport nevét, az erőforrás-azonosítót, a tároló URI-ját és a lemezek titkosításakor később visszaadott objektumazonosítót .

Kulcstartó létrehozása az Azure CLI-vel

A key vaultot az az keyvault parancsokkal kezelheti az Azure CLI-vel. Kulcstartó létrehozásához használja az az keyvault create parancsot.

  1. Szükség esetén hozzon létre egy új erőforráscsoportot az az group create használatával. Helyek listázásához használja az az account list-locations

    # To list locations: az account list-locations --output table
    az group create -n "MyKeyVaultResourceGroup" -l "East US"
    
  2. Hozzon létre egy új kulcstartót az keyvault create használatával.

    az keyvault create --name "MySecureVault" --resource-group "MyKeyVaultResourceGroup" --location "East US"
    
  3. Jegyezze fel a tároló nevét (nevét), az erőforráscsoport nevét, az erőforrás-azonosítót (azonosítót), a tároló URI-ját és a későbbi használatra visszaadott objektumazonosítót.

Kulcstartó létrehozása Resource Manager-sablonnal

Kulcstartót a Resource Manager-sablonnal hozhat létre.

  1. Az Azure rövid útmutatósablonján válassza az Üzembe helyezés az Azure-ban lehetőséget.
  2. Válassza ki az előfizetést, az erőforráscsoportot, az erőforráscsoport helyét, a Key Vault nevét, az objektumazonosítót, a jogi feltételeket és a szerződést, majd válassza a Vásárlás lehetőséget.

Microsoft Entra-alkalmazás és szolgáltatásnév beállítása

Ha engedélyeznie kell a titkosítást egy futó azure-beli virtuális gépen, az Azure Disk Encryption létrehozza és beírja a titkosítási kulcsokat a kulcstartóba. A kulcstartóban lévő titkosítási kulcsok kezeléséhez Microsoft Entra-hitelesítés szükséges. Ehhez hozzon létre egy Microsoft Entra-alkalmazást. Hitelesítési célokra használhat titkos ügyfélalapú hitelesítést vagy ügyféltanúsítvány-alapú Microsoft Entra-hitelesítést.

Microsoft Entra-alkalmazás és szolgáltatásnév beállítása az Azure PowerShell-lel

Az alábbi parancsok végrehajtásához szerezze be és használja az Azure PowerShell-modult.

  1. Microsoft Entra-alkalmazás létrehozásához használja a New-AzADApplication PowerShell-parancsmagot. A MyApplicationHomePage és a MyApplicationUri tetszőleges érték lehet.

    $aadClientSecret = "My AAD client secret"
    $aadClientSecretSec = ConvertTo-SecureString -String $aadClientSecret -AsPlainText -Force
    $azureAdApplication = New-AzADApplication -DisplayName "My Application Display Name" -HomePage "https://MyApplicationHomePage" -IdentifierUris "https://MyApplicationUri" -Password $aadClientSecretSec
    $servicePrincipal = New-AzADServicePrincipal –ApplicationId $azureAdApplication.ApplicationId -Role Contributor
    
  2. A $azureAdApplication.ApplicationId a Microsoft Entra ClientID, a $aadClientSecret pedig az az ügyfélkulcs, amelyet később az Azure Disk Encryption engedélyezéséhez fog használni. Széf a Microsoft Entra ügyféltitkának megfelelő védelme. A futtatás $azureAdApplication.ApplicationId megjeleníti az ApplicationID azonosítót.

Microsoft Entra-alkalmazás és szolgáltatásnév beállítása az Azure CLI-vel

Az Azure CLI-vel az az ad sp parancsokkal kezelheti szolgáltatásneveit. További információ: Azure-szolgáltatásnév létrehozása.

  1. Hozzon létre egy új szolgáltatásnevet.

    az ad sp create-for-rbac --name "ServicePrincipalName" --password "My-AAD-client-secret" --role Contributor --scopes /subscriptions/<subscription_id>
    
  2. A visszaadott appId a Más parancsokban használt Microsoft Entra ClientID. Az az keyvault set-policy-hez használt egyszerű szolgáltatásnév is. A jelszó az az ügyfélkulcs, amelyet később az Azure Disk Encryption engedélyezéséhez kell használnia. Széf a Microsoft Entra ügyféltitkának megfelelő védelme.

Microsoft Entra-alkalmazás és szolgáltatásnév beállítása az Azure Portalon

A Használati portál lépéseit követve hozzon létre egy Microsoft Entra-alkalmazást és -szolgáltatásnevet, amely hozzáfér az erőforrások cikkéhez egy Microsoft Entra-alkalmazás létrehozásához. Az alábbiakban felsorolt minden lépés közvetlenül a cikk szakaszához viszi a befejezéshez.

  1. A szükséges engedélyek ellenőrzése
  2. Microsoft Entra-alkalmazás létrehozása
    • Az alkalmazás létrehozásakor bármilyen nevet és bejelentkezési URL-címet használhat.
  3. Kérje le az alkalmazásazonosítót és a hitelesítési kulcsot.
    • A hitelesítési kulcs az ügyfél titkos kódja, és a Set-AzVMDiskEncryptionExtension AadClientSecretjaként használatos.
      • A hitelesítési kulcsot az alkalmazás hitelesítő adatként használja a Microsoft Entra ID-ba való bejelentkezéshez. Az Azure Portalon ezt a titkos kulcsot kulcsoknak nevezzük, de nincs kapcsolata a kulcstartókkal. A titkos kulcs megfelelő védelme.
    • Az alkalmazásazonosítót később a Set-AzVMDiskEncryptionExtension AadClientId azonosítójaként, a Set-AzKeyVaultAccessPolicy ServicePrincipalName azonosítójaként fogja használni.

A Key Vault hozzáférési szabályzatának beállítása a Microsoft Entra alkalmazáshoz

Titkosítási titkos kulcsok adott Key Vaultba való írásához az Azure Disk Encryptionnek szüksége van a Microsoft Entra alkalmazás ügyfél-azonosítójára és ügyféltitkára, amely rendelkezik a titkos kulcsok Key Vaultba való írásához szükséges engedélyekkel.

Feljegyzés

Az Azure Disk Encryptionhez a következő hozzáférési szabályzatokat kell konfigurálnia a Microsoft Entra-ügyfélalkalmazáshoz: WrapKey és Az engedélyek beállítása .

A Key Vault hozzáférési szabályzatának beállítása a Microsoft Entra alkalmazáshoz az Azure PowerShell használatával

A Microsoft Entra-alkalmazásnak jogosultságra van szüksége a tároló kulcsainak vagy titkos kulcsainak eléréséhez. A Set-AzKeyVaultAccessPolicy parancsmaggal engedélyeket adhat az alkalmazásnak a –ServicePrincipalName paraméterértékként létrehozott ügyfélazonosítóval (amely az alkalmazás regisztrálásakor jött létre). További információért tekintse meg az Azure Key Vault – Lépésről lépésre című blogbejegyzést.

  1. Állítsa be az AD-alkalmazás kulcstartó-hozzáférési szabályzatát a PowerShell-lel.

    $keyVaultName = 'MySecureVault'
    $aadClientID = 'MyAadAppClientID'
    $KVRGname = 'MyKeyVaultResourceGroup'
    Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ServicePrincipalName $aadClientID -PermissionsToKeys 'WrapKey' -PermissionsToSecrets 'Set' -ResourceGroupName $KVRGname
    

A Key Vault hozzáférési szabályzatának beállítása a Microsoft Entra alkalmazáshoz az Azure CLI-vel

A hozzáférési szabályzat beállításához használja az az keyvault set-policyt . További információ: Key Vault kezelése a CLI 2.0 használatával.

Adjon hozzáférést az Azure CLI-vel létrehozott szolgáltatásnévnek a titkos kulcsok lekéréséhez és a kulcsok körbefuttatásához a következő paranccsal:

az keyvault set-policy --name "MySecureVault" --spn "<spn created with CLI/the Azure AD ClientID>" --key-permissions wrapKey --secret-permissions set

A Key Vault hozzáférési szabályzatának beállítása a Microsoft Entra alkalmazáshoz a portálon

  1. Nyissa meg az erőforráscsoportot a kulcstartóval.
  2. Válassza ki a kulcstartót, nyissa meg az Access-szabályzatokat, majd válassza az Új hozzáadása lehetőséget.
  3. Az Egyszerű kiválasztása csoportban keresse meg a létrehozott Microsoft Entra-alkalmazást, és válassza ki.
  4. Kulcsengedélyek esetén ellenőrizze a Titkosítási műveletek területen a Wrap Key (Tördelés) elemet.
  5. Titkos kódokra vonatkozó engedélyek esetén jelölje be a Beállítás jelölőnégyzetet a Titkos kódok kezelése műveletek területen.
  6. A hozzáférési szabályzat mentéséhez kattintson az OK gombra .

Azure Key Vault cryptographic operations - Wrap Key

Azure Key Vault Secret permissions - Set

A kulcstartó speciális hozzáférési szabályzatainak beállítása

Az Azure-platformnak hozzá kell férnie a kulcstartó titkosítási kulcsaihoz vagy titkos kulcsaihoz, hogy elérhetővé tegye őket a virtuális gép számára a kötetek indításához és visszafejtéséhez. Sikertelen lesz a lemeztitkosítás engedélyezése a kulcstartón vagy az üzemelő példányokon.

A Key Vault speciális hozzáférési szabályzatainak beállítása az Azure PowerShell-lel

A Kulcstartó PowerShell-parancsmagja , a Set-AzKeyVaultAccessPolicy használatával engedélyezheti a lemeztitkosítást a kulcstartóhoz.

  • A Key Vault engedélyezése lemeztitkosításhoz: Az Azure Disk titkosításához engedélyezve van az EnabledForDiskEncryption.

    Set-AzKeyVaultAccessPolicy -VaultName 'MySecureVault' -ResourceGroupName 'MyKeyVaultResourceGroup' -EnabledForDiskEncryption
    
  • Szükség esetén engedélyezze a Key Vaultot az üzembe helyezéshez: Engedélyezi a Microsoftot. Számítási erőforrás-szolgáltató, amely titkos kulcsokat kér le ebből a kulcstartóból, amikor erre a kulcstartóra hivatkozik az erőforrás létrehozásakor, például virtuális gép létrehozásakor.

     Set-AzKeyVaultAccessPolicy -VaultName 'MySecureVault' -ResourceGroupName 'MyKeyVaultResourceGroup' -EnabledForDeployment
    
  • Szükség esetén engedélyezze a Key Vaultot a sablon üzembe helyezéséhez: Lehetővé teszi, hogy az Azure Resource Manager titkos kulcsokat szerezzen be ebből a kulcstartóból, amikor a kulcstartóra hivatkozik egy sablontelepítés.

    Set-AzKeyVaultAccessPolicy -VaultName 'MySecureVault' -ResourceGroupName 'MyKeyVaultResourceGroup' -EnabledForTemplateDeployment
    

A Key Vault speciális hozzáférési szabályzatainak beállítása az Azure CLI használatával

Az az keyvault update használatával engedélyezze a lemeztitkosítást a kulcstartóhoz.

  • A Key Vault engedélyezése lemeztitkosításhoz: Engedélyezve van a lemeztitkosítás.

    az keyvault update --name "MySecureVault" --resource-group "MyKeyVaultResourceGroup" --enabled-for-disk-encryption "true"
    
  • Szükség esetén engedélyezze a Key Vault üzembe helyezését: Engedélyezi a virtuális gépek számára, hogy titkos kódként tárolt tanúsítványokat kérjenek le a tárolóból.

    az keyvault update --name "MySecureVault" --resource-group "MyKeyVaultResourceGroup" --enabled-for-deployment "true"
    
  • Szükség esetén engedélyezze a Key Vaultot a sablon üzembe helyezéséhez: Engedélyezze a Resource Manager számára a titkos kulcsok lekérését a tárolóból.

    az keyvault update --name "MySecureVault" --resource-group "MyKeyVaultResourceGroup" --enabled-for-template-deployment "true"
    

A Key Vault speciális hozzáférési szabályzatainak beállítása az Azure Portalon

  1. Válassza ki a kulcsvaultot, lépjen a Hozzáférési szabályzatok elemre, és kattintson ide a speciális hozzáférési szabályzatok megjelenítéséhez.
  2. Jelölje be az Azure Disk Encryption hozzáférésének engedélyezése kötettitkosításhoz feliratú jelölőnégyzetet.
  3. Válassza az Azure-beli virtuális gépekhez való hozzáférés engedélyezése üzembe helyezéshez és/vagy az Azure Resource Managerhez való hozzáférés engedélyezése sablontelepítéshez, ha szükséges.
  4. Válassza a Mentés lehetőséget.

Azure key vault advanced access policies

Kulcstitkosítási kulcs beállítása (nem kötelező)

Ha kulcstitkosítási kulcsot (KEK) szeretne használni a titkosítási kulcsok további biztonsági rétegéhez, adjon hozzá egy KEK-t a kulcstartóhoz. Az Add-AzKeyVaultKey parancsmaggal hozzon létre egy kulcstitkosítási kulcsot a kulcstartóban. A helyszíni kulcskezelési HSM-ből is importálhat KEK-t. További információt a Key Vault dokumentációjában talál. Kulcstitkosítási kulcs megadásakor az Azure Disk Encryption ezzel a kulccsal csomagolja be a titkosítási titkos kulcsokat, mielőtt a Key Vaultba ír.

Kulcstitkosítási kulcs beállítása az Azure PowerShell-lel

A PowerShell-szkript használata előtt ismernie kell az Azure Disk Encryption előfeltételeit a szkript lépéseinek megértéséhez. Előfordulhat, hogy a mintaszkriptnek módosítania kell a környezetét. Ez a szkript létrehozza az Összes Azure Disk Encryption-előfeltételt, és titkosít egy meglévő IaaS virtuális gépet, és kulcstitkosítási kulccsal burkolja a lemeztitkosítási kulcsot.

# Step 1: Create a new resource group and key vault in the same location.
	 # Fill in 'MyLocation', 'MyKeyVaultResourceGroup', and 'MySecureVault' with your values.
	 # Use Get-AzLocation to get available locations and use the DisplayName.
	 # To use an existing resource group, comment out the line for New-AzResourceGroup

    $Loc = 'MyLocation';
    $KVRGname = 'MyKeyVaultResourceGroup';
    $KeyVaultName = 'MySecureVault';
    New-AzResourceGroup –Name  $KVRGname –Location $Loc;
    New-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname -Location $Loc;
    $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName  $KVRGname;
    $KeyVaultResourceId = (Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName  $KVRGname).ResourceId;
    $diskEncryptionKeyVaultUrl = (Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName  $KVRGname).VaultUri;

# Step 2: Create the AD application and service principal.
	 # Fill in 'MyAADClientSecret', "<My Application Display Name>", "<https://MyApplicationHomePage>", and "<https://MyApplicationUri>" with your values.
	 # MyApplicationHomePage and the MyApplicationUri can be any values you wish.

	 $aadClientSecret =  'MyAADClientSecret';
    $aadClientSecretSec = ConvertTo-SecureString -String $aadClientSecret -AsPlainText -Force;
    $azureAdApplication = New-AzADApplication -DisplayName "<My Application Display Name>" -HomePage "<https://MyApplicationHomePage>" -IdentifierUris "<https://MyApplicationUri>" -Password $aadClientSecretSec
    $servicePrincipal = New-AzADServicePrincipal –ApplicationId $azureAdApplication.ApplicationId -Role Contributor;
    $aadClientID = $azureAdApplication.ApplicationId;

#Step 3: Enable the vault for disk encryption and set the access policy for the Microsoft Entra application.

	 Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDiskEncryption;
    Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ServicePrincipalName $aadClientID -PermissionsToKeys 'WrapKey' -PermissionsToSecrets 'Set' -ResourceGroupName  $KVRGname;

#Step 4: Create a new key in the key vault with the Add-AzKeyVaultKey cmdlet.
	 # Fill in 'MyKeyEncryptionKey' with your value.

	 $keyEncryptionKeyName = 'MyKeyEncryptionKey';
    Add-AzKeyVaultKey -VaultName $KeyVaultName -Name $keyEncryptionKeyName -Destination 'Software';
    $keyEncryptionKeyUrl = (Get-AzKeyVaultKey -VaultName $KeyVaultName -Name $keyEncryptionKeyName).Key.kid;

#Step 5: Encrypt the disks of an existing IaaS VM
	 # Fill in 'MySecureVM' and 'MyVirtualMachineResourceGroup' with your values.

	 $VMName = 'MySecureVM';
     $VMRGName = 'MyVirtualMachineResourceGroup';
    Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId;

Tanúsítványalapú hitelesítés (nem kötelező)

Ha tanúsítványhitelesítést szeretne használni, feltölthet egyet a kulcstartóba, és üzembe helyezheti az ügyfélen. A PowerShell-szkript használata előtt ismernie kell az Azure Disk Encryption előfeltételeit a szkript lépéseinek megértéséhez. Előfordulhat, hogy a mintaszkriptnek módosítania kell a környezetét.


# Fill in "MyKeyVaultResourceGroup", "MySecureVault", and 'MyLocation' ('My location' only if needed)

  $KVRGname = 'MyKeyVaultResourceGroup'
  $KeyVaultName= 'MySecureVault'

  # Create a key vault and set enabledForDiskEncryption property on it.
  # Comment out the next three lines if you already have an existing key vault enabled for encryption. No need to set 'My location' in this case.

  $Loc = 'MyLocation'
  New-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname -Location $Loc
  Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDiskEncryption

  #Setting some variables with the key vault information
  $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname
  $DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
  $KeyVaultResourceId = $KeyVault.ResourceId

  # Create the Microsoft Entra application and associate the certificate with it.
  # Fill in "C:\certificates\mycert.pfx", "Password", "<My Application Display Name>", "<https://MyApplicationHomePage>", and "<https://MyApplicationUri>" with your values.
  # MyApplicationHomePage and the MyApplicationUri can be any values you wish

  $CertPath = "C:\certificates\mycert.pfx"
  $CertPassword = "Password"
  $Cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($CertPath, $CertPassword)
  $CertValue = [System.Convert]::ToBase64String($cert.GetRawCertData())

  $AzureAdApplication = New-AzADApplication -DisplayName "<My Application Display Name>" -HomePage "<https://MyApplicationHomePage>" -IdentifierUris "<https://MyApplicationUri>" -CertValue $CertValue
  $ServicePrincipal = New-AzADServicePrincipal -ApplicationId $AzureAdApplication.ApplicationId -Role Contributor

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

  Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ServicePrincipalName $aadClientID -PermissionsToKeys 'WrapKey' -PermissionsToSecrets 'Set' -ResourceGroupName $KVRGname

  # Upload the pfx file to the key vault.
  # Fill in "MyAADCert".

  $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)

  #Set the secret and set the key vault policy for -EnabledForDeployment

  $Secret = ConvertTo-SecureString -String $JSONEncoded -AsPlainText -Force
  Set-AzKeyVaultSecret -VaultName $KeyVaultName -Name $KeyVaultSecretName -SecretValue $Secret
  Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDeployment

  # Deploy the certificate to the VM
  # Fill in 'MySecureVM' and 'MyVirtualMachineResourceGroup' with your values.

  $VMName = 'MySecureVM'
  $VMRGName = 'MyVirtualMachineResourceGroup'
  $CertUrl = (Get-AzKeyVaultSecret -VaultName $KeyVaultName -Name $KeyVaultSecretName).Id
  $SourceVaultId = (Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGName).ResourceId
  $VM = Get-AzVM -ResourceGroupName $VMRGName -Name $VMName
  $VM = Add-AzVMSecret -VM $VM -SourceVaultId $SourceVaultId -CertificateStore "My" -CertificateUrl $CertUrl
  Update-AzVM -VM $VM -ResourceGroupName $VMRGName

  #Enable encryption on the VM using Microsoft Entra client ID and the client certificate thumbprint

  Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $VMName -AadClientID $AADClientID -AadClientCertThumbprint $AADClientCertThumbprint -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId

Tanúsítványalapú hitelesítés és KEK (nem kötelező)

Ha tanúsítványhitelesítést szeretne használni, és a titkosítási kulcsot egy KEK-vel szeretné becsomagolni, az alábbi szkriptet használhatja példaként. A PowerShell-szkript használata előtt ismernie kell az Összes korábbi Azure Disk Encryption-előfeltételt a szkript lépéseinek megértéséhez. Előfordulhat, hogy a mintaszkriptnek módosítania kell a környezetét.

Fontos

A Microsoft Entra tanúsítványalapú hitelesítés jelenleg nem támogatott Linux rendszerű virtuális gépeken.

# Fill in 'MyKeyVaultResourceGroup', 'MySecureVault', and 'MyLocation' (if needed)

   $KVRGname = 'MyKeyVaultResourceGroup'
   $KeyVaultName= 'MySecureVault'

   # Create a key vault and set enabledForDiskEncryption property on it.
   # Comment out the next three lines if you already have an existing key vault enabled for encryption.

   $Loc = 'MyLocation'
   New-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname -Location $Loc
   Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDiskEncryption

   # Create the Azure AD application and associate the certificate with it.
   # Fill in "C:\certificates\mycert.pfx", "Password", "<My Application Display Name>", "<https://MyApplicationHomePage>", and "<https://MyApplicationUri>" with your values.
   # MyApplicationHomePage and the MyApplicationUri can be any values you wish

   $CertPath = "C:\certificates\mycert.pfx"
   $CertPassword = "Password"
   $Cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($CertPath, $CertPassword)
   $CertValue = [System.Convert]::ToBase64String($cert.GetRawCertData())

   $AzureAdApplication = New-AzADApplication -DisplayName "<My Application Display Name>" -HomePage "<https://MyApplicationHomePage>" -IdentifierUris "<https://MyApplicationUri>" -CertValue $CertValue
   $ServicePrincipal = New-AzADServicePrincipal -ApplicationId $AzureAdApplication.ApplicationId -Role Contributor

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

   ## Give access for setting secrets and wraping keys
   Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ServicePrincipalName $aadClientID -PermissionsToKeys 'WrapKey' -PermissionsToSecrets 'Set' -ResourceGroupName $KVRGname

   # Upload the pfx file to the key vault.
   # Fill in "MyAADCert".

   $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)

   #Set the secret and set the key vault policy for deployment

   $Secret = ConvertTo-SecureString -String $JSONEncoded -AsPlainText -Force
   Set-AzKeyVaultSecret -VaultName $KeyVaultName -Name $KeyVaultSecretName -SecretValue $Secret
   Set-AzKeyVaultAccessPolicy -VaultName $KeyVaultName -ResourceGroupName $KVRGname -EnabledForDeployment

   #Setting some variables with the key vault information and generating a KEK
   # FIll in 'KEKName'

   $KEKName ='KEKName'
   $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname
   $DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
   $KeyVaultResourceId = $KeyVault.ResourceId
   $KEK = Add-AzKeyVaultKey -VaultName $KeyVaultName -Name $KEKName -Destination "Software"
   $KeyEncryptionKeyUrl = $KEK.Key.kid



   # Deploy the certificate to the VM
   # Fill in 'MySecureVM' and 'MyVirtualMachineResourceGroup' with your values.

   $VMName = 'MySecureVM';
   $VMRGName = 'MyVirtualMachineResourceGroup';
   $CertUrl = (Get-AzKeyVaultSecret -VaultName $KeyVaultName -Name $KeyVaultSecretName).Id
   $SourceVaultId = (Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGName).ResourceId
   $VM = Get-AzVM -ResourceGroupName $VMRGName -Name $VMName
   $VM = Add-AzVMSecret -VM $VM -SourceVaultId $SourceVaultId -CertificateStore "My" -CertificateUrl $CertUrl
   Update-AzVM -VM $VM -ResourceGroupName $VMRGName

   #Enable encryption on the VM using Azure AD client ID and the client certificate thumbprint

   Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $VMName -AadClientID $AADClientID -AadClientCertThumbprint $AADClientCertThumbprint -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId

Következő lépések

Az Azure Disk Encryption engedélyezése Microsoft Entra-azonosítóval Linux rendszerű virtuális gépeken (korábbi kiadás)