Включение шифрования дисков для управляемых узлов кластера Service Fabric

Управляемые кластеры Service Fabric поддерживают два варианта шифрования дисков, чтобы защитить данные в соответствии с обязательствами организации по безопасности и соответствию требованиям. Рекомендуется использовать шифрование на узле, но также поддерживается Шифрование дисков Azure. Просмотрите параметры шифрования диска и убедитесь, что выбранный вариант соответствует вашим потребностям.

Включение шифрования в узле

Этот метод шифрования улучшает Шифрование дисков Azure благодаря поддержке всех типов и образов ОС, включая пользовательские образы, для виртуальных машин путем шифрования данных в службе хранилища Azure. Этот метод не использует ЦП виртуальных машин и не влияет на производительность виртуальных машин, позволяя рабочим нагрузкам использовать все доступные ресурсы SKU виртуальных машин.

Примечание

Нельзя включить на существующих типах узлов. Необходимо подготовить новый тип узла и перенести рабочую нагрузку.

Примечание

Состояние шифрования диска в Центре безопасности Azure при использовании шифрования на узле будет отображаться как "Неработоспособный".

Выполните эти инструкции и опирайтесь на шаблон с примером, чтобы развернуть новый управляемый кластер Service Fabric с включенной функцией шифрования на узле.

  1. Просмотрите следующие ограничения, чтобы проверить, соответствуют ли они вашим требованиям.

  2. Перед развертыванием кластера необходимо выполнить предварительные требования.

  3. Для каждого типа узла необходимо настроить свойство 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
                    ...
                }
        }
    
  4. Развертывание и проверка

    Развертывание управляемого кластера с включенным шифрованием узла.

    $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).

  1. Регистрация шифрования дисков Azure

    Для предварительного просмотра шифрования дисков в масштабируемом наборе виртуальных машин требуется самостоятельная регистрация. Выполните следующую команду:

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

    Проверьте состояние регистрации, выполнив команду:

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

    Когда состояние изменится на Зарегистрировано, можно продолжить работу.

  2. Подготовка Key Vault к шифрованию диска

    Службе шифрования дисков Azure необходимо Azure Key Vault, чтобы управлять секретами и ключами шифрования дисков и контролировать их. Управляемый кластер Key Vault и Service Fabric должны находиться в одном регионе Azure и в одной подписке. В этом случае можно использовать новую или существующую Key Vault, включив на ней шифрование дисков.

  3. Создание 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
    

  1. Обновление существующей службы 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

  1. Добавьте в шаблон следующие параметры, указав собственную подписку, имя группы ресурсов и имя хранилища в разделе 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. Затем внесите расширение виртуальной машины 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')]" 
         } 
       } 
    } 
    ] 
    } 
    
  3. Наконец, обновите файл параметров, заменив собственную подписку, группу ресурсов и имя хранилища ключей в keyVaultResourceId:

    "parameters": { 
    ...
     "keyVaultResourceId": { 
      "value": "/subscriptions/########-####-####-####-############/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<kv-name>" 
     },   
     "volumeType": { 
      "value": "All" 
     }    
    } 
    
  4. Развертывание и проверка изменений

    Когда вы будете готовы, разверните изменения, чтобы включить шифрование дисков в управляемом кластере.

    $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