Azure 服务器端加密

Citrix DaaS 通过 Azure Key Vault 支持 Azure 托管磁盘的客户管理的加密密钥。借助此支持,您可以使用自己的加密密钥加密计算机目录的托管磁盘,从而管理您的组织和合规性要求。有关详细信息,请参阅Azure 磁盘存储的服务器端加密

在托管磁盘上使用此功能时:

  • 要更改磁盘加密所用的密钥,请在 DiskEncryptionSet 中更改当前密钥。与该 DiskEncryptionSet 关联的所有资源都将更改为使用新密钥进行加密。

  • 当您禁用或删除密钥时,使用该密钥的任何 VM 及其磁盘将自动关闭。关闭后,除非再次启用密钥或分配新密钥,否则 VM 将无法使用。任何使用该密钥的目录都无法启动,并且您无法向其中添加 VM。

使用客户管理的加密密钥时的重要注意事项

使用此功能时,请考虑以下事项:

  • 与客户管理的密钥相关的所有资源(Azure Key Vault、磁盘加密集、VM、磁盘和快照)必须位于同一订阅和区域中。
  • 启用客户管理的加密密钥后,您无法在以后禁用它。如果您要禁用或删除客户管理的加密密钥,请将所有数据复制到不使用客户管理的加密密钥的其他托管磁盘。
  • 使用服务器端加密和客户管理的密钥从加密的自定义映像创建的磁盘必须使用相同的客户管理的密钥进行加密。这些磁盘必须位于同一订阅中。
  • 使用服务器端加密和客户管理的密钥从磁盘创建的快照必须使用相同的客户管理的密钥进行加密。
  • 使用客户管理的密钥加密的磁盘、快照和映像无法移动到其他资源组和订阅。
  • 当前或以前使用 Azure Disk Encryption 加密的托管磁盘无法使用客户管理的密钥进行加密。

  • 有关每个区域的磁盘加密集限制,请参阅 Microsoft 站点

注意:

有关配置 Azure 服务器端加密的信息,请参阅快速入门:使用 Azure 门户创建 Key Vault

Azure 客户管理的加密密钥

创建计算机目录时,您可以选择是否加密目录中预配的计算机上的数据。使用客户管理的加密密钥进行服务器端加密可让您在托管磁盘级别管理加密并保护目录中计算机上的数据。磁盘加密集 (DES) 表示客户管理的密钥。要使用此功能,您必须首先在 Azure 中创建 DES。DES 采用以下格式:

  • /subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/Sample-RG/providers/Microsoft.Compute/diskEncryptionSets/SampleEncryptionSet

从列表中选择一个 DES。您选择的 DES 必须与您的资源位于同一订阅和区域中。如果您的映像使用 DES 加密,请在创建计算机目录时使用相同的 DES。创建目录后,您无法更改 DES。

如果您使用加密密钥创建目录,然后禁用 Azure 中相应的 DES,则无法再启动目录中的计算机或向其中添加计算机。

请参阅创建具有客户管理的密钥的计算机目录

创建具有客户管理的加密密钥的计算机目录

如果要使用 PowerShell 命令创建计算机目录(其中加密密钥是客户管理的密钥),请执行以下操作:

  1. 打开 PowerShell 窗口。
  2. 运行 asnp citrix®* 以加载 Citrix 特定的 PowerShell 模块。
  3. 输入 cd xdhyp:/
  4. 输入 cd .\HostingUnits\(your hosting unit)
  5. 输入 cd diskencryptionset.folder
  6. 输入 dir 以获取磁盘加密集列表。
  7. 复制磁盘加密集的 ID。
  8. 创建自定义属性字符串以包含磁盘加密集的 ID。例如:

    $customProperties = "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`">
    <Property xsi:type=`"StringProperty`" Name=`"persistWBC`" Value=`"False`" />
    <Property xsi:type=`"StringProperty`" Name=`"PersistOsDisk`" Value=`"false`" />
    <Property xsi:type=`"StringProperty`" Name=`"UseManagedDisks`" Value=`"true`" />
    <Property xsi:type=`"StringProperty`" Name=`"DiskEncryptionSetId`" Value=`"/subscriptions/0xxx4xxx-xxb-4bxx-xxxx-xxxxxxxx/resourceGroups/abc/providers/Microsoft.Compute/diskEncryptionSets/abc-des`"/>
    </CustomProperties>
    <!--NeedCopy-->
    
  9. 如果尚未创建,请创建身份池。例如:

    New-AcctIdentityPool -IdentityPoolName idPool -NamingScheme ms## -Domain def.local -NamingSchemeType Numeric
    <!--NeedCopy-->
    
  10. 运行 New-ProvScheme 命令:例如:

    New-ProvScheme -CleanOnBoot -HostingUnitName "name" -IdentityPoolName "name" -InitialBatchSizeHint 1
    -MasterImageVM "XDHyp:\HostingUnits\azure-res2\image.folder\def.resourcegroup\def.snapshot"
    -NetworkMapping @{"0"="XDHyp:\HostingUnits\azure-res2\\virtualprivatecloud.folder\def.resourcegroup\def-vnet.virtualprivatecloud\subnet1.network"}
    -ProvisioningSchemeName "name"
    -ServiceOffering "XDHyp:\HostingUnits\azure-res2\serviceoffering.folder\Standard_DS2_v2.serviceoffering"
    -MachineProfile "XDHyp:\HostingUnits\<adnet>\machineprofile.folder\<def.resourcegroup>\<machine profile vm.vm>"
    -CustomProperties $customProperties
    <!--NeedCopy-->
    
  11. 完成创建计算机目录。
Azure 服务器端加密