Schijfversleuteling inschakelen voor Azure Service Fabric-clusterknooppunten in Linux

In deze zelfstudie leert u hoe u schijfversleuteling inschakelt op Azure Service Fabric-clusterknooppunten in Linux. U moet deze stappen volgen voor elk van de knooppunttypen en virtuele-machineschaalsets. Voor het versleutelen van de knooppunten gebruiken we de mogelijkheid Azure Disk Encryption op virtuele-machineschaalsets.

In de handleiding worden de volgende onderwerpen behandeld:

  • Belangrijke concepten waarmee u rekening moet houden bij het inschakelen van schijfversleuteling op virtuele-machineschaalsets van Het Service Fabric-cluster in Linux.
  • Stappen die moeten worden gevolgd voordat u schijfversleuteling inschakelt op Service Fabric-clusterknooppunten in Linux.
  • Stappen die moeten worden gevolgd om schijfversleuteling in te schakelen op Service Fabric-clusterknooppunten in Linux.

Notitie

U wordt aangeraden de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Vereisten

Zelfregistratie

De preview-versie van schijfversleuteling voor de virtuele-machineschaalset vereist zelfregistratie. Voer de volgende stappen uit:

  1. Voer de volgende opdracht uit:
    Register-AzProviderFeature -ProviderNamespace Microsoft.Compute -FeatureName "UnifiedDiskEncryption"
    
  2. Wacht ongeveer 10 minuten totdat de status Geregistreerd is. U kunt de status controleren door de volgende opdracht uit te voeren:
    Get-AzProviderFeature -ProviderNamespace "Microsoft.Compute" -FeatureName "UnifiedDiskEncryption"
    Register-AzResourceProvider -ProviderNamespace Microsoft.Compute
    

Azure Key Vault

  1. Maak een sleutelkluis in hetzelfde abonnement en dezelfde regio als de schaalset. Selecteer vervolgens het toegangsbeleid EnabledForDiskEncryption voor de sleutelkluis met behulp van de PowerShell-cmdlet. U kunt het beleid ook instellen met behulp van de gebruikersinterface van Key Vault in de Azure Portal met de volgende opdracht:

    Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -EnabledForDiskEncryption
    
  2. Installeer de nieuwste versie van de Azure CLI, die de nieuwe versleutelingsopdrachten bevat.

  3. Installeer de nieuwste versie van de Azure SDK vanaf Azure PowerShell release. Hieronder ziet u de Azure Disk Encryption-cmdlets voor virtuele-machineschaalsets om versleuteling in te schakelen (instellen), de versleutelingsstatus op te halen (ophalen) en versleuteling op het schaalsetexemplaren te verwijderen (uitschakelen).

Opdracht Versie Bron
Get-AzVmssDiskEncryptionStatus 1.0.0 of hoger Az.Compute
Get-AzVmssVMDiskEncryptionStatus 1.0.0 of hoger Az.Compute
Disable-AzVmssDiskEncryption 1.0.0 of hoger Az.Compute
Get-AzVmssDiskEncryption 1.0.0 of hoger Az.Compute
Get-AzVmssVMDiskEncryption 1.0.0 of hoger Az.Compute
Set-AzVmssDiskEncryptionExtension 1.0.0 of hoger Az.Compute

Ondersteunde scenario's voor schijfversleuteling

  • Versleuteling voor virtuele-machineschaalsets wordt alleen ondersteund voor schaalsets die zijn gemaakt met beheerde schijven. Het wordt niet ondersteund voor systeemeigen (of onbeheerde) schijfschaalsets.
  • Zowel versleuteling als versleuteling uitschakelen worden ondersteund voor besturingssysteem- en gegevensvolumes in virtuele-machineschaalsets in Linux.
  • Reimage- en upgradebewerkingen voor virtuele machines (VM's) voor virtuele-machineschaalsets worden niet ondersteund in de huidige preview.

Een nieuw cluster maken en schijfversleuteling inschakelen

Gebruik de volgende opdrachten om een cluster te maken en schijfversleuteling in te schakelen met behulp van een Azure Resource Manager-sjabloon en een zelfondertekend certificaat.

Aanmelden bij Azure

Meld u aan met de volgende opdrachten:


Login-AzAccount
Set-AzContext -SubscriptionId <guid>


azure login
az account set --subscription $subscriptionId

Gebruik de aangepaste sjabloon die u al hebt

Als u een aangepaste sjabloon moet maken, raden we u ten zeerste aan een van de sjablonen op de pagina Voorbeelden van azure Service Fabric-clustersjablonen te gebruiken .

Als u al een aangepaste sjabloon hebt, controleert u of alle drie de certificaatgerelateerde parameters in de sjabloon en het parameterbestand de volgende naam hebben. Zorg er ook voor dat de waarden als volgt null zijn:

   "certificateThumbprint": {
      "value": ""
    },
    "sourceVaultValue": {
      "value": ""
    },
    "certificateUrlValue": {
      "value": ""
    },

Omdat alleen gegevensschijfversleuteling wordt ondersteund voor virtuele-machineschaalsets in Linux, moet u een gegevensschijf toevoegen met behulp van een Resource Manager-sjabloon. Werk de sjabloon voor het inrichten van gegevensschijven als volgt bij:

   
   "storageProfile": { 
            "imageReference": { 
              "publisher": "[parameters('vmImagePublisher')]", 
              "offer": "[parameters('vmImageOffer')]", 
              "sku": "[parameters('vmImageSku')]", 
              "version": "[parameters('vmImageVersion')]" 
            }, 
            "osDisk": { 
              "caching": "ReadOnly", 
              "createOption": "FromImage", 
              "managedDisk": { 
                "storageAccountType": "[parameters('storageAccountType')]" 
              } 
           }, 
                "dataDisks": [ 
                { 
                    "diskSizeGB": 1023, 
                    "lun": 0, 
                    "createOption": "Empty" 
   
$resourceGroupLocation="westus"
$resourceGroupName="mycluster"
$CertSubjectName="mycluster.westus.cloudapp.azure.com"
$certPassword="Password!1" | ConvertTo-SecureString -AsPlainText -Force 
$certOutputFolder="c:\certificates"

$parameterFilePath="c:\templates\templateparam.json"
$templateFilePath="c:\templates\template.json"


New-AzServiceFabricCluster -ResourceGroupName $resourceGroupName -CertificateOutputFolder $certOutputFolder -CertificatePassword $certpassword -CertificateSubjectName $CertSubjectName -TemplateFile $templateFilePath -ParameterFile $parameterFilePath 

Hier volgt de equivalente CLI-opdracht. Wijzig de waarden in de declare-instructies in de juiste waarden. De CLI ondersteunt alle andere parameters die de voorgaande PowerShell-opdracht ondersteunt.

declare certPassword=""
declare resourceGroupLocation="westus"
declare resourceGroupName="mylinux"
declare certSubjectName="mylinuxsecure.westus.cloudapp.azure.com"
declare parameterFilePath="c:\mytemplates\linuxtemplateparm.json"
declare templateFilePath="c:\mytemplates\linuxtemplate.json"
declare certOutputFolder="c:\certificates"


az sf cluster create --resource-group $resourceGroupName --location $resourceGroupLocation  \
	--certificate-output-folder $certOutputFolder --certificate-password $certPassword  \
	--certificate-subject-name $certSubjectName \
    --template-file $templateFilePath --parameter-file $parametersFilePath

Een gegevensschijf koppelen aan een Linux-exemplaar

Voordat u doorgaat met versleuteling op een virtuele-machineschaalset, moet u ervoor zorgen dat de toegevoegde gegevensschijf correct is gekoppeld. Meld u aan bij de linux-cluster-VM en voer de opdracht LSBLK uit. In de uitvoer moet de toegevoegde gegevensschijf in de kolom Koppelpunt worden weergegeven.

Toepassing implementeren in een Service Fabric-cluster in Linux

Als u een toepassing in uw cluster wilt implementeren, volgt u de stappen en richtlijnen in Quickstart: Linux-containers implementeren in Service Fabric.

Schijfversleuteling inschakelen voor de virtuele-machineschaalsets die eerder zijn gemaakt

Voer de volgende opdrachten uit om schijfversleuteling in te schakelen voor de virtuele-machineschaalsets die u in de vorige stappen hebt gemaakt:

$VmssName = "nt1vm"
$vaultName = "mykeyvault"
$resourceGroupName = "mycluster"
$KeyVault = Get-AzKeyVault -VaultName $vaultName -ResourceGroupName $rgName
$DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
$KeyVaultResourceId = $KeyVault.ResourceId

Set-AzVmssDiskEncryptionExtension -ResourceGroupName $resourceGroupName -VMScaleSetName $VmssName -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -VolumeType All


az vmss encryption enable -g <resourceGroupName> -n <VMSS name> --disk-encryption-keyvault <KeyVaultResourceId>

Controleren of schijfversleuteling is ingeschakeld voor een virtuele-machineschaalset in Linux

Voer de volgende opdrachten uit om de status van een volledige virtuele-machineschaalset of een exemplaar in een schaalset op te halen. Daarnaast kunt u zich aanmelden bij de linux-cluster-VM en de LSBLK-opdracht uitvoeren. In de uitvoer moet de toegevoegde gegevensschijf in de kolom Koppelpunt worden weergegeven en in de kolom Type moet Crypt worden gelezen.


$VmssName = "nt1vm"
$resourceGroupName = "mycluster"
Get-AzVmssDiskEncryption -ResourceGroupName $resourceGroupName -VMScaleSetName $VmssName

Get-AzVmssVMDiskEncryption -ResourceGroupName $resourceGroupName -VMScaleSetName $VmssName -InstanceId "0"

az vmss encryption show -g <resourceGroupName> -n <VMSS name>

Schijfversleuteling uitschakelen voor een virtuele-machineschaalset in een Service Fabric-cluster

Schakel schijfversleuteling voor een virtuele-machineschaalset uit door de volgende opdrachten uit te voeren. Houd er rekening mee dat het uitschakelen van schijfversleuteling van toepassing is op de volledige virtuele-machineschaalset en niet op een afzonderlijk exemplaar.

$VmssName = "nt1vm"
$resourceGroupName = "mycluster"
Disable-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $VmssName

az vmss encryption disable -g <resourceGroupName> -n <VMSS name>

Volgende stappen

Op dit moment moet u een beveiligd cluster hebben en weten hoe u schijfversleuteling voor Service Fabric-clusterknooppunten en virtuele-machineschaalsets kunt in- en uitschakelen. Zie Disk Encryption for Windows (Schijfversleuteling voor Windows) voor soortgelijke richtlijnen voor Service Fabric-clusterknooppunten in Linux.