Citrix Virtual Apps and Desktops

创建亚马逊工作区核心托管实例目录

创建计算机目录 介绍了创建计算机目录的向导。以下信息涵盖了 Amazon WorkSpaces Core 托管实例的特定详细信息。

注意:

目前,支持创建持久和非持久 VM 的目录(CleanOnBoot 属性为 TrueFalse)。

先决条件

在创建 Amazon WorkSpaces Core 托管实例目录之前,您需要完成以下创建:

  1. 与亚马逊工作区核心托管实例的连接。请参阅 连接到亚马逊工作区核心托管实例
  2. 准备好的映像。请参阅 为 Amazon WorkSpaces Core 托管实例创建准备好的映像

映像准备期间的网络设置

在映像准备期间,会基于原始 VM 创建一个准备虚拟机 (VM)。此准备 VM 与网络断开连接。为了将网络与准备 VM 断开连接,会创建一个网络安全组以拒绝所有入站和出站流量。此网络安全组会持久存在并被重复使用。该网络安全组的名称为 Citrix.XenDesktop.IsolationGroup-GUID,其中 GUID 是随机生成的。

基于计算机配置文件的计算机目录

您可以使用计算机配置文件从 EC2 实例 (VM) 或启动模板版本捕获硬件属性,并将其应用于预配的计算机。捕获的属性可以包括(例如)租用类型、实例类型、安全组、网络映射、EBS 卷属性、EBS 优化、CPU 选项、休眠功能以及其他受支持的 AWS 配置。

您可以使用 AWS EC2 实例 (VM) 或 AWS 启动模板版本作为计算机配置文件输入。

注意:

AWS 租用

AWS 提供以下租用选项:共享租用(默认类型)和专用租用。共享租用意味着来自不同客户的多个 Amazon WorkSpaces Core 实例可能驻留在同一物理硬件上。专用租用意味着您的 Amazon WorkSpaces Core 实例仅在您部署的其他实例所在的硬件上运行。

注意:

仅支持专用实例(目前不支持专用主机)。其他客户不会使用相同的物理硬件资源。

租用类型从计算机配置文件中捕获

当您使用 MCS 在 AWS 中创建目录以预配计算机时,租用类型将从计算机配置文件中捕获。

  • 共享硬件:此设置适用于大多数部署。多个客户共享硬件,即使他们之间不进行交互。使用共享硬件是运行 Amazon EC2 实例最经济的选择。
  • 专用实例:此设置更适用于具有特定安全或合规性要求的部署。使用专用实例,您仍然可以享受拥有独立于其他 AWS 客户的主机的好处,但无需支付整个主机的费用。您无需担心主机的容量,但实例的收费费率更高。此外,专用实例对自带许可证 (BYOL) 的支持有限。

灵活计费

亚马逊 WorkSpaces Core 托管实例支持两种计费模式:

计费模式 描述信息
按月 固定的按月统一费率计费。适用于持久性桌面和可预测的工作负载。
按小时计费 按需计费。如果未明确指定计费模式,这是 AWS 的默认配置。

这些选项根据您的工作负载的持久性和使用模式,为管理计算成本提供了灵活性。

此功能需要使用 Amazon WorkSpaces 计费服务。默认情况下,MCS 使用此服务来预配和管理实例,让您能够从更具竞争力的持久性工作负载的统一费率定价中受益。

先决条件和注意事项

  • AWS 账户配置:您的 AWS 账户必须配置为使用 WorkSpaces 计费服务。尽管 AWS 账户默认已切换,但某些客户可能会要求 AWS 保持使用旧版 EC2 计费服务,以使用 WorkSpaces Core 托管实例。

    注意:

    如果您的账户使用旧版 EC2 计费服务,则按月计费选项不可用。

  • 主机连接:灵活计费仅适用于 Amazon WorkSpaces Core 主机连接。不支持标准 AWS EC2 主机连接。
  • 竞价实例:WorkSpaces 计费服务不支持竞价实例。
  • 混合计费:AWS 账户必须为核心托管实例使用 WorkSpaces 计费或 EC2 计费。不支持在单个账户中混合使用这两种计费方式。
  • 兼容性:只有特定的实例类型、平台类型(操作系统)和租用类型与某些计费模式兼容。MCS 会执行预检,以确保您的选择(服务产品、计算机配置文件和准备好的映像)与所选的计费模式匹配。

请参阅使用特定计费模式创建计算机目录

创建目录

创建 Amazon WorkSpaces Core 托管实例目录需要准备好的映像和计算机配置文件。您可以使用 AWS VM 实例或 AWS 启动模板版本作为计算机配置文件输入。

您可以使用以下方式创建目录:

使用 Web Studio 创建目录

从“映像”节点创建计算机目录

使用“映像”节点中的“创建目录”选项,利用映像版本创建目录。

或者,您可以在“计算机目录”节点中创建目录时选择版本,链接到目录创建工作流中的准备好的映像选项。请参阅从“计算机目录”节点创建计算机目录

要从“映像”节点创建 MCS 计算机目录,请执行以下操作:

  1. 选择一个映像版本,然后单击“创建目录”。在“简介”页面上单击“下一步”。
  2. 在“计算机管理”和“映像”页面上,设置会根据所选映像版本预先选择。在“映像”页面上,为所选的准备好的映像输入备注。
  3. 请完成以下页面中的设置。
  4. 在“摘要”页面上,检查计算机目录的详细信息。输入计算机目录的名称和描述。单击“完成”。
  5. 转到“计算机目录”节点以查看已创建的计算机目录。

从“计算机目录”节点创建计算机目录

要从“计算机目录”节点创建 MCS 计算机目录,请执行以下操作:

  1. 在左侧导航窗格中,点击计算机目录
  2. 点击创建计算机目录。此时将显示计算机目录设置页面。
  3. 计算机类型页面上,为目录选择计算机类型,例如多会话操作系统
  4. 计算机管理页面上,选择以下设置:

    1. 选择已进行电源管理的计算机(例如,虚拟机或刀片式 PC)
    2. 选择思杰预配技术。然后,选择思杰机器创建服务™
    3. 资源字段中,选择在创建主机连接时配置的资源(可用区或本地区域),然后点击下一步
  5. 桌面体验页面上,选择用户登录时所需的随机桌面或静态桌面。如果选择了静态桌面,请进一步指定是否要保存用户在本地磁盘上所做的更改(持久性或非持久性)。
  6. 映像页面上,点击选择映像以为计算机目录选择准备好的映像。选择您创建的准备好的版本。点击映像版本名称。要查看所选映像版本的更多详细信息,请点击带下划线的版本号。点击完成

    与准备好的映像关联的计算机配置文件将显示,并且其硬件属性(例如,实例类型、租用类型、网络映射、安全组、卷属性)用于在目录中创建计算机。要将计算机配置文件源更改为另一个 VM 或启动模板版本,请点击编辑按钮。

  7. 虚拟机页面上:

    1. 输入目录的 VM 数量。
    2. 将显示基于计算机配置文件的默认计算机规范。要更改它,请选择编辑图标并选择计算机规范。
  8. 网卡页面上,为 VM 选择网卡(或 ENI)。
  9. 计算机身份页面上,配置目录中计算机的计算机身份类型:

    1. 要配置已加入域的计算机(本地 Active Directory 或 Microsoft Entra 混合加入),请选择域并为将在此计算机目录中创建的 VM 创建新的 AD 帐户。预配的 VM 将加入所选域。要预配未加入域的计算机,请选择未加入域的选项。
    2. 指定将为 VM 创建的新帐户的帐户命名方案。
  10. 域凭据页面上,单击输入凭据以提供所选域的凭据。出现提示时输入管理员级别的用户名和密码。如果您之前已按照我们的产品文档保存了域凭据,也可以使用服务帐户。
  11. 单击以浏览其余页面,直到摘要页面。输入计算机目录的名称,然后选择完成以创建计算机目录。

在 AWS 本地区域中创建计算机目录的限制

  • 某些本地区域仅支持某些硬件配置(例如,珀斯本地区域不支持 GP3 卷,仅支持 GP2)。
  • 由于只有 gp2 在所有本地区域中普遍受支持,并非所有区域都支持 gp3,因此 ID 磁盘创建默认使用 gp2 卷类型。
  • 您必须选择一个在所需本地区域中支持其硬件规格的计算机配置文件。
  • 准备好的映像 AMI 快照和 ID 磁盘快照默认放置在区域中,而不是本地区域(由于 AWS 在本地区域中 EBS 快照支持可见性方面的限制)。
  • 仅支持完整 EC2 和 EBS 服务的本地区域才是受支持的区域。

通过 PowerShell 来创建目录

使用准备好的映像版本规范和计算机配置文件创建目录

  • 使用 New-ProvScheme 命令从准备好的映像版本规范创建 MCS 非持久性计算机目录。例如,

     New-ProvScheme -ProvisioningSchemeName <string> -ImageVersionSpecUid <Guid> -HostingUnitUid <Guid> -IdentityPoolUid <Guid> [-CleanOnBoot $true] [-MachineProfile <string>] [-ProvisioningSchemeType “MCS”]
     <!--NeedCopy-->
    
  • 使用 New-ProvScheme 命令从准备好的映像版本规范创建 MCS 持久性计算机目录。例如,

     New-ProvScheme -ProvisioningSchemeName <string> -ImageVersionSpecUid <Guid> -HostingUnitUid <Guid> -IdentityPoolUid <Guid> [-CleanOnBoot $false] [-MachineProfile <string>] [-ProvisioningSchemeType “MCS”]
     <!--NeedCopy-->
    

创建目录的完整 Powershell 命令集示例:

$Catalog = New-BrokerCatalog  -AllocationType "Random"  -IsRemotePC $False  -MinimumFunctionalLevel "L7_20" -Name "wsccatalog" -PersistUserChanges "Discard" -ProvisioningType "MCS" -Scope @() -SessionSupport "MultiSession"

$IdentityPool = New-AcctIdentityPool  -AllowUnicode  -Domain "domainname" -IdentityPoolName "wsccatalog" -IdentityType "ActiveDirectory"  -NamingScheme "aws##" -NamingSchemeType "Numeric" -Scope @()

$PreparedImageVersionSpec = Get-ProvImageVersionSpec -ImageDefinitionName image1 -ImageVersionNumber 1 -Filter "PreparationType -eq 'Mcs'"

$Task = New-ProvScheme -ProvisioningSchemeName wsccatalog -ImageVersionSpecUid $PreparedImageVersionSpec.ImageVersionSpecUid -HostingUnitName wsc -IdentityPoolName wsccatalog -CleanOnBoot -Scope @() -SecurityGroup @() -MachineProfile 'XdHyp:\HostingUnits\cvad-test-scalestress\us-east-1a.availabilityzone\machine-profile-instance i (i-0xxxxxxxx).vm' -RunAsynchronously

Get-ProvTask -TaskId $Task.TaskId
$ProvScheme = Get-ProvScheme -ProvisioningSchemeName wsccatalog

Set-BrokerCatalog -Name $Catalog.Name -ProvisioningSchemeId $ProvScheme.ProvisioningSchemeUid
<!--NeedCopy-->

更新计算机配置文件

要更新最初使用计算机配置文件预配的目录上的计算机配置文件,请执行以下操作。在编辑 MCS 计算机目录时,您还可以更改计算机配置文件源的租用类型和休眠功能。

  1. 运行 Set-ProvScheme 命令。例如,

    Set-ProvScheme `
    -ProvisioningSchemeUid "<ID" `
    -MachineProfile "XDHyp:\HostingUnits\abc\us-east-1a.availabilityzone\citrix-cvad-machineprofile-instance (i-0xxxxxxxx).vm"
    <!--NeedCopy-->
    

创建具有特定计费模式的计算机目录

目前,您只能在使用 PowerShell 创建计算机目录时指定计费模式。

使用 PowerShell 命令行脚本工具

要通过 PowerShell 指定计费模式,请在 New-ProvScheme 命令中使用 CustomProperties 参数。

$custprop = "BillingMode,Monthly"

New-ProvScheme -ProvisioningSchemeName "MyCatalog" `
-ImageVersionSpecUid $ImageVersionSpecUid `
-HostingUnitName "wsc-unit" `
-IdentityPoolName "MyIdentityPool" `
-MachineProfile "XdHyp:\HostingUnits\wsc-unit\machine-profile lt-123.launchtemplate\lt-123 (1).launchtemplateversion" `
-CustomProperties $custprop `
-CleanOnBoot
<!--NeedCopy-->

注意:

如果省略 BillingMode 属性,则目录默认为 Hourly

如何更改现有目录的计费模式

您可以将现有目录从 Monthly 转换为 Hourly,反之亦然。此更改可应用于目录中的新 VM 和现有 VM。

更新的重要注意事项

  • 服务窗口:现有 VM 必须经过服务窗口或电源循环才能应用计费更改。
  • 验证:MCS 在应用更改之前会验证现有实例类型和平台是否与新的计费模式兼容。

使用 PowerShell 进行更新操作

  • 要仅更新添加到目录中的新 VM 的计费模式,请更新预配方案的计费模式自定义属性:

     $custprop = "BillingMode,Hourly"
    
     Set-ProvScheme -ProvisioningSchemeName "MyCatalog" -CustomProperties $custprop
     <!--NeedCopy-->
    
  • 要更新目录中新旧 VM 的计费模式,请创建具有更新自定义属性的新预配方案版本,并将新版本应用于所有 VM:

     $custprop = "BillingMode,Hourly"
    
     New-ProvSchemeVersion -ProvisioningSchemeName "MyCatalog" -CustomProperties $custprop
    
     New-ProvSchemeHardwareUpdate -ProvisioningSchemeVersion 2 `
     -StartsNow -AllVMs `
     -MaxDurationInMinutes 100 `
     -ProvisioningSchemeName "MyCatalog"
     <!--NeedCopy-->
    

监控计费信息和状态

您可以验证目录和单个虚拟机的计费模式是否正确。

运行以下 PowerShell 命令以检查您帐户的计费资格:

  • BillingMode 作为 CustomProperties 的一个组成部分返回

     Get-ProvScheme –ProvisioningSchemeName “"MyCatalog" "  | Select  ProvisioningSchemeName,  CustomProperties
     <!--NeedCopy-->
    
  • BillingMode 作为 VMInfo 的一部分返回

     Get-ProvVMDetails –ProvisioningSchemeName “"MyCatalog" "  | Select-Object  -ExpandProperty VMInfo
     <!--NeedCopy-->
    

故障排除和有效性验证

MCS 包含预检检查以防止不兼容的配置。在目录创建或编辑期间,您可能会遇到以下错误:

  • NoInstanceConfigFoundForBillingMode:如果所选的服务产品(实例类型)、租期和平台类型不支持所选的计费模式,则会发生此错误。

  • Spot 实例不支持:如果您尝试将 Spot 实例与 WorkSpaces 主机连接一起使用,则验证将失败。
  • EC2 billing restriction:如果您的 AWS 帐户使用旧版 EC2 计费模型,则尝试设置每月计费模式将导致验证错误。

使用 PowerShell 创建具有启动模板版本的目录

您可以创建 MCS 计算机目录,其中启动模板版本作为计算机配置文件输入。您还可以将计算机配置文件目录的输入从 VM 更新为启动模板版本,以及从启动模板版本更新为 VM。

在 AWS EC2 控制台中,您可以提供启动模板的实例配置信息以及版本号。当您在创建或更新计算机目录时将启动模板版本指定为计算机配置文件输入时,该版本启动模板的属性将复制到预配的 VDA VM。

以下属性可以通过机器配置文件输入或在 New-ProvSchemeSet-ProvScheme 命令中显式作为参数提供。如果它们在 New-ProvSchemeSet-ProvScheme 命令中提供,则它们优先于这些属性的机器配置文件值。

  • 服务产品
  • 网络

注意:

如果机器配置文件启动模板中未提供服务产品,或者未在 New-ProvScheme 命令中将其作为参数提供,则会收到相应的错误。

要使用启动模板版本作为机器配置文件输入来创建目录:

  1. Open a PowerShell window.
  2. 运行 asnp citrix* 命令,以加载 Citrix 专用的 PowerShell 模块。
  3. 获取启动模板的启动模板版本列表。例如:

    XDHyp:\HostingUnits\test\test-mp-sard (lt-01xxxxx).launchtemplate> ls | Select FullPath
    <!--NeedCopy-->
    
  4. 如果尚未创建身份池,请创建一个。例如:

    New-AcctIdentityPool `
    -IdentityPoolName "abc11" `
    -NamingScheme "abc1-##" `
    -NamingSchemeType Numeric `
    -Domain "citrix-xxxxxx.local" `
    -ZoneUid "xxxxxxxx" `
    <!--NeedCopy-->
    
  5. 创建预配方案,并将启动模板版本作为机器配置文件输入。例如:

    New-ProvScheme `
    -ProvisioningSchemeName "MPLT1" `
    -HostingUnitUid "c7f71f6a-3f45-4xxx-xxxx-xxxxxxxxxx" `
    -IdentityPoolUid "bf3a6ba2-1f80-4xxx-xxxx-xxxxxxxxx" `
    -ImageVersionSpecUid ‘24dfb047-e867-527g-896c-25664xxxxx1t’ `
    -CleanOnBoot `
    -MachineProfile "XDHyp:\HostingUnits\xxxx-ue1a\machineprofiletest (lt-01xxxxx).launchtemplate\lt-01xxxxx (1).launchtemplateversion"
    <!--NeedCopy-->
    
  6. 将预配方案注册为代理目录。例如:

    New-BrokerCatalog -Name "MPLT1" `
    -AllocationType Random `
    -Description "Machine profile catalog" `
    -ProvisioningSchemeId fe7df345-244e-4xxxx-xxxxxxxxx `
    -ProvisioningType Mcs `
    -SessionSupport MultiSession `
    -PersistUserChanges Discard
    <!--NeedCopy-->
    
  7. 完成目录的创建。

更新机器配置文件源

您还可以将机器配置文件目录的输入从 VM 更新为启动模板版本,以及从启动模板版本更新为 VM。例如:

  • 要将计算机配置文件目录的输入从 VM 更新为启动模板版本:

     Set-ProvScheme -ProvisioningSchemeName "CloudServiceOfferingTest" `
     -MachineProfile "XDHyp:\HostingUnits\xxxx-ue1a\machineprofiletest (lt-0bxxxxxxxxxxxx).launchtemplate\lt-0bxxxxxxxxxxxx (1).launchtemplateversion"
     <!--NeedCopy-->
    
  • 要将计算机配置文件目录的输入从启动模板版本更新为 VM:

     Set-ProvScheme -ProvisioningSchemeName "CloudServiceOfferingTest" `
     -MachineProfile "XDHyp:\HostingUnits\sard-ue1a\us-east-1a.availabilityzone\apollo-non-persistent-vda-win2022-2 (i-08xxxxxxxxx).vm"
     <!--NeedCopy-->
    

启用 MCSIO 的目录

MCS 存储优化 (MCSIO) 通过在内存或小型高速磁盘中缓存磁盘操作来提高 VM 的性能。您可以使用 PowerShell 命令创建启用 MCSIO 的非持久性目录。要创建此类目录,您必须在准备 AMI 实例期间安装或升级 VDA 时安装 MCSIO 驱动程序。默认情况下,该驱动程序未安装。

准备好 MCSIO AMI 后(安装 VDA 时,选择在安装中包含 MCSIO 驱动程序的选项),您可以创建启用 MCSIO 的非持久性目录。

注意:

使用 Studio 仅配置磁盘缓存(不带内存缓存)的 MCSIO 选项已在所有虚拟机管理程序和云服务环境中删除。

创建启用 MCSIO 的目录

The four parameters added to the New-ProvScheme PowerShell command are:

  • UseWriteBackCache:为给定预配方案启用缓存(回写缓存)
  • WriteBackCacheDiskSize:指定用于缓存的临时磁盘大小(以 GB 为单位)
  • WriteBackCacheMemorySize:指定用于缓存的内存量(以 MB 为单位)。这是一个可选参数。

注意:

  • WriteBackCacheDiskSize 的值必须大于零,因为至少需要 1 GB 的缓存磁盘存储。缓存磁盘大小不得大于操作系统磁盘大小。
  • WriteBackCacheMemorySize 的值必须是非零且小于计算机目录内存大小。

影响 MCSIO 的自定义属性包括:

  • WBCDiskStorageType: 定义卷类型,用于 Amazon WorkSpaces Core 托管实例中的临时磁盘。此参数采用 volume-type[:iops][:throughput] 格式的字符串参数。以下是卷类型:

    • gp2: 请勿将 iops 和吞吐量参数用于此卷类型
    • gp3: 将 iops 和吞吐量参数用于此卷类型
    • io1: 仅将 iops 参数用于此卷类型
    • io2: 仅将 iops 参数用于此卷类型

    默认卷类型为 gp2

  • PersistWBC: 控制在 Amazon WorkSpaces Core 托管实例关闭电源时是保留还是丢弃缓存磁盘。如果设置为 true,则保留缓存磁盘。如果设置为 false(默认值),则仅在 AMI 实例通电时创建并保留缓存磁盘。
  • PersistOSDisk: 控制在 Amazon WorkSpaces Core 托管实例关闭电源时是保留还是丢弃操作系统磁盘。如果设置为 true,则保留操作系统磁盘。如果设置为 false(默认值),则仅在 AMI 实例通电时创建并保留操作系统磁盘。

在 PowerShell 窗口中执行以下步骤以创建启用 MCSIO 的非持久性目录:

  1. 打开 PowerShell 命令行窗口。
  2. 运行 asnp citrix* 以加载 思杰 特定的 PowerShell 模块。
  3. 创建一个代理目录和一个身份池。
  4. 创建预配方案。例如,请执行以下操作:

    $HostingUnitUid = '0xxxx1d9-bbfc-xxxf-bxxb-exxxxxe008b2'
    $MasterImageVM = 'XDHyp:\HostingUnits\ctx-test\aws-apollo-non-persistent-multi-mcsio-vda-win2022 (ami-0bf1810488acbxxxb).template'
    $NetworkMap = @{ 'NetworkPath' = 'XDHyp:\HostingUnits\ctx-test\us-east-1a.availabilityzone\10.0.128.0`/17 (vpc-0fa6e41d72507fxxx).network' }
    $SecurityGroup = $( 'XDHyp:\HostingUnits\ctx-test\us-east-1a.availabilityzone\private.securitygroup' )
    $ServiceOffering = 'XDHyp:\HostingUnits\ctx-test\T3 Medium Instance.serviceoffering'
    $CustomProperties = 'WBCDiskStorageType,gp3:6000:250;PersistWBC,false'
    
    $provScheme = New-ProvScheme -ProvisioningSchemeName $CatalogName -HostingUnitUid $HostingUnitUid `
    -IdentityPoolUid $acctPool.IdentityPoolUid -CleanOnBoot `
    - MasterImageVM $MasterImageVM `
    -NetworkMap $NetworkMap `
    -ServiceOffering $ServiceOffering `
    -SecurityGroup $SecurityGroup `
    -CustomProperties $CustomProperties `
    -UseWriteBackCache -WriteBackCacheDiskSize 16 -WriteBackCacheMemorySize 256
    <!--NeedCopy-->
    
  5. 将 VM 添加到目录。

使用 MCSIO 提高启动性能

如果启用 MCSIO 并将 PersistWBCPersistOSDisk 自定义属性设置为 true,则可以提高 VM 的启动性能。通过此设置,VM 可以更快地启动,因为它们无需初始化新的缓存磁盘或从其模板重新创建根磁盘。

加密操作系统和 ID 磁盘

您可以使用 AWS KMS 密钥(客户管理密钥和 AWS 管理密钥)创建 VM 目录,这些密钥可用于加密操作系统磁盘和身份磁盘 (ID)。

  • AWS 管理密钥每年自动轮换。
  • 客户管理密钥可选择自动轮换,也可以手动管理。

有关 KMS 密钥的更多信息,请参阅以下 AWS 文档:

对于操作系统和 ID 磁盘的加密,请配置以下选项之一:

  • 使用已加密的准备映像(例如,从包含使用 KMS 密钥加密的 EBS 根卷的实例或快照创建的 AMI)
  • 使用包含加密 EBS 根卷的计算机配置文件源(VM 或启动模板)。

限制事项

请考虑以下限制事项:

  • MCS 目前仅支持准备映像 AMI 上的一个磁盘。
  • 您无法直接加密现有的未加密 EBS 卷或快照,也无法修改现有加密卷的 KMS 密钥。要执行此操作,您必须:

    1. 为该卷创建一个新的快照。
    2. 基于该快照创建一个新的卷。
    3. 对新卷进行加密。

请参阅以下 AWS 文档:

创建带磁盘加密的目录

您可以使用以下方法创建带磁盘加密的 MCS 计算机目录:

  • 准备好的映像(使用映像管理从具有加密磁盘的主映像创建)
  • 计算机配置文件

使用计算机配置文件输入时的注意事项包括:

  • 计算机配置文件输入的 KMS 密钥优先于准备好的映像的 KMS 密钥。
  • 如果未提供计算机配置文件输入,则使用准备好的映像 AMI 的 KMS 密钥来加密目录 VM 的磁盘。
  • 如果计算机配置文件中存在块设备映射,则准备好的映像模板 (AMI) 和计算机配置文件中存在的块设备必须匹配。例如,如果 AMI 在 /dev/sda1 上定义了一个设备,则计算机配置文件也必须在 /dev/sda1 上定义一个设备。
  • 如果机器配置文件源中没有密钥,并且准备好的映像未加密,则目录虚拟机的磁盘不会加密。
  • 当准备好的映像已加密时,机器配置文件源虚拟机或启动模板必须具有加密的根卷才能被视为有效输入。

对现有目录进行修改

您可以使用 Set-ProvScheme PowerShell 命令修改现有目录,以使其具有:

  • 包含新 KMS 密钥的卷的机器配置文件输入。
  • 使用映像管理从主映像创建的、具有加密 AMI 的准备好的映像。

重要注意事项:

  • 添加到目录的新虚拟机的卷使用新的 KMS 密钥加密。
  • 如果存在现有机器配置文件,要更新加密设置,请使用新的机器配置文件运行 Set-ProvScheme
  • 您无法将现有目录从加密卷修改为未加密卷。 您无法将映像更新从加密的准备好的映像 AMI 更改为未加密的准备好的映像 AMI。

为虚拟机实例启用 NitroTPM 和 UEFI 安全启动

创建目录时,您现在可以选择启用 NitroTPM 和/或 UEFI 安全启动的准备好的映像 (AMI)。因此,目录中预配的虚拟机也启用了 NitroTPM 和/或 UEFI 安全启动。此实现可确保虚拟机安全且受信任。有关 NitroTPM 和 UEFI 安全启动的更多信息,请参阅 Amazon 文档

限制事项

  • 目前,您可以在除中国以外的所有 AWS 区域(包括 AWS GovCloud(美国)区域)中使用 NitroTPM 和安全启动。
  • 您无法在现有目录上启用 NitroTPM 和 UEFI 安全启动。如果您需要启用 NitroTPM 和 UEFI 安全启动的目录,请创建一个新目录。

关键步骤

  1. 设置您的 AWS 环境。
  2. 创建到 AWS 的连接。
  3. 创建启用 NitroTPM 和/或 UEFI 安全启动的主映像 (AMI)
  4. 从主映像创建准备好的映像。请参阅为 Amazon WorkSpaces Core 托管实例创建准备好的映像
  5. 通过在 Web Studio 目录创建菜单中选择已启用 NitroTPM 和 UEFI 安全启动的准备好的映像,或在使用 PowerShell 命令创建预配方案时,创建计算机目录。

添加到所创建目录的 VM 已启用 NitoTPM 和 UEFI 安全启动。

创建支持 NitroTPM 和 UEFI 安全启动的 AMI

  1. 您可以从已启用 NitroTPM 和/或 UEFI 安全启动的 VM 创建 AMI。

    1. 使用 AWS Marketplace 映像创建实例。例如,搜索 TPM-Windows_Server-2022-English-Full-Base on the aws-marketplace
    2. 下载单会话或多会话 VDA。
    3. 从该 VM 创建 AMI。
  2. 请使用 register-image 命令来注册镜像:

    --boot-mode (string)
    --tpm-support (string)
    <!--NeedCopy-->
    

    有关详细信息,请参阅 注册镜像

请参阅以下 AWS 文档:

您可以从 Delivery controller™ 主机打开 PowerShell 窗口,以便检查以下特定项是否:

  • 服务产品支持 NitroTPM 或 UEFI 安全启动

     (Get-Item -Path “XDHyp:\HostingUnits\aws\T3 Medium Instance.serviceoffering”).AdditionalData.BootMode
     (Get-Item -Path “XDHyp:\HostingUnits\aws\T3 Medium Instance.serviceoffering”).AdditionalData.NitroTpmSupportVersions
     <!--NeedCopy-->
    
  • 模板支持 NitroTPM 或 UEFI 安全启动

     (Get-HypInventoryItem -LiteralPath “XDHyp:\HostingUnits\aws” -ResourceType “template -Id “ID”).AdditionalData.BootMode
    
     (Get-HypInventoryItem -LiteralPath “XDHyp:\HostingUnits\aws” -ResourceType “template -Id “ID”).AdditionalData.TpmSupport
     <!--NeedCopy-->
    

更新现有目录的服务产品配置

您可以使用 Set-ProvScheme 更改现有目录的服务产品。此更改适用于新添加的 VM。但是,在以下情况下会收到错误:

AMI 启动模式 AMI 是否提供对 Nitro TPM 的支持? 服务产品支持 NitroTPM 和 UEFI 安全启动?
统一可扩展固件接口
传统基本输入输出系统
统一可扩展固件接口
统一可扩展固件接口 优先

复制虚拟机上的标签

您可以将计算机配置文件中指定的 NIC 和磁盘(身份磁盘、回写缓存磁盘和操作系统磁盘)上的标签复制到 MCS 计算机目录中新创建的虚拟机。您可以在任何计算机配置文件源(AWS 虚拟机实例或 AWS 启动模板版本)中指定这些标签。此功能适用于持久和非持久计算机目录和虚拟机。

注意:

  • 在 AWS EC2 控制台中,您无法在“启动模板版本资源标签”下看到“标记网络接口”值。但是,您可以运行 PowerShell 命令 aws ec2 describe-launch-template-versions --launch-template-id lt-0bb652503d45dcbcd --versions 12 来查看标签规范。
  • 如果计算机配置文件源(虚拟机或启动模板版本)有两个网络接口(eni-1 和 eni-2),并且 eni-1 具有标签 t1,eni-2 具有标签 t2,则虚拟机将获得这两个网络接口的标签。

使用 PowerShell 筛选虚拟机实例

您用作计算机配置文件虚拟机的 AWS 虚拟机实例必须与计算机目录兼容,才能正确创建和运行。要列出可用作计算机配置文件输入虚拟机的 AWS 虚拟机实例,您可以使用 Get-HypInventoryItem 命令。该命令可以对托管单元上可用的虚拟机清单进行分页和筛选。

分页:

Get-HypInventoryItem supports two modes of pagination:

  • 分页模式使用 -MaxRecords-Skip 参数返回项目集:
    • -MaxRecords: 默认值为 1。这控制要返回的项目数量。
    • -Skip: 默认值为 0。这控制要从虚拟机管理程序中列表的绝对开头(或绝对结尾)跳过的项目数量。
  • 滚动模式使用 -MaxRecords-ForwardDirection-ContinuationToken 参数以允许记录滚动:
    • -ForwardDirection: 默认值为 True。这与 -MaxRecords 一起使用,以返回下一组匹配记录或上一组匹配记录。
    • -ContinuationToken: 返回紧随其后的项目(如果 ForwardDirectionfalse,则为之前),但不包括 ContinuationToken 中给定的项目。

分页的示例:

  • 要返回具有最低名称的计算机模板的单个记录。AdditionalData 字段具有 TotalItemsCountTotalFilteredItemsCount

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template
     <!--NeedCopy-->
    
  • 要返回具有最低名称的计算机模板的 10 条记录:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -MaxRecords 10 | select Name
     <!--NeedCopy-->
    
  • 要返回以最高名称结尾的记录数组:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -ForwardDirection $False -MaxRecords 10 | select Name
     <!--NeedCopy-->
    
  • 要返回从与给定 ContinuationToken 关联的计算机模板开始的记录数组:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -ContinuationToken "ami-07xxxxxxxxxx" -MaxRecords 10
     <!--NeedCopy-->
    

筛选:

支持以下用于筛选的其他可选参数。您可以将这些参数与分页选项结合使用。

  • -ContainsName "my_name": 如果给定字符串与 AMI 名称的一部分匹配,则该 AMI 将包含在 Get 结果中。例如:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -MaxRecords 100 -ContainName ‘apollo’ | select Name
     <!--NeedCopy-->
    
  • -Tags '{ "Key0": "Value0", "Key1": "Value1", "Key2": "Value2" }': 如果 AMI 具有这些标签中的至少一个,则它包含在 Get 结果中。例如:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -MaxRecords 100 -Tags '{"opex owner": "Not tagged"}' | select Name
     <!--NeedCopy-->
    

    注意:

    支持两种标签值。未标记标签值匹配其标签列表中没有给定标签的项目。所有值标签值匹配具有该标签的项目,无论标签的值如何。否则,仅当项目具有该标签且其值与筛选器中给定的值相等时,才会发生匹配。

  • -Id "ami-0a2d913927e0352f3": 如果 AMI 与给定 ID 匹配,则它包含在 Get 结果中。例如:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -Id ami-xxxxxxxxxxxxx
     <!--NeedCopy-->
    

根据附加数据参数进行筛选:

AdditionalData 筛选器参数根据模板或 VM 的功能、服务产品或 AdditionalData 中的任何属性列出它们。例如:

(Get-HypInventoryItem -ResourceType "launchtemplateversion" -LiteralPath "XDHyp:\HostingUnits\aws" -MaxRecords 200).AdditionalData
<!--NeedCopy-->

您还可以添加 -Warn 参数来指示不兼容的 VM。VM 将包含一个名为 WarningAdditionalData 字段。例如:

(Get-HypInventoryItem -ResourceType "launchtemplateversion" -LiteralPath "XDHyp:\HostingUnits\aws" -MaxRecords 200 -Template "ami-015xxxxxxxxx" -Warn $true).AdditionalData
<!--NeedCopy-->

后续步骤

更多信息