Ativar a encriptação de disco para nós de cluster geridos do Service Fabric

Os clusters geridos do Service Fabric suportam duas opções de encriptação de disco para ajudar a salvaguardar os seus dados para cumprir os compromissos de conformidade e segurança da sua organização. A opção recomendada é Encriptação no anfitrião, mas também suporta a Encriptação de Discos do Azure. Reveja as opções de encriptação de disco e certifique-se de que a opção selecionada satisfaz as suas necessidades.

Ativar a encriptação no anfitrião

Este método de encriptação melhora no Azure Disk Encryption ao suportar todos os tipos e imagens do SO, incluindo imagens personalizadas, para as suas VMs ao encriptar dados no serviço de Armazenamento do Azure. Este método não utiliza a CPU das VMs nem afeta o desempenho das VMs ao permitir que as cargas de trabalho utilizem todos os recursos de SKU de VMs disponíveis.

Nota

Não pode ativar em tipos de nó existentes. Tem de aprovisionar um novo tipo de nó e migrar a carga de trabalho.

Nota

Centro de Segurança do Azure estado de encriptação do disco será apresentado como Mau Estado de Funcionamento neste momento ao utilizar a Encriptação no Anfitrião

Siga estes passos e faça referência a este modelo de exemplo para implementar um novo cluster gerido do Service Fabric com a encriptação do anfitrião ativada.

  1. Reveja as seguintes restrições para validar que cumprem os seus requisitos.

  2. Configure os pré-requisitos necessários antes da implementação do cluster.

  3. É necessária a configuração da enableEncryptionAtHost propriedade no modelo de cluster gerido para cada encriptação de disco do tipo de nó. O exemplo está pré-configurado.

    • A apiVersion do recurso de cluster gerido do Service Fabric tem de ser 2021-11-01-preview ou posterior.
         {
                "apiVersion": "[variables('sfApiVersion')]",
                "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
                "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
                "location": "[resourcegroup().location]",
                "properties": {
                    "enableEncryptionAtHost": true
                    ...
                }
        }
    
  4. Implementar e verificar

    Implemente o cluster gerido configurado com a Encriptação de Anfitrião ativada.

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

    Pode verificar o estado da encriptação do disco no conjunto de dimensionamento subjacente de um tipo de nó com o Get-AzVmss comando . Primeiro, terá de encontrar o nome do grupo de recursos de suporte do cluster gerido (que contém a rede virtual subjacente, o balanceador de carga, o IP público, o NSG, os conjuntos de dimensionamento e as contas de armazenamento). Certifique-se de que modifica NodeTypeNAme o nome do tipo de nó de cluster que pretende verificar (conforme especificado no modelo de implementação).

    $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
    

    O resultado da devolução deve ser semelhante ao seguinte:

    $VMSS.VirtualMachineProfile.SecurityProfile.EncryptionAtHost
    True
    

Ativar o Azure Disk Encryption

O Azure Disk Encryption fornece encriptação de volume para o SO e discos de dados de máquinas virtuais (VMs) do Azure através da funcionalidade DM-Crypt no Linux ou na funcionalidade BitLocker do Windows. O ADE está integrado no Azure Key Vault para o ajudar a controlar e gerir as chaves e segredos de encriptação do disco.

Neste guia, irá aprender a ativar a encriptação de discos em nós de cluster geridos do Service Fabric no Windows com a capacidade de Encriptação de Discos do Azure para conjuntos de dimensionamento de máquinas virtuais através de modelos do Azure Resource Manager (ARM).

  1. Registar-se no Azure Disk Encryption

    A pré-visualização da encriptação do disco para o conjunto de dimensionamento de máquinas virtuais requer o auto-registo. Execute o seguinte comando:

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

    Verifique o estado do registo ao executar:

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

    Assim que o estado for alterado para Registado, estará pronto para continuar.

  2. Aprovisionar uma Key Vault para encriptação de disco

    O Azure Disk Encryption requer um Key Vault do Azure para controlar e gerir chaves e segredos de encriptação de discos. O Key Vault e o cluster gerido do Service Fabric têm de residir na mesma região e subscrição do Azure. Desde que estes requisitos sejam cumpridos, pode utilizar uma Key Vault nova ou existente ao ative-a para encriptação de disco.

  3. Criar Key Vault com a encriptação de disco ativada

    Execute os seguintes comandos para criar um novo Key Vault para encriptação de disco. Certifique-se de que a região do seu Key Vault está na mesma região que o cluster.

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

  1. Atualizar Key Vault existentes para ativar a encriptação de discos

    Execute os seguintes comandos para ativar a encriptação de disco para uma Key Vault existente.

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

Atualizar o modelo e os ficheiros de parâmetros para encriptação de disco

O passo seguinte irá guiá-lo através das alterações de modelo necessárias para ativar a encriptação do disco num cluster gerido existente. Em alternativa, pode implementar um novo cluster gerido do Service Fabric com a encriptação de disco ativada com este modelo: https://github.com/Azure-Samples/service-fabric-cluster-templates/tree/master/SF-Managed-Standard-SKU-1-NT-DiskEncryption

  1. Adicione os seguintes parâmetros ao modelo, substituindo a sua própria subscrição, o nome do grupo de recursos e o nome do cofre em 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. Em seguida, adicione a extensão da AzureDiskEncryption VM aos tipos de nó de cluster geridos no modelo:

    "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. Por fim, atualize o ficheiro de parâmetros, substituindo a sua própria subscrição, grupo de recursos e nome do cofre de chaves em keyVaultResourceId:

    "parameters": { 
    ...
     "keyVaultResourceId": { 
      "value": "/subscriptions/########-####-####-####-############/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<kv-name>" 
     },   
     "volumeType": { 
      "value": "All" 
     }    
    } 
    
  4. Implementar e verificar as alterações

    Assim que estiver pronto, implemente as alterações para ativar a encriptação do disco no cluster gerido.

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

    Pode verificar o estado da encriptação do disco no conjunto de dimensionamento subjacente de um tipo de nó com o Get-AzVmssDiskEncryption comando . Primeiro, terá de encontrar o nome do grupo de recursos de suporte do cluster gerido (que contém a rede virtual subjacente, o balanceador de carga, o IP público, o NSG, os conjuntos de dimensionamento e as contas de armazenamento). Certifique-se de que modifica VmssName o nome do tipo de nó de cluster que pretende verificar (conforme especificado no modelo de implementação).

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

    O resultado deverá ser semelhante ao seguinte:

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

Passos seguintes

Exemplo: Cluster gerido do Service Fabric do SKU Standard, um tipo de nó com encriptação de disco ativada

Azure Disk Encryption para VMs do Windows

Encriptar conjuntos de dimensionamento de máquinas virtuais com o Azure Resource Manager