你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure 上 Citrix 的安全治理和合规性

Azure 上的 Citrix DaaS 部署需要适当的安全治理和合规性。 若要实现卓越运营和取得成功,请使用适当的策略设计 Citrix DaaS 环境。

设计注意事项和建议

Azure Policy 是用于 Azure 部署上的 Citrix 的重要工具。 策略有助于遵守云平台团队设置的安全标准。 为了支持持续法规合规性,策略可以自动强制实施法规并提供报告。

与平台团队一起根据 Azure 治理指南审核策略基线。 在顶级根管理组应用策略定义,以便可以在继承的范围内分配定义。

本文重点介绍标识、网络和防病毒建议。

  • 标识部分介绍 Citrix DaaS 服务标识及其要求。

  • 网络部分介绍网络安全组 (NSG) 要求。

  • 防病毒部分提供在 DaaS 环境中配置防病毒保护的最佳做法的链接。

服务主体角色和标识

以下几个部分介绍 Citrix DaaS 服务主体的创建、角色和要求。

应用注册

应用注册是在 Citrix Cloud 帐户与 Azure 之间创建单向信任关系的过程,以便 Citrix Cloud 信任 Azure。 应用注册过程会创建 Azure 服务主体帐户,Citrix Cloud 可通过托管连接将此帐户用于所有 Azure 操作。 Citrix Cloud 控制台中设置的托管连接通过云连接器将 Citrix Cloud 链接到 Azure 中的资源位置。

必须向服务主体授予对包含 Citrix 资源的资源组的访问权限。 根据组织的安全态势,可以在参与者级别提供订阅访问权限,也可以为服务主体创建自定义角色。

在 Microsoft Entra ID 中创建服务主体时,请设置以下值:

  • 添加重定向 URI 并将其设置为 Web,值为 https://citrix.cloud.com

  • 对于 API 权限,从“我的组织使用的 API”中添加 Azure 服务管理 API,然后选择 user_impersonation 委托的权限。

  • 对于证书 & 机密,创建建议的过期期限为一年的新客户端机密。 作为安全密钥轮换计划的一部分,必须定期更新此机密。

需要应用注册中的应用程序(客户端)ID 和客户端机密,才能在 Citrix Cloud 中配置托管连接设置。

企业应用程序

根据 Citrix Cloud 和 Microsoft Entra 配置,可以将一个或多个 Citrix Cloud 企业应用程序添加到 Microsoft Entra 租户。 这些应用程序授予 Citrix Cloud 对存储在 Microsoft Entra 租户中的数据的访问权限。 下表列出了 Microsoft Entra ID 中 Citrix Cloud 企业应用程序的应用程序 ID 和函数。

企业应用程序 ID 目的
f9c0e999-22e7-409f-bb5e-956986abdf02 Microsoft Entra ID 与 Citrix Cloud 之间的默认连接
1b32f261-b20c-4399-8368-c8f0092b4470 管理员邀请和登录
e95c4605-aeab-48d9-9c36-1a262ef8048e 工作区订阅服务器登录
5c913119-2257-4316-9994-5e8f3832265b Microsoft Entra ID 和具有 Citrix Endpoint Management 的 Citrix Cloud 之间的默认连接
e067934c-b52d-4e92-b1ca-70700bd1124e Microsoft Entra ID 和具有 Citrix Endpoint Management 的 Citrix Cloud 之间的旧连接

每个企业应用程序都授予 Citrix Cloud 对 Microsoft Graph API 或 Microsoft Entra API 的特定权限。 例如,工作区订阅服务器登录应用程序会授予对这两个 API 的 User.Read 权限,以便用户可以登录和读取其配置文件。 有关详细信息,请参阅 Citrix Cloud 的 Microsoft Entra 权限

内置角色

创建服务主体后,在订阅级别向其授予参与者角色。 若要在订阅级别授予参与者权限,至少需要 Azure 基于角色的访问控制管理员角色。 在从 Citrix Cloud 到 Microsoft Entra ID 的初始连接期间,Azure 会提示输入所需的权限。

创建主机连接时用于身份验证的任何帐户也都必须至少是订阅的参与者。 此级别的权限允许 Citrix Cloud 无限地创建必要的对象。 通常,当整个订阅只有 Citrix 资源时,可使用此方法。

某些环境不允许服务主体在订阅级别具有参与者权限。 Citrix 提供一种称为窄范围服务主体的备选解决方案。 对于窄范围服务主体,云应用程序管理员可手动完成应用程序注册,然后订阅管理员可手动向服务主体帐户授予相应的权限。

窄范围服务主体对整个订阅没有参与者权限。 它们仅具有需要创建和管理计算机目录的资源组、网络和映像的权限。 窄范围服务主体需要以下角色:

  • 预先创建的资源组需要虚拟机参与者存储帐户参与者磁盘快照参与者

  • 虚拟网络需要虚拟机参与者

  • 存储帐户需要虚拟机参与者

自定义角色

窄范围服务主体具有广泛的参与者权限,这可能不适合安全敏感环境。 若要提供更精细的方法,可以使用两个自定义角色向服务主体提供必要的权限。 Citrix_Hosting_Connection 角色授予创建托管连接的权限,Citrix_Machine_Catalog 角色授予创建 Citrix 工作负荷的权限。

Citrix_Hosting_Connection 角色

Citrix_Hosting_Connection 角色的以下 JSON 说明具有创建托管连接所需的最低权限。 如果只对计算机目录黄金映像使用快照或磁盘,则可以从 actions 列表中删除未使用的权限。

{
    "id": "",
    "properties": {
        "roleName": "Citrix_Hosting_Connection",
        "description": "Minimum permissions to create a hosting connection. Assign to resource groups that contain Citrix infrastructure such as cloud connectors, golden images, or virtual network resources.",
        "assignableScopes": [
            "/"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.Resources/subscriptions/resourceGroups/read",
                    "Microsoft.Compute/snapshots/read",
                    "Microsoft.Compute/disks/read",
                    "Microsoft.Network/virtualNetworks/read",
                    "Microsoft.Network/virtualNetworks/subnets/join/action"
                ],
                "notActions": [],
                "dataActions": [],
                "notDataActions": []
            }
        ]
    }
}

Citrix_Hosting_Connection 自定义角色分配给其中具有云连接器、黄金映像或虚拟网络资源的 Citrix_Infrastructure 资源组。 可以直接将此 JSON 角色说明复制并粘贴到自定义 Microsoft Entra 角色定义中。

Citrix_Machine_Catalog 角色

Citrix_Machine_Catalog 角色的以下 JSON 说明具有 Citrix 计算机目录向导在 Azure 中创建所需资源所需的最低权限。

{
    "id": "",
    "properties": {
    "roleName": "Citrix_Machine_Catalog",
    "description": "The minimum permissions to create a machine catalog. Assign to resource groups that contain Citrix workload servers that run the Virtual Delivery Agent.",
    "assignableScopes": [
    "/"
    ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.Resources/subscriptions/resourceGroups/read",
                    "Microsoft.Storage/storageAccounts/listkeys/action",
                    "Microsoft.Storage/storageAccounts/read",
                    "Microsoft.Storage/storageAccounts/write",
                    "Microsoft.Network/networkSecurityGroups/write",
                    "Microsoft.Compute/virtualMachines/write",
                    "Microsoft.Compute/virtualMachines/start/action",
                    "Microsoft.Compute/virtualMachines/restart/action",
                    "Microsoft.Compute/virtualMachines/read",
                    "Microsoft.Compute/virtualMachines/powerOff/action",
                    "Microsoft.Compute/virtualMachines/performMaintenance/action",
                    "Microsoft.Compute/virtualMachines/deallocate/action",
                    "Microsoft.Compute/virtualMachines/delete",
                    "Microsoft.Compute/virtualMachines/convertToManagedDisks/action",
                    "Microsoft.Compute/virtualMachines/capture/action",
                    "Microsoft.Compute/snapshots/endGetAccess/action",
                    "Microsoft.Compute/snapshots/beginGetAccess/action",
                    "Microsoft.Compute/snapshots/delete",
                    "Microsoft.Compute/snapshots/write",
                    "Microsoft.Compute/snapshots/read",
                    "Microsoft.Compute/disks/endGetAccess/action",
                    "Microsoft.Compute/disks/delete",
                    "Microsoft.Compute/disks/beginGetAccess/action",
                    "Microsoft.Compute/disks/write",
                    "Microsoft.Network/networkSecurityGroups/read",
                    "Microsoft.Network/networkInterfaces/delete",
                    "Microsoft.Network/networkInterfaces/join/action",
                    "Microsoft.Network/networkInterfaces/write",
                    "Microsoft.Network/networkInterfaces/read",
                    "Microsoft.Storage/storageAccounts/listServiceSas/action",
                    "Microsoft.Storage/storageAccounts/listAccountSas/action",
                    "Microsoft.Storage/storageAccounts/delete",
                    "Microsoft.Compute/disks/read",
                    "Microsoft.Resources/subscriptions/resourceGroups/delete",
                    "Microsoft.Resources/subscriptions/resourceGroups/write",
                    "Microsoft.Network/virtualNetworks/subnets/join/action",
                    "Microsoft.Network/virtualNetworks/subnets/read",
                    "Microsoft.Network/virtualNetworks/read",
                    "Microsoft.Network/networkSecurityGroups/join/action"
                ],
                "notActions": [],
                "dataActions": [],
                "notDataActions": []
            }
        ]
    }
}

Citrix_Machine_Catalog 自定义角色分配给保存 Citrix 虚拟交付代理 (VDA) 虚拟机 (VM) 的 Citrix_MachineCatalog 资源组。 可以直接将此 JSON 角色说明复制并粘贴到自定义 Microsoft Entra 角色定义中。

网络

NSG 有状态,因此它们允许返回可应用于 VM、子网或两者兼有的流量。 当子网和 VM NSG 都存在时,子网 NSG 首先适用于入站流量,VM NSG 首先适用于出站流量。 默认情况下,虚拟网络允许主机之间的流量和来自负载均衡器的所有入站流量。 默认情况下,虚拟网络仅允许出站 Internet 流量,并拒绝所有其他出站流量。

若要限制潜在的攻击途径并提高部署安全性,请使用 NSG 来仅允许 Citrix Cloud 环境中的预期流量。 下表列出了 Citrix 部署必须允许的所需网络端口和协议。 此列表仅包含 Citrix 基础结构使用的端口,不包括应用程序使用的端口。 在保护 VM 的 NSG 中,务必定义所有端口。

目标 协议 端口 目的
云连接器 *.digicert.com HTTP 80 证书吊销检查
云连接器 *.digicert.com HTTPS 443 证书吊销检查
云连接器 dl.cacerts.digicert.com/DigiCertAssuredIDRootCA.crt HTTPS 443 证书吊销检查
云连接器 dl.cacerts.digicert.com/DigiCertSHA2AssuredIDCodeSigningCA.crt HTTPS 443 证书吊销检查
云连接器 云连接器 传输控制协议 (TCP) 80 控制器之间的通信
云连接器 云连接器 TCP 89 本地主机缓存
云连接器 云连接器 TCP 9095 业务流程服务
云连接器 VDA TCP,用户数据报协议 (UDP) 1494 ICA/HDX 协议

启发式数据传输 (EDT) 需要 UDP
云连接器 VDA TCP、UDP 2,598 会话可靠性

EDT 需要 UDP
云连接器 VDA TCP 80(双向) 应用程序和性能发现
VDA 网关服务 TCP 443 Rendezvous 协议
VDA 网关服务 UDP 443 通过 443 到网关服务的 EDT 和 UDP
VDA *.nssvc.net

*.c.nssv.net

*.g.nssv.net
TCP、UDP 443 网关服务域和子域
Citrix 预配服务 云连接器 HTTPS 443 Citrix Cloud Studio 集成
Citrix 许可证服务器 Citrix 云 HTTPS 443 Citrix Cloud Licensing 集成
CVAD 远程 PowerShell SDK Citrix 云 HTTPS 443 通过 SDK 运行远程 PowerShell 脚本的任何系统
工作区环境管理 (WEM) 代理 WEM 服务 HTTPS 443 代理到服务通信
WEM 代理 云连接器 TCP 443 注册流量

有关 Citrix 应用程序交付管理的网络和端口要求的信息,请参阅系统要求

防病毒

防病毒软件是用户环境保护的关键元素。 若要确保运行顺畅,请在 Citrix DaaS 环境中适当配置防病毒。 不正确的防病毒配置可能会导致性能问题、客户体验降级或各种组件的超时和故障。 有关如何在 Citrix DaaS 环境中配置防病毒的详细信息,请参阅终结点安全性、防病毒和反恶意软件最佳做法

下一步

查看特定于 Azure 上的 Citrix 部署的业务连续性和灾难恢复的关键设计注意事项和建议。