Включение шифрования дисков для управляемых узлов кластера Service Fabric
Управляемые кластеры Service Fabric поддерживают два варианта шифрования дисков, чтобы защитить данные в соответствии с обязательствами организации по безопасности и соответствию требованиям. Рекомендуется использовать шифрование на узле, но также поддерживается Шифрование дисков Azure. Просмотрите параметры шифрования диска и убедитесь, что выбранный вариант соответствует вашим потребностям.
Включение шифрования в узле
Этот метод шифрования улучшает Шифрование дисков Azure благодаря поддержке всех типов и образов ОС, включая пользовательские образы, для виртуальных машин путем шифрования данных в службе хранилища Azure. Этот метод не использует ЦП виртуальных машин и не влияет на производительность виртуальных машин, позволяя рабочим нагрузкам использовать все доступные ресурсы SKU виртуальных машин.
Примечание.
Нельзя включить на существующих типах узлов. Необходимо подготовить новый тип узла и перенести рабочую нагрузку.
Примечание.
Состояние шифрования диска в Центре безопасности Azure при использовании шифрования на узле будет отображаться как "Неработоспособный".
Выполните эти инструкции и опирайтесь на шаблон с примером, чтобы развернуть новый управляемый кластер Service Fabric с включенной функцией шифрования на узле.
Просмотрите следующие ограничения, чтобы проверить, соответствуют ли они вашим требованиям.
Перед развертыванием кластера необходимо выполнить предварительные требования.
Для каждого типа узла необходимо настроить свойство
enableEncryptionAtHost
в шаблоне управляемых кластеров. Пример предварительно настроен.- Значением apiVersion для ресурса управляемого кластера Service Fabric должно быть 2021-11-01-preview или выше.
{ "apiVersion": "[variables('sfApiVersion')]", "type": "Microsoft.ServiceFabric/managedclusters/nodetypes", "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]", "location": "[resourcegroup().location]", "properties": { "enableEncryptionAtHost": true ... } }
Развертывание и проверка
Развертывание управляемого кластера с включенным шифрованием узла.
$clusterName = "<clustername>" $resourceGroupName = "<rg-name>" New-AzResourceGroupDeployment -Name $resourceGroupName -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json -Debug -Verbose
Состояние шифрования диска можно проверить в базовом масштабируемом наборе узлов с помощью команды
Get-AzVmss
. Сначала необходимо найти имя поддерживающей группы ресурсов управляемого кластера (которая содержит базовую виртуальную сеть, подсистему балансировки нагрузки, общедоступный IP-адрес, группы безопасности сети, масштабируемые наборы и учетные записи хранения). Не забудьте изменитьNodeTypeNAme
на имя типа узла кластера, который вы хотите проверить (как указано в шаблоне развертывания).$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
Результат должен иметь следующий вид:
$VMSS.VirtualMachineProfile.SecurityProfile.EncryptionAtHost True
Включение Шифрования дисков Azure
Шифрование дисков Azure обеспечивает шифрование томов для ОС и дисков данных виртуальных машин (ВМ) Azure с помощью функции DM-Crypt в Linux или функции BitLocker в Windows. ADE интегрируется с Azure Key Vault, помогая управлять ключами шифрования дисков и секретами.
В этом руководство вы узнаете, как включить шифрование дисков для управляемых узлов кластера Service Fabric в Windows с помощью функции Шифрование дисков Azure для масштабируемых наборов виртуальных машин с помощью шаблонов Azure Resource Manager (ARM).
Регистрация шифрования дисков Azure
Для предварительного просмотра шифрования дисков в масштабируемом наборе виртуальных машин требуется самостоятельная регистрация. Выполните следующую команду:
Register-AzProviderFeature -FeatureName "UnifiedDiskEncryption" -ProviderNamespace "Microsoft.Compute"
Проверьте состояние регистрации, выполнив команду:
Get-AzProviderFeature -ProviderNamespace "Microsoft.Compute" -FeatureName "UnifiedDiskEncryption"
Когда состояние изменится на Зарегистрировано, можно продолжить работу.
Подготовка Key Vault к шифрованию диска
Службе шифрования дисков Azure необходимо Azure Key Vault, чтобы управлять секретами и ключами шифрования дисков и контролировать их. Управляемый кластер Key Vault и Service Fabric должны находиться в одном регионе Azure и в одной подписке. В этом случае можно использовать новую или существующую Key Vault, включив на ней шифрование дисков.
Создание Key Vault с включенным шифрованием дисков
Выполните следующие команды, чтобы создать новую службу Key Vault для шифрования дисков. Убедитесь, что регион Key Vault находится в том же регионе, что и кластер.
$resourceGroupName = "<rg-name>" $keyvaultName = "<kv-name>" New-AzResourceGroup -Name $resourceGroupName -Location eastus2 New-AzKeyVault -ResourceGroupName $resourceGroupName -Name $keyvaultName -Location eastus2 -EnabledForDiskEncryption
Обновление существующей службы Key Vault для включения шифрования дисков
Выполните следующие команды, чтобы включить шифрование дисков для существующей Key Vault.
Set-AzKeyVaultAccessPolicy -ResourceGroupName $resourceGroupName -VaultName $keyvaultName -EnabledForDiskEncryption
Обновление файлов шаблонов и параметров для шифрования дисков
Далее мы рассмотрим, какие изменения необходимо внести в шаблон, чтобы включить шифрование дисков в существующем управляемом кластере. Кроме того, можно развернуть новый управляемый кластер Service Fabric с включенным шифрованием дисков с помощью этого шаблона: https://github.com/Azure-Samples/service-fabric-cluster-templates/tree/master/SF-Managed-Standard-SKU-1-NT-DiskEncryption
Добавьте в шаблон следующие параметры, указав собственную подписку, имя группы ресурсов и имя хранилища в разделе
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" } } },
Затем внесите расширение виртуальной машины
AzureDiskEncryption
в типы управляемых узлов кластера в шаблоне:"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')]" } } } ] }
Наконец, обновите файл параметров, заменив собственную подписку, группу ресурсов и имя хранилища ключей в keyVaultResourceId:
"parameters": { ... "keyVaultResourceId": { "value": "/subscriptions/########-####-####-####-############/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<kv-name>" }, "volumeType": { "value": "All" } }
Развертывание и проверка изменений
Когда вы будете готовы, разверните изменения, чтобы включить шифрование дисков в управляемом кластере.
$clusterName = "<clustername>" New-AzResourceGroupDeployment -Name $resourceGroupName -ResourceGroupName $resourceGroupName .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json -Debug -Verbose
Состояние шифрования диска можно проверить в базовом масштабируемом наборе узлов с помощью команды
Get-AzVmssDiskEncryption
. Сначала необходимо найти имя поддерживающей группы ресурсов управляемого кластера (которая содержит базовую виртуальную сеть, подсистему балансировки нагрузки, общедоступный IP-адрес, NSG, масштабируемые наборы и учетные записи хранения). Не забудьте изменитьVmssName
на имя типа узла кластера, который вы хотите проверить (как указано в шаблоне развертывания).$VmssName = "NT1" $clustername = <clustername> $supportResourceGroupName = "SFC_" + (Get-AzServiceFabricManagedCluster -ResourceGroupName $resourceGroupName -Name $clustername).ClusterId Get-AzVmssDiskEncryption -ResourceGroupName $supportResourceGroupName -VMScaleSetName $VmssName
Результат должен иметь следующий вид:
ResourceGroupName : SFC_########-####-####-####-############ VmScaleSetName : NT1 EncryptionEnabled : True EncryptionExtensionInstalled : True
Следующие шаги
Пример: стандартный номер SKU Service Fabric управляемого кластера, тип узла 1 с шифрованием дисков
Шифрование дисков Azure для виртуальных машин Windows
Шифрование масштабируемых наборов виртуальных машин с помощью Azure Resource Manager