共用方式為


為 Service Fabric 受控叢集節點啟用磁碟加密

Service Fabric 受控叢集支援兩種磁碟加密選項,以協助保護您的資料,以符合組織的安全性和合規性承諾。 建議的選項是在主機上加密,但也支援 Azure 磁碟加密。 請檢閱磁碟加密選項,並確定選取的選項符合您的需求。

啟用主機上的加密

此加密方法可透過加密 Azure 儲存體服務中的資料,藉由支援所有 VM 的 OS 類型和映像 (包括自訂映像),來改善 Azure 磁碟加密。 這個方法不會使用您的 VM CPU,也不會影響 VM 效能,讓工作負載可以使用所有可用的 VM SKU 資源。

注意

您無法在現有的節點類型上啟用。 您必須佈建新的節點類型並移轉工作負載。

注意

當您在主機上使用加密時,Azure 資訊安全中心磁碟加密狀態將會顯示為狀況不良

遵循這些步驟,並參考此樣本範本,以部署已啟用主機加密的新 Service Fabric 受控叢集。

  1. 檢閱下列限制,以驗證其是否符合您的需求。

  2. 在叢集部署之前,請先設定必要的必要條件

  3. 需要針對每個節點類型磁碟加密設定受控叢集範本中的 enableEncryptionAtHost 屬性。 此樣本已預先設定。

    • Service Fabric 受控叢集資源 apiVersion 必須為 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、NSG、擴展集和儲存體帳戶)。 請務必將 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 磁碟加密透過使用 Linux 中的 DM-Crypt 功能或 Windows 的 BitLocker 功能,為 Azure 虛擬機器 (VM) 的 OS 和資料磁碟提供磁碟區加密。 ADE 與 Azure Key Vault 整合,協助您控制及管理磁碟加密金鑰和祕密。

在本指南中,您將瞭解如何透過 Azure Resource Manager (ARM) 範本,使用虛擬機器擴展集Azure 磁碟加密功能,在 Windows 中的 Service Fabric 受控叢集節點上啟用磁碟加密。

  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 VM 延伸模組新增至範本中受控叢集節點類型:

    "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 受控叢集、一個已啟用磁碟加密的節點類型

適用於 Windows VM 的 Azure 磁碟加密

使用 Azure Resource Manager 加密虛擬機器擴展集