Condividi tramite


Abilitare la crittografia del disco per i nodi del cluster gestito di Service Fabric

I cluster gestiti di Service Fabric supportano due opzioni di crittografia dei dischi per proteggere i dati per soddisfare gli impegni di sicurezza e conformità dell'organizzazione. L'opzione consigliata è Crittografia nell'host, ma supporta anche Crittografia dischi di Azure. Esaminare le opzioni di crittografia del disco e assicurarsi che l'opzione selezionata soddisfi le proprie esigenze.

Abilitare la crittografia a livello di host

Questo metodo di crittografia migliora la crittografia dischi di Azure supportando tutti i tipi di sistema operativo e le immagini, incluse immagini personalizzate, per le macchine virtuali crittografando i dati nel servizio archiviazione di Azure. Questo metodo non usa la CPU delle macchine virtuali né influisce sulle prestazioni delle macchine virtuali, consentendo ai carichi di lavoro di usare tutte le risorse SKU delle macchine virtuali disponibili.

Nota

Non è possibile abilitare nei tipi di nodi esistenti. È necessario effettuare il provisioning di un nuovo tipo di nodo e eseguire la migrazione del carico di lavoro.

Nota

Centro sicurezza di Azure stato di crittografia del disco verrà visualizzato come non integro in questo momento quando si usa Crittografia all'host

Seguire questa procedura e fare riferimento a questo modello di esempio per distribuire un nuovo cluster gestito di Service Fabric con crittografia host abilitata.

  1. Esaminare le restrizioni seguenti per convalidare i requisiti.

  2. Configurare i prerequisiti necessari prima della distribuzione del cluster.

  3. È necessario configurare la enableEncryptionAtHost proprietà nel modello di cluster gestito per ogni crittografia del disco del tipo di nodo. L'esempio è preconfigurato.

    • L'api api api del cluster gestito di Service Fabric deve essere 2021-11-01-preview o successiva.
         {
                "apiVersion": "[variables('sfApiVersion')]",
                "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
                "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
                "location": "[resourcegroup().location]",
                "properties": {
                    "enableEncryptionAtHost": true
                    ...
                }
        }
    
  4. Distribuire e verificare

    Distribuire il cluster gestito configurato con Crittografia host abilitato.

    $clusterName = "<clustername>" 
    $resourceGroupName = "<rg-name>"
    
    New-AzResourceGroupDeployment -Name $resourceGroupName -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json -Debug -Verbose 
    

    È possibile controllare lo stato della crittografia del disco nel set di scalabilità sottostante di un tipo di nodo usando il Get-AzVmss comando . Per prima cosa è necessario trovare il nome del gruppo di risorse di supporto del cluster gestito (contenente la rete virtuale sottostante, il servizio di bilanciamento del carico, l'IP pubblico, il gruppo di sicurezza di rete, i set di scalabilità e gli account di archiviazione). Assicurarsi di modificare NodeTypeNAme in qualsiasi nome del tipo di nodo del cluster che si desidera controllare (come specificato nel modello di distribuzione).

    $NodeTypeName = "NT2"
    $clustername = <clustername>
    $resourceGroupName = "<rg-name>"
    $supportResourceGroupName = "SFC_" + (Get-AzServiceFabricManagedCluster -ResourceGroupName $resourceGroupName -Name $clustername).ClusterId
    $VMSS = Get-AzVmss -ResourceGroupName $supportResourceGroupName -Name $NodeTypeName
    $VMSS.VirtualMachineProfile.SecurityProfile.EncryptionAtHost
    

    L'output restituito dovrebbe essere simile al seguente:

    $VMSS.VirtualMachineProfile.SecurityProfile.EncryptionAtHost
    True
    

Abilitare Crittografia dischi di Azure

Crittografia dischi di Azure fornisce la crittografia dei volumi per il sistema operativo e i dischi dati delle macchine virtuali di Azure usando la funzionalità DM-Crypt in Linux o la funzionalità BitLocker di Windows. Crittografia dischi di Azure si integra con Azure Key Vault per semplificare il controllo e la gestione delle chiavi e dei segreti di crittografia dei dischi.

In questa guida si apprenderà come abilitare la crittografia dei dischi nei nodi del cluster gestito di Service Fabric in Windows usando la funzionalità Crittografia dischi di Azure per i set di scalabilità di macchine virtuali tramite modelli di Azure Resource Manager (ARM).

  1. Eseguire la registrazione per Crittografia dischi di Azure

    L'anteprima della crittografia del disco per il set di scalabilità di macchine virtuali richiede la registrazione automatica. Eseguire il comando seguente:

    Register-AzProviderFeature -FeatureName "UnifiedDiskEncryption" -ProviderNamespace "Microsoft.Compute"
    

    Controllare lo stato della registrazione eseguendo:

    Get-AzProviderFeature -ProviderNamespace "Microsoft.Compute" -FeatureName "UnifiedDiskEncryption"
    

    Dopo aver modificato lo stato in Registrato, è possibile procedere.

  2. Effettuare il provisioning di un Key Vault per la crittografia del disco

    Crittografia dischi di Azure richiede Azure Key Vault per controllare e gestire segreti e chiavi di crittografia dei dischi. Il cluster gestito di Key Vault e Service Fabric deve risiedere nella stessa area e sottoscrizione di Azure. A condizione che questi requisiti siano soddisfatti, è possibile usare un Key Vault nuovo o esistente abilitandolo per la crittografia del disco.

  3. Creare Key Vault con crittografia disco abilitata

    Eseguire i comandi seguenti per creare una nuova Key Vault per la crittografia del disco. Assicurarsi che l'area per il Key Vault si trova nella stessa area del cluster.

    $resourceGroupName = "<rg-name>" 
    $keyvaultName = "<kv-name>" 
    
    New-AzResourceGroup -Name $resourceGroupName -Location eastus2 
    New-AzKeyVault -ResourceGroupName $resourceGroupName -Name $keyvaultName -Location eastus2 -EnabledForDiskEncryption
    

  1. Aggiornare Key Vault esistenti per abilitare la crittografia del disco

    Eseguire i comandi seguenti per abilitare la crittografia del disco per un Key Vault esistente.

    Set-AzKeyVaultAccessPolicy -ResourceGroupName $resourceGroupName -VaultName $keyvaultName -EnabledForDiskEncryption
    

Aggiornare i file di modello e parametri per la crittografia del disco

Il passaggio seguente illustra le modifiche del modello necessarie per abilitare la crittografia del disco in un cluster gestito esistente. In alternativa, è possibile distribuire un nuovo cluster gestito di Service Fabric con crittografia disco abilitato con questo modello: https://github.com/Azure-Samples/service-fabric-cluster-templates/tree/master/SF-Managed-Standard-SKU-1-NT-DiskEncryption

  1. Aggiungere i parametri seguenti al modello, sostituendo la propria sottoscrizione, il nome del gruppo di risorse e il nome dell'insieme di credenziali in keyVaultResourceId:

    "parameters": {
     "keyVaultResourceId": { 
       "type": "string", 
       "defaultValue": "/subscriptions/########-####-####-####-############/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<kv-name>", 
       "metadata": { 
       "description": "Full resource id of the Key Vault used for disk encryption." 
    } 
     },
     "volumeType": { 
      "type": "string", 
      "defaultValue": "All", 
      "metadata": { 
       "description": "Type of the volume OS or Data to perform encryption operation" 
    }
    }
    }, 
    
  2. Aggiungere quindi l'estensione AzureDiskEncryption della macchina virtuale ai tipi di nodi del cluster gestito nel modello:

    "properties": { 
    "vmExtensions": [ 
    { 
    "name": "AzureDiskEncryption", 
    "properties": { 
      "publisher": "Microsoft.Azure.Security", 
      "type": "AzureDiskEncryption", 
      "typeHandlerVersion": "2.2", 
      "autoUpgradeMinorVersion": true, 
      "settings": {      
            "EncryptionOperation": "EnableEncryption", 
            "KeyVaultURL": "[reference(parameters('keyVaultResourceId'),'2016-10-01').vaultUri]", 
         "KeyVaultResourceId": "[parameters('keyVaultResourceID')]",
         "VolumeType": "[parameters('volumeType')]" 
         } 
       } 
    } 
    ] 
    } 
    
  3. Infine, aggiornare il file dei parametri, sostituendo la propria sottoscrizione, il gruppo di risorse e il nome dell'insieme di credenziali delle chiavi in keyVaultResourceId:

    "parameters": { 
    ...
     "keyVaultResourceId": { 
      "value": "/subscriptions/########-####-####-####-############/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<kv-name>" 
     },   
     "volumeType": { 
      "value": "All" 
     }    
    } 
    
  4. Distribuire e verificare le modifiche

    Dopo aver pronto, distribuire le modifiche per abilitare la crittografia del disco nel cluster gestito.

    $clusterName = "<clustername>" 
    
    New-AzResourceGroupDeployment -Name $resourceGroupName -ResourceGroupName $resourceGroupName .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json -Debug -Verbose 
    

    È possibile controllare lo stato della crittografia del disco nel set di scalabilità sottostante di un tipo di nodo usando il Get-AzVmssDiskEncryption comando . Prima di tutto è necessario trovare il nome del gruppo di risorse di supporto del cluster gestito (contenente la rete virtuale sottostante, il servizio di bilanciamento del carico, l'IP pubblico, il gruppo di sicurezza di rete, i set di scalabilità e gli account di archiviazione). Assicurarsi di modificare VmssName in qualsiasi nome del tipo di nodo del cluster che si desidera controllare (come specificato nel modello di distribuzione).

    $VmssName = "NT1"
    $clustername = <clustername>
    $supportResourceGroupName = "SFC_" + (Get-AzServiceFabricManagedCluster -ResourceGroupName $resourceGroupName -Name $clustername).ClusterId
    Get-AzVmssDiskEncryption -ResourceGroupName $supportResourceGroupName -VMScaleSetName $VmssName
    

    L'output dovrebbe essere simile al seguente:

    ResourceGroupName            : SFC_########-####-####-####-############
    VmScaleSetName               : NT1
    EncryptionEnabled            : True
    EncryptionExtensionInstalled : True
    

Passaggi successivi

Esempio: cluster gestito di SKU Standard Service Fabric, un tipo di nodo con crittografia del disco abilitato

Crittografia dischi di Azure per macchine virtuali Windows

Crittografare i set di scalabilità di macchine virtuali con Azure Resource Manager