连接到 Google 云环境

Last published : Oct 24, 2026
(/zh-cn/citrix-daas/install-configure/connections.html) 介绍了创建连接的向导。以下信息涵盖了 Google 云环境特有的详细信息。
注意:
在创建到 Google 云环境的连接之前,您需要首先将 Google 云帐户设置为资源位置。请参阅 (/zh-cn/citrix-daas/install-configure/resource-location/google.html)。

添加连接

在 Studio 中,按照 (/zh-cn/citrix-daas/install-configure/connections.html) 中的指导进行操作。以下说明将指导您设置托管连接:
  1. 在 Studio 中,选择左侧窗格中的 Hosting。
  2. 在操作栏中选择 Add Connection and Resources。
  3. 在 Connection 页面上,选择 Create a new Connection 和 Citrix provisioning™ tools,然后选择 Next。
    • 区域名称。选择一个区域(等同于资源位置),您希望主机资源驻留在此区域。当您创建资源位置并向其添加 Cloud Connector 时,区域会自动创建。有关详细信息,请参阅 (/zh-cn/citrix-daas/manage-deployment/zones.html)。
    • 连接类型。从菜单中选择 Google Cloud Platform。
    • 服务帐户密钥。导入 Google 凭据文件 (.json) 中包含的密钥。您可以从凭据文件粘贴密钥,也可以浏览到凭据文件。要粘贴密钥:
      1. 找到您的凭据文件
      2. 使用记事本(或任何文本编辑器)打开文件
      3. 复制内容。
      4. 返回到连接页面,选择添加密钥,粘贴内容,然后选择完成。
    • 服务帐户 ID。此字段会自动填充服务帐户密钥中的信息。
    • 连接名称。键入连接的名称。
    • 通过 Citrix Cloud Connector 路由流量。要通过可用的 Citrix Cloud Connector™ 路由 API 请求,请选中此复选框。当 Cloud Connector 没有直接 Internet 访问权限时,您可以选择使用 Citrix Cloud Connector 上配置的代理以确保 GCP 连接正常工作。您还可以选择启用 Google Cloud Build 以使用私有池复选框以增加一层安全性。
      或者,您可以使用 PowerShell 启用此功能。有关详细信息,请参阅(/zh-cn/citrix-daas/install-configure/connections/connection-gcp.html#create-a-secure-environment-for-gcp-managed-traffic)。
    注意:
    此选项仅在您的部署中有活动的 Citrix Cloud™ Connectors 时可用。目前,此功能不支持 Connector Appliances。
    • 使用以下方式创建虚拟机。选择创建虚拟机的方法。
  4. 在区域页面上,从菜单中选择一个项目名称,选择包含要使用的资源的区域,然后选择下一步。
  5. 在网络页面上,键入资源的名称,从菜单中选择一个虚拟网络,选择一个子集,然后选择下一步。资源名称有助于识别区域和网络组合。名称后附加 (Shared) 后缀的虚拟网络表示共享 VPC。如果您为共享 VPC 配置了子网级 IAM 角色,则共享 VPC 的特定子网才会显示在子网列表中。
    注意:
    • 资源名称可以包含 1–64 个字符,并且不能只包含空格或字符\ / ; : # . * ? = < > | [ ] { } " ' ( ) ' )。
  6. 在摘要页面上,确认信息,然后选择完成以退出添加连接和资源窗口。
创建连接和资源后,您创建的连接和资源将列出。要配置连接,请选择该连接,然后在操作栏中选择适用的选项。
同样,您可以删除、重命名或测试在连接下创建的资源。为此,请选择连接下的资源,然后在操作栏中选择适用的选项。

为 GCP 托管流量创建安全环境

您可以只允许私有 Google 访问您的 Google Cloud 项目。此实现增强了安全性,以处理敏感数据。为此:
  1. 在要强制执行 VPC 服务控制的 VPC 中安装 Cloud Connector。有关更多信息,请参阅 VPC 服务控制。
  2. 在 Citrix Cloud 部署中,在 CustomProperties 中添加 ProxyHypervisorTrafficThroughConnector。如果您使用的是私有工作池,请在 CustomProperties 中添加 UsePrivateWorkerPool。有关私有工作池的信息,请参阅 私有池概述。
注意:
目前,Connector Appliance 不支持此功能。

为 GCP 托管流量创建安全环境的要求

为 GCP 托管流量创建安全环境的要求如下:
  • 更新自定义属性时,请确保托管连接处于维护模式。
  • 要使用私有工作池,需要进行以下更改:
    • 对于 Citrix Cloud 服务帐户,添加以下 IAM 角色:
      • Cloud Build 服务帐户
      • 计算实例管理员
      • 服务帐号用户
      • 服务帐号令牌创建者
      • Cloud Build WorkerPool 所有者
    • 在用于创建托管连接的同一项目中创建 Citrix Cloud 服务帐户。
    • 为 private.googleapis.com 和 gcr.io 设置 DNS 区域,如 DNS 配置 中所述。
      private-googleapis-com 的 域名系统区域gcr.io 的 DNS 区域
    • 设置专用网络地址转换 (NAT) 或使用专用服务连接。有关详细信息,请参阅 通过端点访问 Google API。
      专用服务连接
    • 如果使用对等 VPC,请创建到对等 VPC 的 Cloud DNS 区域对等互连。有关详细信息,请参阅 创建对等区域。
      创建对等区域
    • 在 VPC 服务控制中,设置出站规则,以便 API 和 VM 可以与 Internet 通信。入站规则是可选的。例如:
      Egress Rule 1
      From:
      Identities:ANY_IDENTITY
      To:
      Projects =
      All projects
      Service =
      Service name: All services

启用代理

要启用代理,请在主机连接上按如下方式设置自定义属性:
  1. 从 Delivery Controller 主机打开 PowerShell 窗口或使用远程 PowerShell SDK。有关远程 PowerShell SDK 的详细信息,请参阅 SDK 和 API。
  2. 运行以下命令:
    1. Add-PSSnapin citrix*
    2. cd XDHyp:\Connections\
    3. dir
  3. 将连接中的 CustomProperties 复制到记事本。
  4. 按如下方式附加属性设置:
    • 在云部署(使用公共池)的情况下:将属性设置 <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True"/> 附加到 CustomProperties 以启用代理。例如:
      <CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation">
      <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True"/>
      </CustomProperties>
      允许 VPC 服务边界中的 Cloud Build 服务帐户的入站规则。例如:
      Ingress Rule 1
      From:
      Identities:
      <ProjectID>@cloudbuild.gserviceaccount.com
      Source > All sources allowed
      To:
      Projects =
      All projects
      Services =
      Service name: All services
      有关 VPC 服务边界的信息,请参阅 服务边界详细信息和配置。
    • 在云部署中的私有工作池的情况下,将属性设置 <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True"/> 和 <Property xsi:type="StringProperty" Name="UsePrivateWorkerPool" Value="True"/> 附加到 CustomProperties 以启用代理。例如:
      <CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation">
      <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True"/>
      <Property xsi:type="StringProperty" Name="UsePrivateWorkerPool" Value="True"/>
      </CustomProperties>
  5. 在 PowerShell 窗口中,为修改后的自定义属性分配一个变量。例如: $customProperty = '<CustomProperties…</CustomProperties>'。
  6. 运行 $gcpServiceAccount = "<ENTER YOUR SERVICE ACCOUNT EMAIL HERE>"。
  7. 运行 $gcpPrivateKey = "<ENTER YOUR SERVICE ACCOUNT PRIVATE KEY HERE AFTER REMOVING ALL INSTANCES OF \n >"。
  8. 运行 $securePassword = ConvertTo-SecureString $gcpPrivateKey -AsPlainText -Force。
  9. 运行以下命令以更新现有主机连接:
    Set-Item -PassThru -Path @('XDHyp:\\Connections\\<ENTER YOUR CONNECTION NAME HERE>') -SecurePassword $securePassword -UserName $gcpServiceAccount -CustomProperties $customProperty

在 Citrix Cloud Connector 上使用系统代理重定向 GCP API 流量的选项

要通过非透明代理路由所有外部流量,请使用自定义属性 UseSystemProxyForHypervisorTrafficOnConnectors 配置主机连接。这会将 Citrix Cloud Connector 上的 GCP API 互联网流量通过系统代理重定向。 按照 启用代理 中概述的相同步骤,使用自定义属性配置主机连接。但是,请确保将属性设置 <Property xsi:type="StringProperty" Name="UseSystemProxyForHypervisorTrafficOnConnectors" Value="True" /> 附加到 CustomProperties 以启用代理。
<Property xsi:type="StringProperty" Name="UseSystemProxyForHypervisorTrafficOnConnectors" Value="True" />
示例:
<CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation">
 <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True"/>
 <Property xsi:type="StringProperty" Name="UsePrivateWorkerPool" Value="True"/>
<Property xsi:type="StringProperty" Name="UseSystemProxyForHypervisorTrafficOnConnectors" Value="True" />
</CustomProperties>
注意:
设置此属性后,Citrix Cloud Connector 上 netsh winhttp 设置中配置的代理将用于流向云服务提供商的出站流量。

指定 CMEK 全局和区域密钥

注意:
GCP 中对 CMEK 的支持目前处于预览阶段。
GCP 中有两种类型的客户管理的加密密钥 (CMEK):
  • 区域:只能由同一区域中的资源使用的加密密钥。
  • 全局:可由来自多个区域的资源使用的加密密钥。
您可以浏览和使用服务帐户可访问的所有项目中的全局或区域客户管理的加密密钥 (CMEK)。然后,您可以使用该密钥创建启用 CMEK 的 MCS 计算机目录,并使用 Set-ProvScheme 命令更新现有的启用 CMEK 的 MCS 计算机目录。有关使用 PowerShell 创建启用 CMEK 的目录的信息,请参阅 使用自定义属性创建启用 CMEK 的目录。
对于此功能,您需要为以下两个服务帐户提供额外的权限:
在服务帐户中,您必须在包含要使用的加密密钥的项目中分配以下角色(例如,共享项目):
  • Cloud KMS 查看者
  • 云 KMS 加密密钥 加密器/解密器
如果您未分配到这些角色,请确保您拥有以下权限:
  • resourcemanager.projects.get
  • cloudkms.keyRings.list
  • cloudkms.keyRings.get
  • cloudkms.cryptoKeys.get
  • cloudkms.cryptoKeys.list
  • cloudkms.cryptoKeyVersions.useToDecrypt
  • cloudkms.cryptoKeyVersions.useToEncrypt

列出加密密钥

您可以使用 PowerShell 命令列出同一项目和所有其他可访问项目中的全局和区域加密密钥。为此,请执行以下操作:
  1. 从 Delivery Controller™ 主机或远程 PowerShell 打开 PowerShell 窗口。
  2. 运行命令 asnp citrix* 以加载 Citrix 特定的 PowerShell 模块。
  3. 运行以下命令以列出加密密钥。示例:
    • 要列出 encryptionKeys 文件夹的内容:
      Get-ChildItem XDHyp:\HostingUnits\my-hostingunit\encryptionKeys.folder
    • 要在同一项目中获取全局加密密钥:
      Get-Item XDHyp:\HostingUnits\my-hostingunit\encryptionKeys.folder\myglobalkeyring.globalkeyring\myglobalkey.cryptokey
    • 要在同一项目中获取区域加密密钥:
      Get-Item XDHyp:\HostingUnits\my-hostingunit\encryptionKeys.folder\regional-ring.keyring\shared-key.cryptokey
    • 要从另一个可访问的项目(例如:myanotherproject)获取全局加密密钥:
      Get-Item XDHyp:\HostingUnits\my-hostingunit\encryptionKeys.folder\myanotherproject.project\shared-global-ring.globalkeyring\shared-key.cryptokey
    • 要从另一个可访问的项目(例如:myanotherproject)获取区域加密密钥:
      Get-Item XDHyp:\HostingUnits\my-hostingunit\encryptionKeys.folder\myanotherproject .project.project\shared-uscentral.keyring\shared-uscentral-key.cryptokey
注意:
  • 全局密钥环的密钥环清单项的扩展名为 .globalkeyring。
  • 全局密钥环的 ID 中包含单词 global。

所需的 GCP 权限

本节包含 GCP 权限的完整列表。请使用本节中提供的完整权限集,以确保功能正常运行。
注意:
GCP 将在 April 29, 2024 之后对 Cloud Build Services 的默认行为和服务账户的使用引入更改。有关详细信息,请参阅 Cloud Build Service Account Change。您在 April 29, 2024 之前启用了 Cloud Build API 的现有 Google 项目不受此更改影响。但是,如果您希望在 April 29 之后仍保留现有的 Cloud Build Service 行为,则可以在启用 API 之前创建或应用组织策略以禁用约束强制执行。如果您设置了新的组织策略,则仍可以遵循本节中现有的权限以及标记为 Before Cloud Build Service Account Change 的项目。否则,请遵循标记为 After Cloud Build Service Account Change 的现有权限和项目。

创建主机连接

  • 预配项目中 Citrix Cloud 服务账户所需的最低权限:
    compute.instanceTemplates.list
    compute.instances.list
    compute.networks.list
    compute.projects.get
    compute.regions.list
    compute.subnetworks.list
    compute.zones.list
    resourcemanager.projects.get
    以下 Google 定义的角色具有上述权限:
    • 计算管理员
    • 云数据存储用户
  • Citrix Cloud 服务帐户在共享 VPC 项目中共享 VPC 所需的额外权限:
    compute.networks.list
    compute.subnetworks.list
    resourcemanager.projects.get
    以下 Google 定义的角色具有上述权限:
    • 计算网络用户
  • 在服务帐户中,您必须在包含要使用的加密密钥的项目(例如,共享项目)中分配以下角色:
    • Cloud KMS 查看者
    • 云密钥管理服务加密密钥加密器/解密器
    如果您未分配到这些角色,请确保您具有以下权限:
    • resourcemanager.projects.get
    • cloudkms.keyRings.list
    • cloudkms.keyRings.get
    • cloudkms.cryptoKeys.get
    • cloudkms.cryptoKeys.list
    • cloudkms.cryptoKeyVersions.useToDecrypt
    • cloudkms.cryptoKeyVersions.useToEncrypt

虚拟机的电源管理

在仅电源管理的目录中,Citrix Cloud 服务帐户在预配项目中所需的最低权限:
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
以下 Google 定义的角色具有上述权限:
  • Compute 管理员
  • 云数据存储用户

创建、更新或删除虚拟机

  • Citrix Cloud 服务帐户在预配项目中所需的最低权限:
    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.getSerialPortOutput
    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
    以下 Google 定义的角色具有上述权限:
    • Compute 管理员
    • Storage 管理员
    • Cloud Build 编辑者
    • 服务帐户用户
    • 云数据存储用户
  • Citrix Cloud 服务帐户在共享 VPC 项目中创建托管单元时,使用共享 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
    以下 Google 定义的角色具有上述权限:
    • 计算网络用户
    • 云数据存储 用户
    将准备说明磁盘下载到 MCS 时所需的最低权限:
    • (在 Cloud Build 服务帐户更改之前):将这些权限分配给预配项目中的 Cloud Build 服务帐户。
    • (在 Cloud Build 服务帐户更改之后):将这些权限分配给预配项目中的 Cloud Compute 服务帐户。
    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
    以下 Google 定义的角色具有上述权限:
    • Cloud Build 服务帐户(在 Cloud Build 服务帐户更改后,它是 Cloud Compute 服务帐户)
    • 计算实例管理员
    • 服务帐户用户
  • 将准备说明磁盘下载到 MCS 时,Google Cloud Build 服务在预配项目中为 Cloud Compute 服务帐户所需的最低权限:
    resourcemanager.projects.get
    storage.objects.create
    storage.objects.get
    storage.objects.list
    以下 Google 定义的角色具有上述权限:
    • 计算网络用户
    • 存储帐户用户
    • 云数据存储用户
    将准备说明磁盘下载到 MCS 时,共享 VPC 所需的额外权限:
    • (在 Cloud Build 服务帐户更改之前):将这些权限分配给预配项目中的 Cloud Build 服务帐户。
    • (在 Cloud Build 服务帐户更改之后):将这些权限分配给预配项目中的 Cloud Compute 服务帐户。
    compute.firewalls.list
    compute.networks.list
    compute.subnetworks.list
    compute.subnetworks.use
    resourcemanager.projects.get
    以下 Google 定义的角色具有上述权限:
    • 计算网络用户
    • 存储账户用户
    • 云数据存储用户
  • 预配项目中 Citrix Cloud 服务帐户的 Cloud Key Management Service (KMS) 所需的额外权限:
    cloudkms.cryptoKeys.get
    cloudkms.cryptoKeys.list
    cloudkms.keyRings.get
    cloudkms.keyRings.list
    以下 Google 定义的角色具有上述权限:
    • 计算 KMS 查看者

一般权限

以下是预配项目中 Citrix Cloud 服务帐户在 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.getSerialPortOutput
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
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt

下一步

更多信息

  • 创建和管理连接和资源(/zh-cn/citrix-daas/install-configure/connections.html)
  • Google Cloud 虚拟化环境(/zh-cn/citrix-daas/install-configure/resource-location/google.html)。