Dela via


Aktivera diskkryptering för Azure Service Fabric-klusternoder i Linux

I den här självstudien får du lära dig hur du aktiverar diskkryptering på Azure Service Fabric-klusternoder i Linux. Du måste följa dessa steg för var och en av nodtyperna och vm-skalningsuppsättningar. För att kryptera noderna använder vi funktionen Azure Disk Encryption på VM-skalningsuppsättningar.

Guiden beskriver följande ämnen:

  • Viktiga begrepp att känna till när du aktiverar diskkryptering i Service Fabric-kluster vm-skalningsuppsättningar i Linux.
  • Steg som ska följas innan du aktiverar diskkryptering på Service Fabric-klusternoder i Linux.
  • Steg som ska följas för att aktivera diskkryptering på Service Fabric-klusternoder i Linux.

Kommentar

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Information om hur du kommer igång finns i Installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Förutsättningar

Självregistrering

Förhandsgranskningen av diskkryptering för vm-skalningsuppsättningen kräver självregistrering. Gör så här:

  1. Kör följande kommando:
    Register-AzProviderFeature -ProviderNamespace Microsoft.Compute -FeatureName "UnifiedDiskEncryption"
    
  2. Vänta cirka 10 minuter tills statusen har lästs Registrerad. Du kan kontrollera statusen genom att köra följande kommando:
    Get-AzProviderFeature -ProviderNamespace "Microsoft.Compute" -FeatureName "UnifiedDiskEncryption"
    Register-AzResourceProvider -ProviderNamespace Microsoft.Compute
    

Azure Key Vault

  1. Skapa ett nyckelvalv i samma prenumeration och region som skalningsuppsättningen. Välj sedan åtkomstprincipen EnabledForDiskEncryption i nyckelvalvet med hjälp av dess PowerShell-cmdlet. Du kan också ange principen med hjälp av Key Vault-användargränssnittet i Azure-portalen med följande kommando:

    Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -EnabledForDiskEncryption
    
  2. Installera den senaste versionen av Azure CLI, som har de nya krypteringskommandona.

  3. Installera den senaste versionen av Azure SDK från Azure PowerShell-versionen . Följande är cmdletarna för vm-skalningsuppsättningen azure diskkryptering för att aktivera (ange) kryptering, hämta (hämta) krypteringsstatus och ta bort (inaktivera) kryptering på skalningsuppsättningsinstansen.

Command Version Källa
Get-AzVmssDiskEncryptionStatus 1.0.0 eller senare Az.Compute
Get-AzVmssVMDiskEncryptionStatus 1.0.0 eller senare Az.Compute
Disable-AzVmssDiskEncryption 1.0.0 eller senare Az.Compute
Get-AzVmssDiskEncryption 1.0.0 eller senare Az.Compute
Get-AzVmssVMDiskEncryption 1.0.0 eller senare Az.Compute
Set-AzVmssDiskEncryptionExtension 1.0.0 eller senare Az.Compute

Scenarier som stöds för diskkryptering

  • Kryptering för vm-skalningsuppsättningar stöds endast för skalningsuppsättningar som skapats med hanterade diskar. Det stöds inte för interna (eller ohanterade) diskskalningsuppsättningar.
  • Både kryptering och inaktivera kryptering stöds för OS- och datavolymer i VM-skalningsuppsättningar i Linux.
  • Vm-återskapnings- och uppgraderingsåtgärder för vm-skalningsuppsättningar stöds inte i den aktuella förhandsversionen.

Skapa ett nytt kluster och aktivera diskkryptering

Använd följande kommandon för att skapa ett kluster och aktivera diskkryptering med hjälp av en Azure Resource Manager-mall och ett självsignerat certifikat.

Logga in på Azure

Logga in med följande kommandon:


Login-AzAccount
Set-AzContext -SubscriptionId <guid>


azure login
az account set --subscription $subscriptionId

Använd den anpassade mall som du redan har

Om du behöver skapa en anpassad mall rekommenderar vi starkt att du använder en av mallarna på sidan mallexempel för skapande av Azure Service Fabric-kluster.

Om du redan har en anpassad mall kontrollerar du att alla tre certifikatrelaterade parametrarna i mallen och parameterfilen namnges på följande sätt. Kontrollera också att värdena är null på följande sätt:

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

Eftersom endast datadiskkryptering stöds för vm-skalningsuppsättningar i Linux måste du lägga till en datadisk med hjälp av en Resource Manager-mall. Uppdatera mallen för datadisketablering på följande sätt:

   
   "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 

Här är motsvarande CLI-kommando. Ändra värdena i deklarera-uttrycken till lämpliga värden. CLI stöder alla andra parametrar som föregående PowerShell-kommando stöder.

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

Montera en datadisk på en Linux-instans

Innan du fortsätter med kryptering på en VM-skalningsuppsättning kontrollerar du att den tillagda datadisken är korrekt monterad. Logga in på den virtuella Linux-klusterdatorn och kör LSBLK-kommandot . Utdata ska visa att datadisken har lagts till i kolumnen Monteringspunkt .

Distribuera programmet till ett Service Fabric-kluster i Linux

Om du vill distribuera ett program till klustret följer du stegen och vägledningen i Snabbstart: Distribuera Linux-containrar till Service Fabric.

Aktivera diskkryptering för vm-skalningsuppsättningar som skapades tidigare

Om du vill aktivera diskkryptering för de vm-skalningsuppsättningar som du skapade genom föregående steg kör du följande kommandon:

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

Kontrollera om diskkryptering är aktiverat för en VM-skalningsuppsättning i Linux

Kör följande kommandon för att hämta status för en hel vm-skalningsuppsättning eller en instans i en skalningsuppsättning. Dessutom kan du logga in på den virtuella Linux-klusterdatorn och köra LSBLK-kommandot . Utdata ska visa den tillagda datadisken i kolumnen Monteringspunkt och kolumnen Typ ska läsa Crypt.


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

Inaktivera diskkryptering för en VM-skalningsuppsättning i ett Service Fabric-kluster

Inaktivera diskkryptering för en VM-skalningsuppsättning genom att köra följande kommandon. Observera att inaktivering av diskkryptering gäller för hela vm-skalningsuppsättningen och inte en enskild instans.

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

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

Nästa steg

Nu bör du ha ett säkert kluster och veta hur du aktiverar och inaktiverar diskkryptering för Service Fabric-klusternoder och VM-skalningsuppsättningar. Liknande vägledning om Service Fabric-klusternoder i Linux finns i Diskkryptering för Windows.