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 del disco per proteggere i dati in modo da 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 le Crittografia dischi di Azure supportando tutti i tipi di sistema operativo e le immagini, incluse le 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 di SKU delle macchine virtuali disponibili.

Nota

Non è possibile abilitare nei tipi di nodo esistenti. È necessario effettuare il provisioning di un nuovo tipo di nodo ed 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 la crittografia nell'host

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

  1. Esaminare le restrizioni seguenti per verificare che soddisfino i requisiti.

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

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

    • L'api delle risorse del cluster gestito di Service FabricVersion deve essere 2021-11-01-preview o versione 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 abilitata.

    $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 . 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'indirizzo IP pubblico, il gruppo di sicurezza di rete, i set di scalabilità e gli account di archiviazione). Assicurarsi di modificare NodeTypeNAme in base al nome del tipo di nodo del cluster che si vuole 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 del volume 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 del disco nei nodi del cluster gestito di Service Fabric in Windows usando la funzionalità di Crittografia dischi di Azure per i set di scalabilità di macchine virtuali tramite modelli di Azure Resource Manager (ARM).

  1. Registrarsi per Crittografia dischi di Azure

    L'anteprima della crittografia dei dischi per il set di scalabilità di macchine virtuali richiede la registrazione self-service. Esegui questo comando:

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

    Controllare lo stato della registrazione eseguendo:

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

    Dopo che lo stato diventa Registrato, si è pronti per procedere.

  2. Effettuare il provisioning di un insieme di credenziali delle chiavi per la crittografia del disco

    Crittografia dischi di Azure richiede Azure Key Vault per controllare e gestire segreti e chiavi di crittografia dei dischi. L'insieme di credenziali delle chiavi e il cluster gestito di Service Fabric devono trovarsi nella stessa area e nella stessa sottoscrizione di Azure. Se questi requisiti sono soddisfatti, è possibile usare un insieme di credenziali delle chiavi nuovo o esistente abilitandolo per la crittografia del disco.

  3. Creare Key Vault con la crittografia del disco abilitata

    Eseguire i comandi seguenti per creare un nuovo insieme di credenziali delle chiavi per la crittografia del disco. Assicurarsi che l'area dell'insieme di credenziali delle chiavi 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 l'insieme di credenziali delle chiavi esistente per abilitare la crittografia del disco

    Eseguire i comandi seguenti per abilitare la crittografia del disco per un insieme di credenziali delle chiavi 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 la crittografia del disco abilitata 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 macchina virtuale ai tipi di nodo 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. Aggiornare infine il file dei parametri, sostituendo la 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'indirizzo IP pubblico, il gruppo di sicurezza di rete, i set di scalabilità e gli account di archiviazione). Assicurarsi di modificare VmssName in base al nome del tipo di nodo del cluster che si vuole 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 Service Fabric SKU Standard, un tipo di nodo con crittografia dischi abilitata

Crittografia dischi di Azure per macchine virtuali Windows

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