Google Cloud 环境
Citrix Virtual Apps and Desktops 允许您在 Google Cloud 上预配和管理计算机。本文将指导您使用 Machine Creation Services (MCS) 在您的 Citrix Virtual Apps 或 Citrix Virtual Desktops 服务部署中预配虚拟机。
要求
- Citrix Cloud 帐户。本文中介绍的功能仅在 Citrix Cloud 中提供。
- Citrix DaaS 订阅。有关详细信息,请参阅入门。
- Google Cloud 项目。该项目存储与计算机目录关联的所有计算资源。它可以是现有项目或新项目。
- 在您的 Google Cloud 项目中启用四个 API。有关详细信息,请参阅启用 Google Cloud API。
- Google Cloud Service 帐户。此服务帐户对 Google Cloud 进行身份验证,以启用对项目的访问权限。有关详细信息,请参阅配置和更新服务帐号。
- 启用 Google 专用访问权限。有关详细信息,请参阅 Enable-private-google-access。
启用 Google Cloud API
要通过Citrix Virtual Apps and Desktops 的“完整配置”界面中使用 Google Cloud 功能,请在 Google Cloud 项目中启用这些 API:
- 计算引擎 API
- 云资源管理器 API
- 身份识别和访问管理 (IAM) API
- Cloud Build API
- 云密钥管理服务 (KMS)
在 Google Cloud 控制台中,完成以下步骤:
-
在左上角菜单中,选择 API 和服务 > 控制板。
-
在 Dashboard(控制板)屏幕中,确保计算引擎 API 处于启用状态。如果未启用, 请按照以下步骤进行操作:
-
导航到 APIs and Services(API 和服务)> Library(库)。
-
在搜索框中,键入 Compute Engine(计算引擎)。
-
从搜索结果中,选择 Compute Engine API(计算引擎 API)。
-
在 Compute Engine API(计算引擎 API) 页面上,选择 Enable(启用)。
-
-
启用云资源管理器 API。
-
导航到 APIs and Services(API 和服务)> Library(库)。
-
在搜索框中,键入 Cloud Resource Manager(云资源管理器)。
-
在搜索结果中,选择 Cloud Resource Manager API(云资源管理器 API)。
-
在 Cloud Resource Manager API(云资源管理器 API)页面中,选择 Enable(启用)。此时将显示 API 的状态。
-
-
同样,启用身份识别和访问管理 (IAM) API 和 Cloud Build API。
也可以使用 Google Cloud Shell 启用 API。为此,您需要:
- 打开 Google 控制台并加载 Cloud Shell。
-
在 Cloud Shell 中运行以下四个命令:
- gcloud services enable compute.googleapis.com
- gcloud services enable cloudresourcemanager.googleapis.com
- gcloud services enable iam.googleapis.com
- gcloud services enable cloudbuild.googleapis.com
- 如果 Cloud Shell 提示,请单击 Authorize(授权)。
配置和更新服务帐户
注意:
GCP 将在 2024 年 4 月 29 日之后引入对 Cloud Build Service 的默认行为和服务帐户的使用所做的更改。有关详细信息,请参阅 Cloud Build Service 帐户变更。在 2024 年 4 月 29 日之前启用了 Cloud Build API 的现有 Google 项目不受此变更的影响。但是,如果您希望在 4 月 29 日之后保持现有的 Cloud Build Service 行为,则可以在启用 Cloud Build API 之前创建或应用组织政策以禁用强制约束。因此,以下内容分为两部分:2024年 4 月 29 日之前和 2024 年 4 月 29 日之后。如果您设置了新的组织政策,请遵循 2024 年 4 月 29 日之前部分。
2024 年 4 月 29 日之前
Citrix Cloud 在 Google Cloud 项目中使用三个独立的服务帐户:
-
Citrix Cloud Services 帐户:此服务帐户允许 Citrix Cloud 访问 Google 项目、预配和管理计算机。此服务帐户使用 Google Cloud 生成的密钥向 Google Cloud 进行身份验证。
您必须按照此处的说明手动创建此服务帐户。有关详细信息,请参阅创建 Citrix Cloud Services 帐户。
可以使用电子邮件地址识别此服务帐户。例如,
<my-service-account>@<project-id>.iam.gserviceaccount.com
。 -
Cloud Build Service Account(Cloud Build Service 帐户):启用 Enable Google Cloud APIs(启用 Google Cloud API)中提到的所有 API 后,系统会自动预配此服务帐户。要查看自动创建的所有服务帐户,请在 Google Cloud 控制台中导航到 IAM & Admin(IAM 和管理)> IAM,然后选中 Include Google-provided role grants(包括 Google 提供的角色授权)复选框。
可以通过以 Project ID(项目 ID)和 cloudbuild 一词开头的电子邮件地址来识别此服务帐户。例如,
<project-id>@cloudbuild.gserviceaccount.com
验证服务帐户是否被授予了以下角色。如果您必须添加角色,请按照向 Cloud Build Service 帐户中添加角色中概述的步骤进行操作。
- Cloud Build Service 帐户
- 计算实例管理员
- 服务帐户用户
-
Cloud Compute Service 帐户:激活计算 API 后,Google Cloud 会将此服务帐户添加到在 Google Cloud 中创建的实例中。此帐户具有 IAM 基本编辑角色来执行操作。但是,如果您删除默认权限以进行更精细的控制,则必须添加需要以下权限的存储管理员角色:
- resourcemanager.projects.get
- storage.objects.create
- storage.objects.get
- storage.objects.list
可以通过以 Project ID(项目 ID)和 compute 一词开头的电子邮件地址来识别此服务帐户。例如,<project-id>-compute@developer.gserviceaccount.com
。
创建 Citrix Cloud Services 帐户
要创建 Citrix Cloud Services 帐户,请执行以下步骤:
- 在 Google Cloud 控制台中,导航至 IAM & Admin(IAM 和管理员)> Service accounts(服务帐户)。
- 在 Service accounts(服务帐户)页面上,选择 CREATE SERVICE ACCOUNT(创建服务帐户)。
- 在 Create service account(创建服务帐户)页面上,输入所需的信息,然后选择 CREATE AND CONTINUE(创建并继续)。
-
在 Grant this service account access to project(授予此服务帐户对项目的访问权限)页面上,单击 Select a role(选择角色)下拉菜单并选择所需的角色。如果要添加更多角色,请单击 +ADD ANOTHER ROLE(+添加其他角色)。
每个帐户(个人或服务)都具有定义项目管理的各种角色。向此服务帐户授予以下角色:
- 计算管理员
- 存储管理员
- Cloud Build 编辑者
- 服务帐户用户
- 云数据存储用户
- Cloud KMS 加密操作员
Cloud KMS 加密操作员需要以下权限:
- cloudkms.cryptoKeys.get
- cloudkms.cryptoKeys.list
- cloudkms.keyRings.get
- cloudkms.keyRings.list
注意:
在创建新的服务帐户时,请启用所有 API 以获取可用角色的完整列表。
- 单击继续
- 在 Grant users access to this service account(授予用户对此服务帐户的访问权限)页面上,添加用户或组以授予其在此服务帐户中执行操作的权限。
- 单击 DONE(完成)。
- 导航到 IAM 主控制台。
- 识别创建的服务帐户。
- 验证角色是否已成功分配。
注意事项:
创建服务帐户时,请注意以下事项:
- Grant this service account access to project(授予此服务帐户对项目的访问权限)和 Grant users access to this service account(授予用户对此服务帐户的访问权限)的步骤是可选的。如果选择跳过这些可选配置步骤,新创建的服务账号不会显示在 IAM & Admin(IAM 和管理) > IAM 页面中。
- 要显示与服务帐户关联的角色,请在不跳过可选步骤的情况下添加角色。此过程可确保为配置的服务帐户显示角色。
Citrix Cloud Services 帐户密钥
在 Citrix DaaS 中创建连接需要 Citrix Cloud Services 帐户密钥。密钥包含在凭据文件 (.json) 中。创建密钥后,文件会自动下载并保存到下载文件夹。创建密钥时,请务必将密钥类型设置为 JSON。否则,Citrix 的“完整配置”界面无法进行解析。
要创建服务帐户密钥,请导航到 IAM & Admin(IAM 和管理)> Service accounts(服务帐户),然后单击 Citrix Cloud Services 帐户的电子邮件地址。切换到 Keys(密钥)选项卡,然后选择 Add Key(添加密钥)> Create new key(创建新密钥)。请务必选择 JSON 作为密钥类型。
提示:
使用 Google Cloud 控制台中的 Service accounts(服务帐户)页面创建密钥。出于安全考虑,我们建议您定期更改密钥。通过编辑现有 Google Cloud 连接,可以向 Citrix Virtual Apps and Desktops 应用程序提供新密钥。
向 Citrix Cloud Services 帐户添加角色
要向 Citrix Cloud Services 帐户添加角色,请执行以下操作:
- 在 Google Cloud 控制台中,导航至 IAM & Admin(IAM 和管理员)> IAM。
-
在 IAM > PERMISSIONS(权限)页面上,找到您创建的服务帐户,该帐户可通过电子邮件地址进行识别。
例如,
<my-service-account>@<project-id>.iam.gserviceaccount.com
- 选择铅笔图标以编辑对服务帐户主体的访问权限。
- 在所选主体选项的 Edit access to “project-id”(编辑对 project-id 的访问权限)页面上,选择 ADD ANOTHER ROLE(添加另一个角色)将以下角色逐个添加到您的服务帐户,然后选择 SAVE(保存)。
向 Cloud Build Service 帐户添加角色
要向 Cloud Build Service 帐户添加角色,请执行以下操作:
- 在 Google Cloud 控制台中,导航至 IAM & Admin(IAM 和管理员)> IAM。
-
在 IAM 页面上,找到 Cloud Build Service 帐户,该帐户可以使用以 Project ID(项目 ID)和 cloudbuild 一词开头的电子邮件地址进行识别。
例如,
<project-id>@cloudbuild.gserviceaccount.com
- 选择铅笔图标以编辑 Cloud Build 帐户角色。
-
在所选主体选项的 Edit access to “project-id”(编辑对 project-id 的访问权限)页面上,选择 ADD ANOTHER ROLE(添加另一个角色)将所需的角色逐个添加到您的 Cloud Build Service 帐户,然后选择 SAVE(保存)。
注意:
启用所有 API 以获取完整的角色列表。
2024 年 4 月 29 日之后
Citrix Cloud 在 Google Cloud 项目中使用两个独立的服务帐户:
-
Citrix Cloud Services 帐户:此服务帐户允许 Citrix Cloud 访问 Google 项目、预配和管理计算机。此服务帐户使用 Google Cloud 生成的密钥向 Google Cloud 进行身份验证。
必须手动创建此服务帐户。
可以使用电子邮件地址识别此服务帐户。例如,
<my-service-account>@<project-id>.iam.gserviceaccount.com
。 -
Cloud Compute Service Account(Cloud Compute Service 帐户):启用 Enable Google Cloud APIs(启用 Google Cloud API)中提到的所有 API 后,系统会自动预配此服务帐户。要查看自动创建的所有服务帐户,请在 Google Cloud 控制台中导航到 IAM & Admin(IAM 和管理)> IAM,然后选中 Include Google-provided role grants(包括 Google 提供的角色授权)复选框。此帐户具有 IAM 基本编辑角色来执行操作。但是,如果您删除默认权限以进行更精细的控制,则必须添加需要以下权限的存储管理员角色:
- resourcemanager.projects.get
- storage.objects.create
- storage.objects.get
- storage.objects.list
可以通过以 Project ID(项目 ID)和 compute 一词开头的电子邮件地址来识别此服务帐户。例如,
<project-id>-compute@developer.gserviceaccount.com.
验证服务帐户是否被授予了以下角色。
- Cloud Build Service 帐户
- 计算实例管理员
- 服务帐户用户
创建 Citrix Cloud Services 帐户
要创建 Citrix Cloud Services 帐户,请执行以下步骤:
- 在 Google Cloud 控制台中,导航至 IAM & Admin(IAM 和管理员)> Service accounts(服务帐户)。
- 在 Service accounts(服务帐户)页面上,选择 CREATE SERVICE ACCOUNT(创建服务帐户)。
- 在 Create service account(创建服务帐户)页面上,输入所需的信息,然后选择 CREATE AND CONTINUE(创建并继续)。
-
在 Grant this service account access to project(授予此服务帐户对项目的访问权限)页面上,单击 Select a role(选择角色)下拉菜单并选择所需的角色。如果要添加更多角色,请单击 +ADD ANOTHER ROLE(+添加其他角色)。
每个帐户(个人或服务)都具有定义项目管理的各种角色。向此服务帐户授予以下角色:
- 计算管理员
- 存储管理员
- Cloud Build 编辑者
- 服务帐户用户
- 云数据存储用户
- Cloud KMS 加密操作员
Cloud KMS 加密操作员需要以下权限:
- cloudkms.cryptoKeys.get
- cloudkms.cryptoKeys.list
- cloudkms.keyRings.get
- cloudkms.keyRings.list
注意:
在创建新的服务帐户时,请启用所有 API 以获取可用角色的完整列表。
- 单击继续
- 在 Grant users access to this service account(授予用户对此服务帐户的访问权限)页面上,添加用户或组以授予其在此服务帐户中执行操作的权限。
- 单击 DONE(完成)。
- 导航到 IAM 主控制台。
- 识别创建的服务帐户。
- 验证角色是否已成功分配。
注意事项:
创建服务帐户时,请注意以下事项:
- Grant this service account access to project(授予此服务帐户对项目的访问权限)和 Grant users access to this service account(授予用户对此服务帐户的访问权限)的步骤是可选的。如果选择跳过这些可选配置步骤,新创建的服务账号不会显示在 IAM & Admin(IAM 和管理) > IAM 页面中。
- 要显示与服务帐户关联的角色,请在不跳过可选步骤的情况下添加角色。此过程可确保为配置的服务帐户显示角色。
Citrix Cloud Services 帐户密钥
在 Citrix DaaS 中创建连接需要 Citrix Cloud Services 帐户密钥。密钥包含在凭据文件 (.json) 中。创建密钥后,文件会自动下载并保存到下载文件夹。创建密钥时,请务必将密钥类型设置为 JSON。否则,Citrix 的“完整配置”界面无法进行解析。
要创建服务帐户密钥,请导航到 IAM & Admin(IAM 和管理)> Service accounts(服务帐户),然后单击 Citrix Cloud Services 帐户的电子邮件地址。切换到 Keys(密钥)选项卡,然后选择 Add Key(添加密钥)> Create new key(创建新密钥)。请务必选择 JSON 作为密钥类型。
提示:
使用 Google Cloud 控制台中的 Service accounts(服务帐户)页面创建密钥。出于安全考虑,我们建议您定期更改密钥。通过编辑现有 Google Cloud 连接,可以向 Citrix Virtual Apps and Desktops 应用程序提供新密钥。
向 Citrix Cloud Services 帐户添加角色
要向 Citrix Cloud Services 帐户添加角色,请执行以下操作:
- 在 Google Cloud 控制台中,导航至 IAM & Admin(IAM 和管理员)> IAM。
-
在 IAM > PERMISSIONS(权限)页面上,找到您创建的服务帐户,该帐户可通过电子邮件地址进行识别。
例如,
<my-service-account>@<project-id>.iam.gserviceaccount.com
- 选择铅笔图标以编辑对服务帐户主体的访问权限。
- 在所选主体选项的 Edit access to “project-id”(编辑对 project-id 的访问权限)页面上,选择 ADD ANOTHER ROLE(添加另一个角色)将以下角色逐个添加到您的服务帐户,然后选择 SAVE(保存)。
向 Cloud Compute Service 帐户添加角色
要向 Cloud Compute Service 帐户添加角色,请执行以下操作:
- 在 Google Cloud 控制台中,导航至 IAM & Admin(IAM 和管理员)> IAM。
-
在 IAM 页面上,找到 Cloud Compute Service 帐户,该帐户可以使用以 Project ID(项目 ID)和 compute 一词开头的电子邮件地址进行识别。
例如,
<project-id>-compute@developer.gserviceaccount.com
- 选择铅笔图标以编辑 Cloud Build 帐户角色。
-
在所选主体选项的 Edit access to “project-id”(编辑对 project-id 的访问权限)页面上,选择 ADD ANOTHER ROLE(添加另一个角色)将所需的角色逐个添加到您的 Cloud Build Service 帐户,然后选择 SAVE(保存)。
注意:
启用所有 API 以获取完整的角色列表。
存储权限和存储桶管理
Citrix DaaS 改进了报告 Google Cloud 服务的云生成失败的过程。此服务在 Google Cloud 上运行生成过程。Citrix DaaS 会创建一个名为 citrix-mcs-cloud-build-logs-{region}-{5 random characters}
的存储桶,Google Cloud 服务将在其中捕获生成日志信息。在此存储桶上设置了一个选项,用于在 30 天后删除内容。此过程要求用于连接的服务帐户将 Google Cloud 权限设置为 storage.buckets.update
。如果服务帐户没有此权限,Citrix DaaS 将忽略错误并继续执行目录创建过程。如果没有此权限,生成日志的大小会增加,需要手动清理。
启用 Google 专用访问权限
当 VM 缺少分配给其网络接口的外部 IP 地址时,数据包仅发送到其他内部 IP 地址目标。启用专用访问时,VM 将连接到 Google API 和相关服务使用的外部 IP 地址集。
注意:
无论是否启用了专用 Google 访问权限,所有具有或没有公用 IP 地址的 VM 都必须能够访问 Google 公用 API,尤其是在环境中安装了第三方网络连接设备的情况下。
要确保子网中的 VM 能够在没有公用 IP 地址的情况下访问 Google API 以进行 MCS 预配,请执行以下操作:
- 在 Google Cloud 中,访问 VPC network configuration(VPC 网络配置)。
- 在“Subnet details”(子网详细信息)屏幕中,打开 Private Google access(Google 专用访问权限)。
有关详细信息,请参阅配置专用 Google 访问权限。
重要:
如果您的网络配置为阻止 VM 访问 Internet,请确保贵组织承担与启用 VM 所连接到的子网的专用 Google 访问权限相关的风险。
添加连接
请按照创建连接和资源中的指导进行操作。以下说明将指导您完成设置托管连接的过程:
-
在管理 > 配置中,选择左侧窗格中的托管。
-
在操作栏中选择添加连接和资源。
-
在连接页面上,选择创建新连接和 Citrix Provisioning 工具,然后选择下一步。
- 连接类型。从菜单中选择 Google Cloud。
- 连接名称。键入连接的名称。
-
在区域页面上,从菜单中选择项目名称,选择包含要使用的资源的区域,然后选择下一步。
-
在网络网络上,键入资源的名称,从菜单中选择虚拟网络,选择子集,然后选择下一步。资源名称可帮助您识别此区域和网络的组合。名称后面附加了 (Shared) 后缀的虚拟网络表示共享 VPC。如果您为共享 VPC 配置了子网级别的 IAM 角色,则子网列表中仅显示共享 VPC 的特定子网。
注意:
- 资源名称可以包含 1-64 个字符,不能仅包含空格或字符
\ / ; : # . * ? = < > | [ ] { } " ' ( ) ' )
。
- 资源名称可以包含 1-64 个字符,不能仅包含空格或字符
-
在摘要页面上,确认信息,然后选择完成退出添加连接和资源窗口。
创建连接和资源后,系统将列出您创建的连接和资源。要配置连接,请选择该连接,然后选择操作栏中的适用选项。
同样,可以删除、重命名或测试在连接下创建的资源。为此,请选择连接下的资源,然后选择操作栏中的适用选项。
准备主 VM 实例和永久磁盘
提示:
永久磁盘是虚拟磁盘的 Google Cloud 术语。
要准备主 VM 实例,请使用与您计划的计算机目录中克隆的 VDA 实例所需的配置匹配的属性创建和配置 VM 实例。配置不仅适用于实例大小和类型。它还包括实例属性,例如元数据、标记、GPU 分配、网络标记和服务帐户属性。
作为控制过程的一部分,MCS 使用您的主 VM 实例创建 Google Cloud 实例模板。然后,实例模板将用于创建组成计算机目录的克隆 VDA 实例。克隆的实例继承创建实例模板的所基于的主 VM 实例的属性(VPC、子网和永久磁盘属性除外)。
根据具体情况配置主 VM 实例的属性后,启动实例,然后为实例准备永久磁盘。
我们建议您手动创建磁盘的快照。这样做可以使用有意义的命名约定来跟踪版本,为您提供更多选项来管理早期版本的主映像,并节省创建计算机目录的时间。如果您不创建自己的快照,MCS 会为您创建一个临时快照(在预配过程结束时删除该快照)。
创建计算机目录
注意:
请在创建计算机目录之前创建您的资源。配置计算机目录时,请使用 Google Cloud 建立的命名约定。有关详细信息,请参阅存储桶和对象命名指南。
请按照创建计算机目录中的指导进行操作。下面的说明是 Google Cloud 目录独有的。
-
登录 Web Studio 并在左侧窗格中选择计算机目录。
-
然后在操作栏中选择创建计算机目录。
-
在操作系统页面上,选择多会话操作系统,然后选择下一步。
- Citrix Virtual Apps and Desktops 还支持单会话操作系统。
-
在计算机管理页面上,选择进行电源管理的计算机和 Citrix Machine Creation Services 选项,然后选择下一步。如果有多种资源,请从菜单中选择一种资源。
-
在主映像页面上,为目录选择 VM 和最低功能级别,然后选择下一步。如果要使用唯一租赁功能,请务必选择已正确配置节点组属性的映像。请参阅启用区域选择。
-
在存储类型页面上,选择用于容纳此计算机目录的操作系统的存储类型。下面每种存储方案都有独特的价格和性能特征。(身份磁盘始终使用区域标准永久磁盘创建。)
- 标准永久磁盘
- 平衡的永久磁盘
- SSD 永久磁盘
有关 Google Cloud 存储选项的详细信息,请参阅 https://cloud.google.com/compute/docs/disks/。
-
在虚拟机页面上,指定要创建的 VM 数量,查看 VM 的详细规范,然后选择下一步。如果将唯一租户节点组用于计算机目录,请确保仅选择预留的唯一租户节点可用的区域。请参阅启用区域选择。
-
在计算机帐户页面上,选择一个 Active Directory 帐户,然后选择下一步。
- 如果选择创建新的 Active Directory 帐户,请选择一个域,然后输入表示在 Active Directory 中创建的已预配的 VM 计算机帐户的命名方案的字符序列。帐户命名方案可以包含 1-64 个字符,不能包含空格,也不能包含非 ASCII 字符或特殊字符。
- 如果选择使用现有的 Active Directory 帐户,请选择浏览以导航到所选计算机的现有 Active Directory 计算机帐户。
-
在域凭据页面上,选择输入凭据,键入用户名和密码,选择保存,然后选择下一步。
- 键入的凭据必须具有执行 Active Directory 帐户操作的权限。
-
在摘要页面上,确认信息,指定目录的名称,然后选择完成。
注意:
目录名称可以包含 1-39 个字符,不能仅包含空格或字符
\ / ; : # . * ? = < > | [ ] { } " ' ( ) ' )
。
完成计算机目录创建可能需要很长时间。要验证计算机是否在目标节点组上创建,请转至 Google Cloud 控制台。
使用计算机配置文件创建计算机目录
创建目录以使用 Machine Creation Services (MCS) 预配计算机时,可以使用计算机配置文件从虚拟机捕获硬件属性并将其应用到目录中新预配的 VM。不使用 MachineProfile
参数时,将从主映像 VM 或快照中捕获硬件属性。
您明确定义的某些属性(例如 StorageType
、CatalogZones
和 CryptoKeyIs
)在计算机配置文件中会被忽略。
- 要使用计算机配置文件创建目录,请使用
New-ProvScheme
命令。例如,New-ProvScheme –MachineProfile "path to VM"
。如果未指定MachineProfile
参数,则从主映像 VM 捕获硬件属性。 - 要使用新的计算机配置文件更新目录,请使用
Set-ProvScheme
命令。例如,Set-ProvScheme –MachineProfile "path to new VM"
。此命令不会更改目录中现有 VM 的计算机配置文件。只有添加到目录中的新创建的 VM 才具有新的计算机配置文件。 - 您也可以更新主映像,但是,更新主映像时,不会更新硬件属性。如果要更新硬件属性,则必须使用
Set-ProvScheme
命令更新计算机配置文件。这些更改仅适用于目录中的新计算机。要更新现有计算机的硬件属性,可以使用Request-ProvVMUpdate
命令。
使用计算机配置文件作为实例模板创建计算机目录
您可以选择 GCP 实例模板作为计算机配置文件的输入。实例模板是 GCP 中的轻型资源,因此非常经济实惠。
要通过 PowerShell 命令使用计算机配置文件作为实例模板创建新的计算机目录,请执行以下操作:
- 打开 PowerShell 窗口。
- 运行
asnp citrix*
以加载 Citrix 特定的 PowerShell 模块。 -
使用以下命令在 GCP 项目中查找实例模板:
cd XDHyp:\HostingUnits<HostingUnitName>\instanceTemplates.folder <!--NeedCopy-->
-
通过 NewProvScheme 命令使用计算机配置文件作为实例模板创建新的计算机目录:
New-ProvScheme -ProvisioningSchemeName <CatalogName> -HostingUnitName <HostingUnitName> -IdentityPoolName <identity pool name> -MasterImageVM XDHyp:\HostingUnits<HostingUnitName> \Base.vm\Base.snapshot -MachineProfile XDHyp:\HostingUnits<HostingUnitName>\instanceTemplates.folder\mytemplate.template <!--NeedCopy-->
有关 New-ProvScheme 命令的详细信息,请参阅 https://developer-docs.citrix.com/projects/citrix-daas-sdk/en/latest/MachineCreation/New-ProvScheme/。
- 使用 PowerShell 命令完成计算机目录的创建。有关如何使用 Remote PowerShell SDK 创建目录的信息,请参阅 https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/。
要将现有计算机目录的计算机配置文件更改为实例模板,请执行以下操作:
- 打开 PowerShell 窗口。
- 运行
asnp citrix*
以加载 Citrix 特定的 PowerShell 模块。 -
运行以下命令:
Set-ProvScheme -ProvisioningSchemeName <CatalogName> -MachineProfile XDHyp:\HostingUnits<HostingUnitName>\instanceTemplates.folder<TemplateName>.template <!--NeedCopy-->
有关 Set-ProvScheme 命令的信息,请参阅 https://developer-docs.citrix.com/projects/citrix-daas-sdk/en/latest/MachineCreation/Set-ProvScheme/。
管理计算机目录
要将计算机添加到目录、更新计算机和回滚更新,请参阅管理计算机目录。
电源管理
Citrix DaaS 允许您对 Google Cloud 计算机进行电源管理。使用左侧窗格中的搜索节点查找要进行电源管理的计算机。以下电源操作可用:
- 删除
- 启动
- 重新启动
- 强制重新启动
- 关闭
- 强制关闭
- 添加到交付组
- 管理标记
- 打开维护模式
还可以使用 AutoScale 来管理 Google Cloud 计算机的电源。为此,请将 Google Cloud 计算机添加到交付组,然后为该交付组启用 AutoScale。有关 AutoScale 的详细信息,请参阅 Autoscale。
使用 PowerShell 更新已预配的计算机
Set-ProvScheme
命令更改了预配方案。但是,它不会影响现有计算机。现在,您可以使用 PowerShell 命令 Request-ProvVMUpdate
命令将当前的预配方案应用到现有的永久性计算机或非永久性计算机或者一组计算机。目前,在 GCP 中,此功能支持的属性更新是计算机配置文件。
可以更新以下对象:
- 单个 VM
- 与预配方案 ID 关联的特定 VM 或所有现有 VM 的列表
- 与预配方案名称关联的特定 VM 或所有现有 VM 的列表
要更新现有 VM,请执行以下操作:
-
检查现有计算机的配置。例如,
Get-ProvScheme | select ProvisioningSchemeName, ProvisioningSchemeVersion <!--NeedCopy-->
-
更新预配方案。例如,
`Set-ProvScheme –ProvisioningSchemeName "my-catalog" –MachineProfile "XDHyp:\HostingUnits<hosting-unit>\machineprofileinstance.vm" <!--NeedCopy-->
-
检查 VM 的当前属性是否与当前的预配方案相匹配,以及 VM 上是否有任何待处理的更新操作。例如,
Get-ProvVM | select VMName, ProvisioningSchemeUpdateRequested, ProvisioningSchemeVersion <!--NeedCopy-->
还可以查找具有特定版本的计算机。例如,
Get-ProvVM -Filter "ProvisioningSchemeVersion -eq 1" | select VMName, ProvisioningSchemeVersion <!--NeedCopy-->
- 更新现有计算机。
-
要更新所有现有计算机,请执行以下操作:
Request-ProvVMUpdate –ProvisioningSchemeName "my-catalog" <!--NeedCopy-->
-
要更新特定计算机的列表,请执行以下操作:
Request-ProvVMUpdate -ProvisioningSchemeName "my-catalog" -VMName "vm1","vm2" <!--NeedCopy-->
-
要根据
Get-ProvVM
的输出更新计算机,请执行以下操作:Get-ProvVM -ProvisioningSchemeName "my-catalog" | Request-ProvVMUpdate <!--NeedCopy-->
-
-
查找已安排更新的计算机。例如,
Get-ProvVM -Filter "ProvisioningSchemeUpdateAfter" | select VMName, ProvisioningSchemeUpdateAfter <!--NeedCopy-->
-
请重新启动计算机。下次启动时,属性更改将应用到现有计算机。可以使用以下命令检查更新后的状态:
Get-ProvVM | select VMName, ProvisioningSchemeUpdateRequested, ProvisioningSchemeVersion <!--NeedCopy-->
防止意外删除计算机
借助 Citrix DaaS,您可以保护 Google Cloud 上的 MCS 资源,以防止意外删除。请通过将 deletionProtection
标志设置为 TRUE 来配置已预配的 VM。
默认情况下,通过 MCS 或 Google Cloud 插件预配的 VM 是在启用了 InstanceProtection 的情况下创建的。该实现既适用于持久性目录,也适用于非持久性目录。从模板重新创建实例时,将更新非持久性目录。对于现有的持久性计算机,您可以在 Google Cloud 控制台中设置标志。有关设置标志的详细信息,请参阅 Google 文档站点。添加到持久性目录的新计算机在创建时已启用 deletionProtection
。
如果您尝试删除已设置 deletionProtection
标志的 VM 实例,请求将失败。但是,如果您被授予了权限 compute.instances.setDeletionProtection
或分配了 IAM 计算管理员角色,则可以重置该标志以允许删除资源。
导入手动创建的 Google Cloud 计算机
您可以创建与 Google Cloud 的连接,然后创建一个包含 Google Cloud 计算机的目录。然后,可以通过 Citrix DaaS 手动关闭并打开 Google Cloud 计算机的电源。使用此功能,您可以:
- 将手动创建的 Google Cloud 多会话操作系统计算机导入到 Citrix Virtual Apps and Desktops 计算机目录中。
- 从 Citrix Virtual Apps and Desktops 目录中删除手动创建的 Google Cloud 多会话操作系统计算机。
- 使用现有的 Citrix Virtual Apps and Desktops 电源管理功能对 Google Cloud Windows 多会话操作系统计算机进行电源管理。例如,为这些计算机设置重新启动计划。
此功能不需要更改现有的 Citrix Virtual Apps and Desktops 预配工作流程,也不需要删除任何现有功能。我们建议您使用 MCS 在 Citrix DaaS 的“完整配置”界面中预配计算机,而非导入手动创建的 Google Cloud 计算机。
共享虚拟私有云
共享虚拟私有云 (VPC) 包括一个主机项目(可以从中使用共享子网)以及一个或多个使用该资源的服务项目。共享 VPC 是较大型安装的理想选项,因为它们可以集中控制、使用和管理共享的企业 Google Cloud 资源。有关详细信息,请参阅 Google 文档站点。
使用此功能,Machine Creation Services (MCS) 可以支持预配和管理部署到共享 VPC 的计算机目录。这种支持在功能上等同于当前在本地 VPC 中提供的支持,在两个方面有所差别:
- 必须向用于创建主机连接的服务帐户授予额外的权限。此过程允许 MCS 访问和使用共享 VPC 资源。
- 必须创建两条防火墙规则,每条规则分别用于入口和出口。这些防火墙规则将在映像控制过程中使用。
需要新权限
创建主机连接时,需要具有特定权限的 Google Cloud Service 帐户。必须向用于创建基于共享 VPC 的主机连接的任何服务帐户授予这些额外的权限。
提示:
这些额外的权限对于 Citrix DaaS 来说并不陌生。它们用来促进本地 VPC 的实施。对于共享 VPC,这些额外的权限允许访问其他共享 VPC 资源。
为了支持共享 VPC,必须向与主机连接关联的服务帐户授予最多四个额外权限:
- compute.firewalls.list - 此权限是强制性的。它允许 MCS 检索共享 VPC 上存在的防火墙规则的列表。
- compute.networks.list - 此权限是强制性的。它允许 MCS 识别服务帐户可用的共享 VPC 网络。
- compute.subnetworks.list - 此权限是可选的,具体取决于您使用 VPC 的方式。它允许 MCS 识别可见的共享 VPC 中的子网。使用本地 VPC 时已需要此权限,但也必须在共享 VPC 主机项目中进行分配。
- compute.subnetworks.use - 此权限是可选的,具体取决于您使用 VPC 的方式。必须在预配的计算机目录中使用子网资源。使用本地 VPC 已需要此权限,但也必须在共享 VPC 主机项目中进行分配。
使用这些权限时,请考虑根据用于创建计算机目录的权限类型有不同的方法:
- 项目级别权限:
- 允许访问主机项目中的所有共享 VPC。
- 要求权限 #3 和 #4 必须分配给服务帐户。
- 子网级别权限:
- 允许访问共享 VPC 中的特定子网。
- 权限 #3 和 #4 是子网级别分配所固有的,因此无需直接分配给服务帐户。
请选择符合贵组织需求和安全标准的方式。
提示:
有关项目级别权限和子网级别权限之间的差异的详细信息,请参阅 Google Cloud 文档。
防火墙规则
在准备计算机目录期间,将准备计算机映像作为目录的主映像系统磁盘。发生此过程时,磁盘将临时连接到虚拟机。此 VM 必须在隔离的环境中运行,以阻止所有入站和出站网络流量。这是通过一对 deny-all 防火墙规则实现的:一条规则用于入口流量,一条规则用于出口流量。使用 Google Cloud 本地 VCP 时,MCS 会在本地网络中创建此防火墙,并将其应用到计算机以进行控制。控制操作完成后,将从映像中删除防火墙规则。
我们建议您将使用共享 VPC 所需的新权限的数量保持在最低限度。共享 VPC 是更高级别的企业资源,通常具有更严格的安全协议。因此,在共享 VPC 资源的主机项目中创建一对防火墙规则,一条用于入口,一条用于出口。请为其分配最高优先级。使用以下值将新目标标记应用到这些规则中的每一个规则:
citrix-provisioning-quarantine-firewall
创建或更新计算机目录时,MCS 会搜索包含此目标标记的防火墙规则。然后,它会检查规则的正确性,并将其应用到用于准备目录的主映像的计算机。如果未找到防火墙规则,或者找到规则,但规则或其优先级不正确,则会出现类似以下内容的消息:
"Unable to find valid INGRESS and EGRESS quarantine firewall rules for VPC <name> in project <project>. " Please ensure you have created 'deny all' firewall rules with the network tag 'citrix-provisioning-quarantine-firewall' and proper priority." "Refer to Citrix Documentation for details."
配置共享 VPC
在 Citrix DaaS 的“完整配置”界面中添加共享 VPC 作为主机连接之前,请完成以下步骤,以将您计划预配的项目中的服务帐户添加到:
- 创建 IAM 角色。
- 将用于创建 CVAD 主机连接的服务帐户添加到共享 VPC 主机项目 IAM 角色。
- 将要预配到项目中的 Cloud Build Service 帐户添加到共享 VPC 主机项目 IAM 角色。
- 创建防火墙规则。
创建 IAM 角色
确定角色的访问级别 - 项目级别的访问权限或使用子网级别的访问权限的限制更严格的模型。
IAM 角色的项目级别的访问权限。对于项目级别的 IAM 角色,包括以下权限:
- compute.firewalls.list
- compute.networks.list
- compute.subnetworks.list
- compute.subnetworks.use
要创建项目级别的 IAM 角色,请执行以下操作:
- 在 Google Cloud 控制台中,导航至 IAM & Admin(IAM 和管理员)> Roles(角色)。
- 在角色页面上,选择创建角色。
- 在 Create Role(创建角色)页面上,指定角色名称。选择添加权限。
- 在 Add permissions(添加权限)页面上,单独向角色添加权限。要添加权限,请在筛选器表字段中键入权限的名称。选择权限,然后选择添加。
- 选择创建。
子网级别的 IAM 角色。此角色将在选择 CREATE ROLE(创建角色)后省略添加权限 compute.subnetworks.list
和 compute.subnetworks.use
。对于此 IAM 访问级别,权限 compute.firewalls.list
和 compute.networks.list
必须应用到新角色。
要创建子网级别的 IAM 角色,请执行以下操作:
- 在 Google Cloud 控制台中,导航到 VPC network(VPC 网络)> Shared VPC(共享 VPC)。此时将显示 Shared VPC(共享 VPC)页面,其中显示主机项目所包含的共享 VPC 网络的子网。
- 在 Shared VPC(共享 VPC)页面上,选择要访问的子网。
- 在右上角,选择 ADD MEMBER(添加成员)以添加服务帐户。
- 在 Add members(添加成员)页面上,完成以下步骤:
- 在 New members(新成员)字段中,键入服务帐户的名称,然后在菜单中选择您的服务帐户。
- 选择 Select a role(选择角色)字段,然后单击 Compute Network User(计算网络用户)。
- 选择保存。
- 在 Google Cloud 控制台中,导航至 IAM & Admin(IAM 和管理员)> Roles(角色)。
- 在角色页面上,选择创建角色。
- 在 Create Role(创建角色)页面上,指定角色名称。选择添加权限。
- 在 Add permissions(添加权限)页面上,单独向角色添加权限。要添加权限,请在筛选器表字段中键入权限的名称。选择权限,然后选择添加。
- 选择创建。
将服务帐户添加到主机项目 IAM 角色
创建 IAM 角色后,请执行以下步骤以便为主机项目添加服务帐户:
- 在 Google Cloud 控制台中,导航到主机项目,然后导航到 IAM & Admin(IAM 和管理员)> IAM。
- 在 IAM 页面上,选择 ADD(添加)以添加服务帐户。
- 在 Add members(添加成员)页面上:
- 在 New members(新成员)字段中,键入服务帐户的名称,然后在菜单中选择您的服务帐户。
- 选择一个角色字段,键入您创建的 IAM 角色,然后选择菜单中的角色。
- 选择保存。
现在已为主机项目配置服务帐户。
将 Cloud Build Service 帐户添加到共享 VPC
每个 Google Cloud 订阅都有一个服务帐户,该帐户以项目 ID 号命名,后跟 cloudbuild.gserviceaccount
。例如:705794712345@cloudbuild.gserviceaccount
。
您可以通过在 Google Cloud 控制台中选择 Home(主页)和 Dashboard(控制板)来确定项目的项目 ID 编号:
在屏幕的 Project Info(项目信息)区域下查找 Project Number(项目编号)。
请执行以下步骤以将 Cloud Build Service 帐户添加到共享 VPC:
- 在 Google Cloud 控制台中,导航到主机项目,然后导航到 IAM & Admin(IAM 和管理员)> IAM。
- 在 Permissions(权限)页面上,选择 ADD(添加)以添加帐户。
- 在 Add members(添加成员)页面上,完成以下步骤:
- 在 New members(新成员)字段中,键入 Cloud Build Service 帐户的名称,然后在菜单中选择您的服务帐户。
- 选择选择角色字段,键入
Computer Network User
,然后在菜单中选择角色。 - 选择保存。
创建防火墙规则
作为映像控制过程的一部分,MCS 会复制选定的计算机映像,并使用该映像为目录准备主映像系统磁盘。在映像控制过程中,MCS 将磁盘附加到临时虚拟机,然后该虚拟机将运行准备脚本。此 VM 必须在隔离的环境中运行,以禁止所有入站和出站网络流量。要创建隔离环境,MCS 需要两个 deny all(全部拒绝)防火墙规则(入口规则和出口规则)。因此,请在 Host Project(主机项目)中创建两个防火墙规则,如下所示:
- 在 Google Cloud 控制台中,导航到主机项目,然后导航到 VPC network(VPX 网络)> Firewall(防火墙)。
- 在 Firewall(防火墙)页面上,选择 CREATE FIREWALL RULE(创建防火墙规则)。
- 在 Create a firewall rule(创建防火墙规则)页面上,完成以下操作:
- 名称。键入规则的名称。
- Network(网络)。选择入口防火墙规则应用到的共享 VPC 网络。
- Priority(优先级)。值越小,规则的优先级就越高。我们建议使用较小的值(例如 10)。
- Direction of traffic(流量方向)。选择 Ingress(入口)。
- Action on match(针对匹配项的操作)。选择 Deny(拒绝)。
- Targets(目标)。使用默认的 Specified target tags(指定的目标标记)。
-
Target tags(目标标记)。键入
citrix-provisioning-quarantine-firewall
。 - Source filter(源筛选器)。使用默认的 IP ranges(IP 范围)。
-
Source IP ranges(源 IP 范围)。键入匹配所有流量的范围。键入
0.0.0.0/0
。 - Protocols and ports(协议和端口)。选择 Deny all(全部拒绝)。
- 选择创建以创建规则。
- 重复步骤 1-4 以创建另一个规则。对于 Direction of traffic(流量方向),请选择 Egress(出口)。
添加连接
添加与 Google Cloud 环境的连接。请参阅添加连接。
启用区域选择
Citrix Virtual Apps and Desktops 支持区域选择。通过区域选择,您可以指定要在其中创建 VM 的区域。通过区域选择,管理员可以在其选择的区域之间放置唯一租户节点。必须在 Google Cloud 上完成以下操作,才能配置唯一租赁:
- 保留 Google Cloud 唯一租户节点
- 创建 VDA 主映像
保留 Google Cloud 唯一租户节点
要预留唯一租户节点,请参阅 Google Cloud 文档。
重要:
节点模板用于指示节点组中预留的系统的性能特征。这些特征包括 vGPU 的数量、分配给节点的内存量以及用于在节点上创建的计算机的计算机类型。有关详细信息,请参阅 Google Cloud 文档。
创建 VDA 主映像
要在唯一租户节点上成功部署计算机,您需要在创建主 VM 映像时执行额外的步骤。Google Cloud 上的计算机实例具有名为节点关联性标签的属性。用作部署到唯一租户节点的目录的主映像的实例需要一个与目标节点组名称匹配的节点关联性标签。为实现这一目标,请记住以下几点:
- 对于新实例,请在创建实例时在 Google Cloud 控制台中设置标签。有关详细信息,请参阅创建实例时设置节点关联性标签。
- 对于现有实例,请使用 gcloud 命令行设置标签。有关详细信息,请参阅为现有实例设置节点关联性标签。
注意:
如果您打算将唯一租赁与共享 VPC 结合使用,请参阅共享虚拟私有云。
创建实例时设置节点关联性标签
要设置节点关联性标签,请执行以下操作:
-
在 Google Cloud 控制台中,导航到 Compute Engine(计算引擎)> VM instances(VM 实例)。
-
在 VM instances(VM 实例)页面上,选择 Create instance(创建实例)。
-
在 Instance creation(实例创建)页面上,键入或配置所需的信息,然后选择 management, security, disks, networking, sole tenancy(管理、安全性、磁盘、网络连接、唯一租户)以打开设置面板。
-
在 Sole tenancy(唯一租赁)选项卡上,选择 Browse(浏览)以查看当前项目中的可用节点组。此时将显示 Sole-tenant node(唯一租户节点)页面,其中显示可用节点组的列表。
-
在 Sole-tenant node(唯一租户节点)页面上,从列表中选择适用的节点组,然后选择 Select(选择)以返回到 Sole tenancy(唯一租赁)选项卡。节点关联性标签字段将使用您选择的信息进行填充。此设置可确保从实例创建的计算机目录将部署到选定的节点组。
-
选择创建以创建实例。
为现有实例设置节点关联性标签
要设置节点关联性标签,请执行以下操作:
-
在 Google Cloud Shell 终端窗口中,使用 gcloud compute instances 命令设置节点关联性标签。在 gcloud 命令中包含以下信息:
-
VM 的名称。例如,使用名为
s*2019-vda-base
的现有 VM。* -
节点组的名称。使用之前创建的节点组名称。例如,
mh-sole-tenant-node-group-1
。 -
实例所在的区域。例如,VM 位于
*us-east-1b* zone
中。
例如,在终端窗口中键入以下命令:
gcloud compute instances set-scheduling "s2019-vda-base" --node-group="mh-sole-tenant-node-group-1" --zone="us-east1-b"
有关 gcloud compute instances 命令的详细信息,请参阅 Google 开发人员工具文档,网址为 https://cloud.google.com/sdk/gcloud/reference/beta/compute/instances/set-scheduling。
-
VM 的名称。例如,使用名为
-
导航到实例的 VM instance details(VM 实例详细信息)页面,并验证 Node Affinities(节点关联)字段是否填充了标签。
创建计算机目录
设置节点关联性标签后,配置计算机目录。
预览版:使用客户管理的加密密钥 (CMEK)
可以将客户管理的加密密钥 (CMEK) 用于 MCS 目录。使用此功能时,您将 Google Cloud Key Management Service CryptoKey Encrypter/Decrypter
角色分配给 Compute Engine Service Agent。Citrix DaaS 帐户在存储密钥的项目中必须具有正确的权限。有关详细信息,请参阅使用 Cloud KMS 密钥帮助保护资源。
您的 Compute Engine Service Agent 的格式如下:service-<Project _Number>@compute-system.iam.gserviceaccount.com
。此表单与默认的 Compute Engine Service 帐户不同。
注意:
此 Compute Engine Service 帐户可能不会显示在 Google 控制台 IAM 权限显示屏中。在这种情况下,请按照使用 Cloud KMS 密钥帮助保护资源中所述使用
gcloud
命令。
向 Citrix DaaS 帐户分配权限
Google Cloud KMS 权限可以通过多种方式进行配置。可以提供项目级 KMS 权限或资源级 KMS 权限。有关详细信息,请参阅权限和角色。
项目级权限
一种选择是向 Citrix DaaS 帐户提供项目级权限以浏览 Cloud KMS 资源。为此,请创建一个自定义角色,然后添加以下权限:
cloudkms.keyRings.list
cloudkms.keyRings.get
cloudkms.cryptokeys.list
cloudkms.cryptokeys.get
将此自定义角色分配给 Citrix DaaS 帐户。这允许您浏览清单中相关项目中的区域密钥。
资源级权限
对于另一个选项(资源级权限),请在 Google Cloud 控制台中浏览到用于 MCS 预配的 cryptoKey
。将 Citrix DaaS 帐户添加到您用于目录预配的密钥链或密钥中。
提示:
使用此选项,您无法浏览清单中的项目的区域密钥,因为 Citrix DaaS 帐户对 Cloud KMS 资源没有项目级列表权限。但是,您仍可以通过在
ProvScheme
自定义属性中指定正确的cryptoKeyId
使用 CMEK 来预配目录,如下所述。
使用自定义属性通过 CMEK 进行预配
通过 PowerShell 创建预配方案时,请在 ProvScheme CustomProperties
中指定 CryptoKeyId
属性。例如:
'<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Property xsi:type="StringProperty" Name="CryptoKeyId" Value="<yourCryptoKeyId>" />
</CustomProperties>'
<!--NeedCopy-->
必须按以下格式指定 cryptoKeyId
:
projectId:location:keyRingName:cryptoKeyName
例如,如果您想在区域 us-east1
和 ID 为 my-example-project-1
的项目中的密钥链 my-example-key-ring
中使用密钥 my-example-key
,您的 ProvScheme
自定义设置将类似于:
'<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Property xsi:type="StringProperty" Name="CryptoKeyId" Value="my-example-project-1:us-east1:my-example-key-ring:my-example-key" />
</CustomProperties>'
<!--NeedCopy-->
与此预配方案相关的所有 MCS 预配磁盘和映像都使用此客户管理的加密密钥。
提示:
如果使用全局密钥,客户属性位置必须指出
global
而非区域名称,在上面的示例中为 us-east1。例如:<Property xsi:type="StringProperty" Name="CryptoKeyId" Value="my-example-project-1:global:my-example-key-ring:my-example-key" />
。
轮换客户管理的密钥
Google Cloud 不支持在现有的永久磁盘或映像中轮换密钥。一旦计算机预配完毕,它将与创建时使用的密钥版本绑定在一起。但是,可以创建密钥的新版本,新密钥用于在使用新主映像更新目录时创建的新预配的计算机或资源。
关于密钥链的重要注意事项
无法重命名或删除密钥链。此外,对其进行配置时可能会产生不可预见的费用。删除或移除密钥链时,Google Cloud 会显示一条错误消息:
Sorry, you can't delete or rename keys or key rings. We were concerned about the security implications of allowing multiple keys or key versions over time to have the same resource name, so we decided to make names immutable. (And you can't delete them, because we wouldn't be able to do a true deletion--there would still have to be a tombstone tracking that this name had been used and couldn't be reused).
We're aware that this can make things untidy, but we have no immediate plans to change this.
If you want to avoid getting billed for a key or otherwise make it unavailable, you can do so by deleting all the key versions; neither keys nor key rings are billed for, just the active key versions within the keys.
<!--NeedCopy-->
提示:
有关详细信息,请参阅从控制台编辑或删除密钥链。
统一存储桶级别访问兼容性
Citrix DaaS 与 Google Cloud 上的统一存储桶级别访问控制策略兼容。此功能增强了 IAM 策略的使用,该策略向服务帐户授予权限,以允许操作资源,包括存储桶。通过统一存储桶级别访问控制,Citrix DaaS 允许您使用访问控制列表 (ACL) 来控制对存储桶或存储在其中的对象的访问。有关 Google 云端平台统一存储桶级别访问的概述信息,请参阅统一存储桶级别访问。有关配置信息,请参阅要求统一存储桶级别访问。
Google Cloud Marketplace
可以在 Google Cloud Marketplace 上浏览和选择 Citrix 提供的映像来创建计算机目录。目前,MCS 仅支持面向此功能的计算机配置文件工作流程。
要通过 Google Cloud Marketplace 搜索 Citrix VDA VM 产品,请转至 https://console.cloud.google.com/marketplace。
可以使用自定义映像或 Google Cloud Marketplace 上的 Citrix Ready 映像来更新计算机目录的映像。
注意:
如果计算机配置文件不包含存储类型信息,则该值来自自定义属性。
支持的 Google Cloud Marketplace 映像如下:
- Windows 2019 单会话
- Windows 2019 多会话
- Ubuntu
使用 Citrix Ready 映像作为创建计算机目录的源示例:
New-ProvScheme -ProvisioningSchemeName GCPCatalog \
-HostingUnitName GcpHu -IdentityPoolName gcpPool -CleanOnBoot \
-MasterImageVM XDHyp:\HostingUnits\GcpHu\images.folder\citrix-daas-win2019-single-vda-v20220819.publicimage \
-MachineProfile XDHyp:\HostingUnits\GcpHu\Base.vm
<!--NeedCopy-->
服务端点 URL
您必须有权访问以下 URL:
https://oauth2.googleapis.com
https://cloudresourcemanager.googleapis.com
https://compute.googleapis.com
https://storage.googleapis.com
https://cloudbuild.googleapis.com
Google Cloud 项目
Google Cloud 项目基本上有两种类型:
- 预配项目:在这种情况下,当前管理员帐户拥有项目中已预配的计算机。此项目也称为本地项目。
- 共享 VPC 项目: 在预配项目中创建的计算机使用共享 VPC 项目中的 VPC 的项目。用于预配项目的管理员帐户在此项目中的权限有限,具体而言,只有使用 VPC 的权限。
所需的 GCP 权限
本部分包含 GCP 权限的完整列表。使用本部分中给出的完整权限集以使该功能正常运行。
注意:
GCP 将在 2024 年 4 月 29 日之后引入对 Cloud Build Service 的默认行为和服务帐户的使用所做的更改。有关详细信息,请参阅 Cloud Build Service 帐户变更。在 2024 年 4 月 29 日之前启用了 Cloud Build API 的现有 Google 项目不受此变更的影响。但是,如果您希望在 4 月 29 日之后保持现有的 Cloud Build Service 行为,则可以在启用 API 之前创建或应用组织政策以禁用强制约束。如果您设置了新的组织政策,则仍然可以遵循本部分中的现有权限以及标有在 Cloud Build Service 帐户变更之前的项目。否则,请遵循现有权限以及标有在 Cloud Build Service 帐户变更之后的项目。
创建主机连接
-
预配项目中的 Citrix Cloud Services 帐户所需的最低权限:
compute.instanceTemplates.list compute.instances.list compute.networks.list compute.projects.get compute.regions.list compute.subnetworks.list compute.zones.list resourcemanager.projects.get <!--NeedCopy-->
下列 Google 定义的角色具有上面列出的权限:
- 计算管理员
- 云数据存储用户
-
共享 VPC 项目中 Citrix Cloud Services 帐户的共享 VPC 所需的额外权限:
compute.networks.list compute.subnetworks.list resourcemanager.projects.get <!--NeedCopy-->
下列 Google 定义的角色具有上面列出的权限:
- 计算网络用户
VM 的电源管理
如果是仅限电源管理的目录,则预配项目中的 Citrix Cloud Services 帐户所需的最低权限如下:
compute.instanceTemplates.list
compute.instances.list
compute.instances.get
compute.instances.reset
compute.instances.resume
compute.instances.start
compute.instances.stop
compute.instances.suspend
compute.networks.list
compute.projects.get
compute.regions.list
compute.subnetworks.list
compute.zones.list
resourcemanager.projects.get
compute.zoneOperations.get
<!--NeedCopy-->
下列 Google 定义的角色具有上面列出的权限:
- 计算管理员
- 云数据存储用户
创建、更新或删除 VM
-
预配项目中的 Citrix Cloud Services 帐户所需的最低权限:
cloudbuild.builds.create cloudbuild.builds.get cloudbuild.builds.list compute.acceleratorTypes.list compute.diskTypes.get compute.diskTypes.list compute.disks.create compute.disks.createSnapshot compute.disks.delete compute.disks.get compute.disks.list compute.disks.setLabels compute.disks.use compute.disks.useReadOnly compute.firewalls.create compute.firewalls.delete compute.firewalls.list compute.globalOperations.get compute.images.create compute.images.delete compute.images.get compute.images.list compute.images.setLabels compute.images.useReadOnly compute.instanceTemplates.create compute.instanceTemplates.delete compute.instanceTemplates.get compute.instanceTemplates.list compute.instanceTemplates.useReadOnly compute.instances.attachDisk compute.instances.create compute.instances.delete compute.instances.detachDisk compute.instances.get compute.instances.list compute.instances.reset compute.instances.resume compute.instances.setDeletionProtection compute.instances.setLabels compute.instances.setMetadata compute.instances.setServiceAccount compute.instances.setTags compute.instances.start compute.instances.stop compute.instances.suspend compute.machineTypes.get compute.machineTypes.list compute.networks.list compute.networks.updatePolicy compute.nodeGroups.list compute.nodeTemplates.get compute.projects.get compute.regions.list compute.snapshots.create compute.snapshots.delete compute.snapshots.list compute.snapshots.get compute.snapshots.setLabels compute.snapshots.useReadOnly compute.subnetworks.get compute.subnetworks.list compute.subnetworks.use compute.zoneOperations.get compute.zoneOperations.list compute.zones.get compute.zones.list iam.serviceAccounts.actAs resourcemanager.projects.get storage.buckets.create storage.buckets.delete storage.buckets.get storage.buckets.list storage.buckets.update storage.objects.create storage.objects.delete storage.objects.get storage.objects.list compute.networks.get compute.resourcePolicies.use <!--NeedCopy-->
下列 Google 定义的角色具有上面列出的权限:
- 计算管理员
- 存储管理员
- Cloud Build 编辑者
- 服务帐户用户
- 云数据存储用户
-
共享 VPC 项目中的 Citrix Cloud Services 帐户的共享 VPC 需要额外的权限,才能使用共享 VPC 项目中的 VPC 和子网创建托管单元:
compute.firewalls.list compute.networks.list compute.projects.get compute.regions.list compute.subnetworks.get compute.subnetworks.list compute.subnetworks.use compute.zones.list resourcemanager.projects.get <!--NeedCopy-->
下列 Google 定义的角色具有上面列出的权限:
- 计算网络用户
- 云数据存储用户
-
(在 Cloud Build Service 帐户变更之前):将准备说明磁盘下载到 MCS 时,Google Cloud Build Service 要求的预配项目中的 Cloud Build Service 帐户所需的最低权限:
-
(在 Cloud Build Service 帐户变更之后):将准备说明磁盘下载到 MCS 时,Google Cloud Compute Service 要求的预配项目中的 Cloud Compute Service 帐户所需的最低权限:
compute.disks.create compute.disks.delete compute.disks.get compute.disks.list compute.disks.setLabels compute.disks.use compute.disks.useReadOnly compute.images.get compute.images.list compute.images.useReadOnly compute.instances.create compute.instances.delete compute.instances.get compute.instances.getSerialPortOutput compute.instances.list compute.instances.setLabels compute.instances.setMetadata compute.instances.setServiceAccount compute.machineTypes.list compute.networks.get compute.networks.list compute.projects.get compute.subnetworks.list compute.subnetworks.use compute.subnetworks.useExternalIp compute.zoneOperations.get compute.zones.list iam.serviceAccounts.actAs logging.logEntries.create pubsub.topics.publish resourcemanager.projects.get source.repos.get source.repos.list storage.buckets.create storage.buckets.get storage.buckets.list storage.objects.create storage.objects.delete storage.objects.get storage.objects.list <!--NeedCopy-->
下列 Google 定义的角色具有上面列出的权限:
- Cloud Build Service 帐户(在 Cloud Build Service 帐户变更之后,它变为 Cloud Compute Service 帐户)
- 计算实例管理员
- 服务帐户用户
-
将准备说明磁盘下载到 MCS 时,Google Cloud Build Service 要求的预配项目中 Cloud Compute Service 帐户所需的最低权限:
resourcemanager.projects.get storage.objects.create storage.objects.get storage.objects.list <!--NeedCopy-->
下列 Google 定义的角色具有上面列出的权限:
- 计算网络用户
- 存储帐户用户
- 云数据存储用户
- (在 Cloud Build Service 帐户变更之前):将准备说明磁盘下载到 MCS 时,Google Cloud Build Service 要求的预配项目中的 Cloud Build Service 帐户的共享 VPC 所需的其他权限:
-
(在 Cloud Build Service 帐户变更之后):将准备说明磁盘下载到 MCS 时,Google Cloud Compute Service 要求的预配项目中的 Cloud Compute Service 帐户的共享 VPC 所需的其他权限:
compute.firewalls.list compute.networks.list compute.subnetworks.list compute.subnetworks.use resourcemanager.projects.get <!--NeedCopy-->
下列 Google 定义的角色具有上面列出的权限:
- 计算网络用户
- 存储帐户用户
- 云数据存储用户
-
预配项目中 Citrix Cloud Services 帐户的云密钥管理服务 (KMS) 所需的其他权限:
cloudkms.cryptoKeys.get cloudkms.cryptoKeys.list cloudkms.keyRings.get cloudkms.keyRings.list <!--NeedCopy-->
下列 Google 定义的角色具有上面列出的权限:
- 计算 KMS 查看器
一般权限
下面是预配项目中的 Citrix Cloud Services 帐户对 MCS 中支持的所有功能的权限。这些权限提供了未来的最佳兼容性:
resourcemanager.projects.get
cloudbuild.builds.create
cloudbuild.builds.get
cloudbuild.builds.list
compute.acceleratorTypes.list
compute.diskTypes.get
compute.diskTypes.list
compute.disks.create
compute.disks.createSnapshot
compute.disks.delete
compute.disks.get
compute.disks.setLabels
compute.disks.use
compute.disks.useReadOnly
compute.firewalls.create
compute.firewalls.delete
compute.firewalls.list
compute.globalOperations.get
compute.images.create
compute.images.delete
compute.images.get
compute.images.list
compute.images.setLabels
compute.images.useReadOnly
compute.instanceTemplates.create
compute.instanceTemplates.delete
compute.instanceTemplates.get
compute.instanceTemplates.list
compute.instanceTemplates.useReadOnly
compute.instances.attachDisk
compute.instances.create
compute.instances.delete
compute.instances.detachDisk
compute.instances.get
compute.instances.list
compute.instances.reset
compute.instances.resume
compute.instances.setDeletionProtection
compute.instances.setLabels
compute.instances.setMetadata
compute.instances.setTags
compute.instances.start
compute.instances.stop
compute.instances.suspend
compute.instances.update
compute.instances.updateAccessConfig
compute.instances.updateDisplayDevice
compute.instances.updateSecurity
compute.instances.updateShieldedInstanceConfig
compute.instances.updateShieldedVmConfig
compute.machineTypes.get
compute.machineTypes.list
compute.networks.list
compute.networks.updatePolicy
compute.nodeGroups.list
compute.nodeTemplates.get
compute.projects.get
compute.regions.list
compute.snapshots.create
compute.snapshots.delete
compute.snapshots.list
compute.snapshots.get
compute.snapshots.setLabels
compute.snapshots.useReadOnly
compute.subnetworks.get
compute.subnetworks.list
compute.subnetworks.use
compute.subnetworks.useExternalIp
compute.zoneOperations.get
compute.zoneOperations.list
compute.zones.get
compute.zones.list
resourcemanager.projects.get
storage.buckets.create
storage.buckets.delete
storage.buckets.get
storage.buckets.list
storage.buckets.update
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
cloudkms.cryptoKeys.get
cloudkms.cryptoKeys.list
cloudkms.keyRings.get
cloudkms.keyRings.list
compute.disks.list
compute.instances.setServiceAccount
compute.networks.get
compute.networks.use
compute.networks.useExternalIp
iam.serviceAccounts.actAs
compute.resourcePolicies.use
<!--NeedCopy-->