Habilitación del cifrado de disco para nodos de clústeres administrados de Service Fabric
Los clústeres administrados de Service Fabric admiten dos opciones de cifrado de disco para ayudar a proteger los datos con el fin de respetar los compromisos de cumplimiento y seguridad de la organización. La opción recomendada es el cifrado en el host, pero también se admite Azure Disk Encryption. Revise las opciones de cifrado de discos y asegúrese de que la opción seleccionada satisface sus necesidades.
Habilitación del cifrado en el host
Este método de cifrado mejora Azure Disk Encryption al admitir todos los tipos e imágenes del sistema operativo, incluidas las imágenes personalizadas, para las máquinas virtuales mediante el cifrado de datos en el servicio Azure Storage. Este método no usa la CPU de las máquinas virtuales ni afecta al rendimiento de las máquinas, lo que permite que las cargas de trabajo usen todos los recursos de SKU de máquinas virtuales disponibles.
Nota
No se puede habilitar en tipos de nodo existentes. Debe aprovisionar un nuevo tipo de nodo y migrar la carga de trabajo.
Nota
El estado de cifrado del disco en Azure Security Center se mostrará como Incorrecto en este momento al usar el cifrado en el host.
Siga estos pasos y consulte esta plantilla de ejemplo para implementar un nuevo clúster administrado de Service Fabric con el cifrado de host habilitado.
Revise las restricciones siguientes para validar que cumplen sus requisitos.
Configure los requisitos previos necesarios antes de la implementación del clúster.
Configure la propiedad
enableEncryptionAtHost
en la plantilla de clúster administrado para cada tipo de nodo que requiere cifrado de disco. El ejemplo está preconfigurado.- El valor de apiVersion del recurso de clúster administrado de Service Fabric debe ser 2021-11-01-preview o posterior.
{ "apiVersion": "[variables('sfApiVersion')]", "type": "Microsoft.ServiceFabric/managedclusters/nodetypes", "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]", "location": "[resourcegroup().location]", "properties": { "enableEncryptionAtHost": true ... } }
Implementación y comprobación
Implemente el clúster administrado configurado con el cifrado de host habilitado.
$clusterName = "<clustername>" $resourceGroupName = "<rg-name>" New-AzResourceGroupDeployment -Name $resourceGroupName -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json -Debug -Verbose
Puede comprobar el estado del cifrado de disco en el conjunto de escalado subyacente de un tipo de nodo mediante el comando
Get-AzVmss
. En primer lugar, debe buscar el nombre del grupo de recursos de apoyo del clúster administrado (que contiene la red virtual subyacente, el equilibrador de carga, la dirección IP pública, el grupo de seguridad de red, los conjuntos de escalado y las cuentas de almacenamiento). Asegúrese de modificarNodeTypeNAme
a cualquier nombre de tipo de nodo de clúster que desee comprobar (como se especifica en la plantilla de implementación).$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
La salida devuelta debe ser similar a esta:
$VMSS.VirtualMachineProfile.SecurityProfile.EncryptionAtHost True
Habilitación de Azure Disk Encryption
Azure Disk Encryption ofrece cifrado de volumen para los discos de datos y del sistema operativo en las máquinas virtuales de Azure mediante el uso de la característica DM-Crypt de Linux o la característica BitLocker de Windows. ADE está integrado con Azure Key Vault para ayudarle a controlar y administrar los secretos y las claves de cifrado de discos.
En esta guía, aprenderá a habilitar el cifrado de disco en nodos de clústeres administrados de Service Fabric en Windows con la funcionalidad de Azure Disk Encryption para conjuntos de escalado de máquinas virtuales a través de plantillas de Azure Resource Manager.
Registro en Azure Disk Encryption
La versión preliminar del cifrado de disco de un conjunto de escalado de máquinas virtuales requiere el registro automático. Ejecute el siguiente comando:
Register-AzProviderFeature -FeatureName "UnifiedDiskEncryption" -ProviderNamespace "Microsoft.Compute"
Compruebe el estado del registro mediante la ejecución de:
Get-AzProviderFeature -ProviderNamespace "Microsoft.Compute" -FeatureName "UnifiedDiskEncryption"
Una vez que el estado cambia a Registrado, está listo para continuar.
Aprovisionamiento de Key Vault para el cifrado de disco
Azure Disk Encryption requiere Azure Key Vault para controlar y administrar las claves y los secretos de cifrado de discos. El clúster administrado de Key Vault y Service Fabric debe residir en la misma región y suscripción de Azure. Siempre que se cumplan estos requisitos, puede usar un almacén de claves nuevo o uno ya existente si lo habilita para el cifrado de discos.
Creación de un almacén de claves con cifrado de disco habilitado
Ejecute los siguientes comandos para crear un nuevo almacén de claves para el cifrado de discos. Asegúrese de que la región de Key Vault está en la misma región que el clúster.
$resourceGroupName = "<rg-name>" $keyvaultName = "<kv-name>" New-AzResourceGroup -Name $resourceGroupName -Location eastus2 New-AzKeyVault -ResourceGroupName $resourceGroupName -Name $keyvaultName -Location eastus2 -EnabledForDiskEncryption
Actualización del almacén de claves existente para habilitar el cifrado de disco
Ejecute los siguientes comandos para habilitar el cifrado de disco para un almacén de claves ya existente.
Set-AzKeyVaultAccessPolicy -ResourceGroupName $resourceGroupName -VaultName $keyvaultName -EnabledForDiskEncryption
Actualización de los archivos de plantilla y de los parámetros para el cifrado de disco
El siguiente paso le guiará a través de los cambios de plantilla necesarios para habilitar el cifrado de disco en un clúster administrado existente. Como alternativa, puede implementar un nuevo clúster administrado de Service Fabric con el cifrado de discos habilitado con esta plantilla: https://github.com/Azure-Samples/service-fabric-cluster-templates/tree/master/SF-Managed-Standard-SKU-1-NT-DiskEncryption
Agregue los siguientes parámetros a la plantilla, sustituyendo su propia suscripción, el nombre del grupo de recursos y el nombre del almacén en
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" } } },
A continuación, agregue la extensión de máquina virtual
AzureDiskEncryption
a los tipos de nodos de clústeres administrados de la plantilla:"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')]" } } } ] }
Por último, actualice el archivo de parámetros, sustituyendo su propia suscripción, el grupo de recursos y el nombre del almacén de claves en keyVaultResourceId:
"parameters": { ... "keyVaultResourceId": { "value": "/subscriptions/########-####-####-####-############/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<kv-name>" }, "volumeType": { "value": "All" } }
Implementación y comprobación de los cambios
Una vez que esté listo, implemente los cambios para habilitar el cifrado de disco en el clúster administrado.
$clusterName = "<clustername>" New-AzResourceGroupDeployment -Name $resourceGroupName -ResourceGroupName $resourceGroupName .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json -Debug -Verbose
Puede comprobar el estado del cifrado de disco en el conjunto de escalado subyacente de un tipo de nodo mediante el comando
Get-AzVmssDiskEncryption
. En primer lugar, debe buscar el nombre del grupo de recursos de apoyo del clúster administrado (que contiene la red virtual subyacente, el equilibrador de carga, la dirección IP pública, el grupo de seguridad de red, los conjuntos de escalado y las cuentas de almacenamiento). Asegúrese de modificarVmssName
a cualquier nombre de tipo de nodo de clúster que desee comprobar (como se especifica en la plantilla de implementación).$VmssName = "NT1" $clustername = <clustername> $supportResourceGroupName = "SFC_" + (Get-AzServiceFabricManagedCluster -ResourceGroupName $resourceGroupName -Name $clustername).ClusterId Get-AzVmssDiskEncryption -ResourceGroupName $supportResourceGroupName -VMScaleSetName $VmssName
La salida debe ser similar a esta:
ResourceGroupName : SFC_########-####-####-####-############ VmScaleSetName : NT1 EncryptionEnabled : True EncryptionExtensionInstalled : True
Pasos siguientes
Azure Disk Encryption para máquinas virtuales Windows
Cifrado de conjuntos de escalado de máquinas virtuales con Azure Resource Manager