Delen via


Versleutel het besturingssysteem en de gekoppelde gegevensschijven in een virtuele-machine-schaalset met de Azure CLI.

Belangrijk

Azure Disk Encryption voor virtuele machines en virtuele-machineschaalsets wordt op 15 september 2028 buiten gebruik gesteld. Nieuwe klanten moeten versleuteling op host gebruiken voor alle nieuwe VM's. Bestaande klanten moeten van plan zijn om huidige met ADE ingeschakelde VM's te migreren naar versleuteling op de host vóór de buitengebruikstelling om serviceonderbreking te voorkomen. Zie Migreren van Azure Disk Encryption naar versleuteling op de host.

De Azure CLI wordt gebruikt voor het maken en beheren van Azure-resources vanaf de command line of in scripts. In deze snelstart leert u hoe u de Azure CLI gebruikt om een Virtual Machine Scale Set te maken en te versleutelen. Zie Azure Disk Encryption voor virtuele-machineschaalsets voor meer informatie over het toepassen van Azure Disk Encryption op een virtuele-machineschaalset.

Vereiste voorwaarden

  • Voor dit artikel is versie 2.0.31 of hoger van de Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.

Een schaalset maken

Voordat u een schaalset kunt maken, maakt u een resourcegroep met az group create. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie eastus :

az group create --name myResourceGroup --location eastus

Maak nu een virtuele machineschaalset met az vmss create. In het volgende voorbeeld wordt een schaalset gemaakt met de naam myScaleSet die automatisch wordt bijgewerkt wanneer er wijzigingen worden toegepast en worden SSH-sleutels gegenereerd als deze niet bestaan in ~/.ssh/id_rsa. Er wordt een gegevensschijf van 32 Gb gekoppeld aan elk VM-exemplaar en de aangepaste scriptextensie van Azure wordt gebruikt om de gegevensschijven voor te bereiden met az vmss extension set:

Belangrijk

Zorg ervoor dat u een ondersteund besturingssysteem selecteert met ADE. Ondersteund besturingssysteem voor ADE.

# Create a scale set with attached data disk
az vmss create \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --orchestration-mode Flexible \
  --image <SKU Linux Image> \
  --admin-username azureuser \
  --generate-ssh-keys \
  --data-disk-sizes-gb 32

# Prepare the data disk for use with the Custom Script Extension
az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroup \
  --vmss-name myScaleSet \
  --settings '{"fileUris":["https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/prepare_vm_disks.sh"],"commandToExecute":"./prepare_vm_disks.sh"}'

Het duurt enkele minuten om alle schaalsetresources en VM's te maken en te configureren.

Een Azure-sleutelkluis maken die is ingeschakeld voor schijfversleuteling

Azure Key Vault kan sleutels, geheimen of wachtwoorden opslaan waarmee u ze veilig kunt implementeren in uw toepassingen en services. Cryptografische sleutels worden opgeslagen in Azure Key Vault met softwarebeveiliging, of u kunt uw sleutels importeren of genereren in HSM's (Hardware Security Modules) die zijn gecertificeerd volgens door FIPS 140 gevalideerde standaarden. Deze cryptografische sleutels worden gebruikt voor het versleutelen en ontsleutelen van virtuele schijven die zijn gekoppeld aan uw virtuele machine. U behoudt de controle over deze cryptografische sleutels en kunt het gebruik ervan controleren.

Definieer uw eigen unieke keyvault_name. Maak vervolgens een KeyVault met az keyvault create in hetzelfde abonnement en dezelfde regio als de schaalset, en configureer het toegangsbeleid --enabled-for-disk-encryption.

# Provide your own unique Key Vault name
keyvault_name=myuniquekeyvaultname

# Create Key Vault
az keyvault create --resource-group myResourceGroup --name $keyvault_name --enabled-for-disk-encryption

Een bestaande sleutelkluis gebruiken

Deze stap is alleen vereist als u een bestaande sleutelkluis hebt die u wilt gebruiken met schijfversleuteling. Sla deze stap over als u een sleutelkluis in de vorige sectie hebt gemaakt.

Definieer uw eigen unieke keyvault_name. Vervolgens hebt u uw KeyVault bijgewerkt met az keyvault update en stelt u het toegangsbeleid --enabled-for-disk-encryption in.

# Provide your own unique Key Vault name
keyvault_name=myuniquekeyvaultname

# Create Key Vault
az keyvault update --name $keyvault_name --enabled-for-disk-encryption

Versleuteling inschakelen

Opmerking

Als u virtuele machineschaalsets gebruikt in de flexibele orkestratiemodus, worden alleen nieuwe instanties versleuteld. Bestaande instanties in de schaalset moeten afzonderlijk worden versleuteld of verwijderd en door nieuwe vervangen.

Als u VM-exemplaren in een schaalset wilt versleutelen, haalt u eerst wat informatie op over de Key Vault-resource-id met az keyvault show. Deze variabelen worden gebruikt om vervolgens het versleutelingsproces te starten met az vmss encryption enable:

# Get the resource ID of the Key Vault
vaultResourceId=$(az keyvault show --resource-group myResourceGroup --name $keyvault_name --query id -o tsv)

# Enable encryption of the data disks in a scale set
az vmss encryption enable \
    --resource-group myResourceGroup \
    --name myScaleSet \
    --disk-encryption-keyvault $vaultResourceId \
    --volume-type DATA

Het kan een paar minuten duren voordat het versleutelingsproces is gestart.

Omdat het upgradebeleid voor de schaalset, die in een eerdere stap is gemaakt, is ingesteld op automatisch, starten de VM-exemplaren automatisch het versleutelingsproces. Start bij schaalsets waarop het upgradebeleid handmatig is ingesteld, het versleutelingsbeleid op de VM-instanties via az vmss update-instances.

Versleuteling inschakelen met KEK om de sleutel te verpakken

U kunt ook een Key Encryption Key gebruiken voor extra beveiliging bij het versleutelen van de Virtuele Machine Schaalset.

# Get the resource ID of the Key Vault
vaultResourceId=$(az keyvault show --resource-group myResourceGroup --name $keyvault_name --query id -o tsv)

# Enable encryption of the data disks in a scale set
az vmss encryption enable \
    --resource-group myResourceGroup \
    --name myScaleSet \
    --disk-encryption-keyvault $vaultResourceId \
    --key-encryption-key myKEK \
    --key-encryption-keyvault $vaultResourceId \
    --volume-type DATA

Opmerking

De syntaxis voor de waarde van de parameter disk-encryption-keyvault is de volledige id-tekenreeks:
/subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]

De syntaxis voor de waarde van de parameter key-encryption-key is de volledige URI voor de KEK, zoals in:
https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]

Versleutelingsvoortgang controleren

Als u de status van schijfversleuteling wilt controleren, gebruikt u az vmss encryption show:

az vmss encryption show --resource-group myResourceGroup --name myScaleSet

Wanneer VM-exemplaren zijn versleuteld, rapporteert de statuscode EncryptionState/encrypted, zoals wordt weergegeven in de volgende voorbeelduitvoer:

[
  {
    "disks": [
      {
        "encryptionSettings": null,
        "name": "myScaleSet_myScaleSet_0_disk2_3f39c2019b174218b98b3dfae3424e69",
        "statuses": [
          {
            "additionalProperties": {},
            "code": "EncryptionState/encrypted",
            "displayStatus": "Encryption is enabled on disk",
            "level": "Info",
            "message": null,
            "time": null
          }
        ]
      }
    ],
    "id": "/subscriptions/guid/resourceGroups/MYRESOURCEGROUP/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet/virtualMachines/0",
    "resourceGroup": "MYRESOURCEGROUP"
  }
]

Versleuteling uitschakelen

Als u geen versleutelde VM-exemplaren meer wilt gebruiken, kunt u de versleuteling uitschakelen met az vmss encryption disable als volgt:

az vmss encryption disable --resource-group myResourceGroup --name myScaleSet

Volgende stappen

  • In dit artikel hebt u de Azure CLI gebruikt om een schaalset voor virtuele machines te versleutelen. U kunt ook Azure PowerShell - of Azure Resource Manager-sjablonen gebruiken.
  • Als u Azure Disk Encryption wilt toepassen nadat een andere extensie is ingericht, kunt u extensievolgorde gebruiken.
  • Hier vindt u een end-to-end batchbestand voor gegevensschijfversleuteling voor Linux-schaalsetgegevens. In dit voorbeeld maakt u een resourcegroep, een Linux-schaalset, koppelt u een gegevensschijf van 5 GB en versleutelt u de Linux-schaalset.