保护 Azure Bastion 部署

Azure Bastion 是一种完全托管的平台即服务(PaaS),通过 TLS 直接在 Azure 门户中提供与虚拟机的安全无缝 RDP 和 SSH 连接。 由于 Bastion 充当虚拟网络和 VM 的关键网关,因此保护部署对于保护基础结构免受未经授权的访问和网络威胁至关重要。

本文提供了有关如何最好地保护 Azure Bastion 部署的指导。

网络安全

Azure Bastion 是一种网络安全服务,通过控制用户和服务连接的方式,从而提供对 VM 的安全远程访问,同时防止未经授权的访问或暴露到公共 Internet。 适当的网络控制有助于防止 DNS 攻击和维护服务完整性。

  • 在专用虚拟网络中部署 Bastion:创建或使用遵循符合业务风险的企业分段原则的现有虚拟网络。 在自己的虚拟网络中隔离高风险系统,并使用网络安全组保护它们。 有关详细信息,请参阅 如何使用安全规则创建网络安全组

  • 正确配置所需的端口访问:在 Bastion 公共 IP 上为来自公共 Internet 的入口流量启用端口 443 入站。 请勿在 AzureBastionSubnet 上打开端口 3389 或 22,因为这些端口不是必需的。 这会显著减少攻击面。

  • 配置数据平面通信:启用从 VirtualNetwork 服务标记到 VirtualNetwork 服务标记的端口 8080 和 5701 入站和出站。 这样,Azure Bastion 的内部组件就可以安全地相互通信。

  • 为 VM 连接配置出口流量:部署 Bastion 时,请确保 NSG 允许从 AzureBastionSubnet 到端口 3389 和 22 上的目标 VM 子网的出站流量。 对于标准 SKU 或更高版本的自定义端口功能,请将 NSG 配置为允许发到 VirtualNetwork 服务标记的出站流量。

  • 启用 Azure 服务连接:允许端口 443 上的出站流量发到 AzureCloud 服务标记,以及从 GatewayManager 服务标记到 AzureBastionSubnet 的端口 443 入站流量。 托管服务需要这些连接才能正常运行,使 Bastion 能够与 Azure 控制平面服务通信,以便进行运行状况监视、诊断和管理作。

  • 配置证书验证连接:为 Internet 启用端口 80 出站,以便进行会话验证、Bastion 可共享链接和证书验证。 对于具有受限 Internet 连接的环境,请与网络团队协作,在维护安全态势的同时允许这些特定终结点。

  • 使用虚拟网络对等互连进行集中式部署:将 Bastion 部署到对等网络以集中部署并启用跨网络连接。 有关详细信息,请参阅 Azure Bastion 和虚拟网络对等互连

  • 应用全面的网络安全组:在 AzureBastionSubnet 和目标 VM 子网上使用 NSG 来控制流量流。 确保所有必需的规则都已到位,因为省略任何规则可能会阻止必要的更新并创建安全漏洞。 有关详细信息,请参阅 使用 NSG 访问和 Azure Bastion

  • 使用适当的子网大小调整:在具有 /26 或更大子网的 AzureBastionSubnet 中部署 Bastion 以支持主机缩放,并确保有足够的 IP 地址空间供将来增长。 有关详细信息,请参阅 “关于 Bastion 配置设置”。

特权访问

Azure Bastion 的特权访问管理可确保只有授权用户才能修改 Bastion 资源并连接到 VM,同时遵循最低特权原则。 适当的访问控制可防止未经授权的更改损害基础结构,并帮助确保定期审查和监视访问。

  • 使用 Microsoft Entra ID 控制 Azure Bastion 资源管理:使用 Microsoft Entra ID 身份验证和 Azure RBAC 来控制谁可以在 Azure 门户中创建、修改或删除 Azure Bastion 资源。 这为 Bastion 服务本身提供集中式标识管理和管理控制。

  • 在 Azure Key Vault 中存储 SSH 密钥:将 SSH 密钥存储为 Key Vault 机密,并使用它们通过 Bastion 连接到 VM。 通过将 Key Vault 访问策略分配给单个用户或Microsoft Entra ID 组来控制访问权限。

  • 配置适当的 Key Vault 权限:使用存储的 SSH 密钥进行 VM 连接时,向用户授予 Key Vault 机密的“获取”和“列出”权限。 这可实现安全的集中式凭据管理。

  • 使用 Microsoft Entra ID PIM 实现最低特权访问:使用 Privileged Identity Management (PIM) 通过 Bastion 提供对 VM 的实时、时间限制的访问。 在目标 VM 上配置具有读取者角色的用户、具有专用 IP 的 VM NIC、Bastion 资源和目标 VM 的虚拟网络(如果 Bastion 位于对等网络中)。 PIM 可确保用户在需要时仅具有提升的访问权限,并帮助识别过时或过度的权限。 有关详细信息,请参阅 使用 Azure Bastion 连接到 Linux 虚拟机

  • 为已加入域的 VM 启用 Kerberos 身份验证:在连接到已加入域的 Windows VM 时配置 Kerberos 身份验证以提高安全性。 确保 NSG 允许所需端口(53、88、389、464、636)上的流量,并配置自定义 DNS 设置。 有关详细信息,请参阅 使用 Azure 门户配置 Bastion for Kerberos 身份验证

  • 定期评审用户访问:使用 Microsoft Entra ID 访问评审定期评审组成员身份、企业应用程序访问权限和角色分配。 这有助于识别和删除过时或不当的访问。

  • 使用特权访问工作站:为在生产环境中执行 Bastion 管理任务的管理员部署安全的隔离工作站。 使用 Microsoft Entra ID、Microsoft Defender for Endpoint 或 Intune 强制实施强身份验证和受限访问。

  • 控制可共享链接访问:如果使用“可共享链接”功能,请确保用户只有所需的最低权限。 默认情况下,仅授予对共享链接的“读取”访问权限,以便用户可以查看和使用链接,但无法创建或删除链接。 有关详细信息,请参阅 为 Bastion 创建可共享链接

数据保护

Azure Bastion 的数据保护侧重于保护数据完整性,并防止未经授权的访问会话数据和配置信息。

  • 利用内置的 TLS 加密:Azure Bastion 自动使用 TLS 来加密用户和虚拟机之间的传输数据。 此加密由 Azure 管理,不需要其他配置。 有关详细信息,请参阅 Azure Bastion 主要功能

会话管理和监视

会话管理功能有助于保持对与 VM 的活动连接的可见性和控制,确保合规性和作安全性。

  • 监视活动会话:使用 Azure 门户中的“会话”页查看哪些用户连接到了哪些 VM,包括连接时间、持续时间和源 IP 地址。 这提供 Bastion 使用情况的实时可见性。 有关详细信息,请参阅 Azure Bastion 的会话监视和管理

  • 实现会话断开连接功能:出于安全或管理目的,使用会话管理接口强制断开用户与正在进行的会话的连接。 这有助于保持对资源的访问的控制。

  • 为符合性启用会话录制:使用高级 SKU 配置会话录制,以捕获所有 RDP 和 SSH 会话以进行审核和符合性。 使用适当的保留策略将录制内容存储在 Azure 存储中。 有关详细信息,请参阅 配置 Bastion 会话录制

  • 设置适当的会话录制策略:确保会话录制存储帐户未启用不可变存储策略或 Blob 版本控制,因为这些策略可能会干扰录制功能。 为会话录制容器配置不带写入-Read-Many(WORM)策略的存储帐户。

日志记录和威胁检测

全面的日志记录和威胁检测有助于监视 Bastion 使用情况、检测可疑活动以及有效响应安全事件。 日志记录和监视可实现有效的威胁检测,并帮助满足合规性要求。

  • 启用 Azure Bastion 资源日志:打开 BastionAuditLogs 等诊断日志,以跟踪哪些用户连接到了哪些工作负载、何时和从何处连接了哪些用户。 将这些日志配置为发送到存储帐户,以便进行长期保留和审核。 有关详细信息,请参阅 “启用和使用 Azure Bastion 日志”。

  • 监视 Microsoft Entra ID 登录和审核日志:将 Microsoft Entra ID 日志与 Azure Monitor、Microsoft Sentinel 或其他 SIEM 工具集成,以监视登录、审核更改、有风险的登录以及标记为有风险的用户。

  • 启用 NSG 流日志:在应用于具有 Bastion 资源的虚拟网络的网络安全组上收集 NSG 资源日志和流日志。 使用这些值进行安全分析、事件调查和威胁搜寻。 有关详细信息,请参阅 如何启用网络安全组流日志

  • 使用流量分析:将 NSG 流日志发送到 Azure Monitor Log Analytics 工作区,并使用流量分析获取网络见解并识别潜在的安全问题。

  • 监视 Azure 活动日志:活动日志会自动捕获 Bastion 资源的所有写入作。 使用这些日志进行故障排除和监视资源修改。

  • 集中日志管理:通过 Azure Monitor 引入日志以聚合安全数据。 使用 Log Analytics 工作区查询和分析,使用 Azure 存储帐户进行长期保留。

  • 设置适当的日志保留期:根据组织的合规性要求在 Log Analytics 工作区和存储帐户中配置日志保留期。

  • 启用 Microsoft Defender for Cloud:使用 Defender for Cloud 监视可疑活动,例如过度失败的身份验证尝试和已弃用的帐户。 威胁防护模块提供深入的安全警报。

资产管理

Azure Bastion 的资产管理涉及实现治理控制、监视配置并确保符合组织安全策略。 适当的资产管理有助于维护安全架构和运营可视性。

  • 授予安全团队适当的可见性:确保安全团队在适当的范围(租户、管理组或订阅)拥有安全读取者权限,以使用 Microsoft Defender for Cloud 监视安全风险。

  • 应用一致的资源标记:对逻辑组织使用 Bastion 资源、资源组和订阅上的标记。 应用“环境”和“生产”等标记,以实现适当的资产分类和管理。

  • 启用资产清单管理:使用 Azure Resource Graph 向安全团队提供对持续更新的资产清单的访问权限,以查询和发现所有资源,包括 Bastion 部署。

  • 使用 Azure Policy 进行治理:实施 Azure Policy 来审核和限制服务预配,包括允许或拒绝 Bastion 资源部署。 使用“Microsoft.Network”命名空间别名创建自定义策略。

  • 建立安全配置基线:使用 Azure Policy、Azure 蓝图或 ARM 模板为 Bastion 定义标准安全配置,以确保部署一致且安全。 有关详细信息,请参阅 如何配置和管理 Azure Policy

  • 持续监视符合性:使用 Azure Policy 持续审核和强制实施 Bastion 资源的网络配置,确保它们符合组织安全标准。

  • 根据安全要求选择适当的 SKU:根据所需的安全功能选择 SKU 层。 使用高级 SKU 进行会话录制和专用部署、标准 SKU 用于可共享链接和主机缩放,或标准部署的基本 SKU。 有关详细信息,请参阅 “关于 Bastion 配置设置”。

后续步骤