Azure Bastion是一种完全托管的平台即服务(PaaS),通过 TLS 直接在 Azure 门户中提供与虚拟机的安全无缝 RDP 和 SSH 连接。 由于 Bastion 充当虚拟网络和 VM 的关键网关,因此保护部署对于保护基础结构免受未经授权的访问和网络威胁至关重要。
本文提供了有关如何最好地保护Azure Bastion部署的指导。
注释
Entra ID 身份验证现已支持 RDP 连接的预览版! 有关详细信息,请参阅 Microsoft Entra ID。
网络安全
Azure Bastion是一种网络安全服务,通过控制用户和服务的连接方式,提供对虚拟机(VM)的安全远程访问,并防止未经授权的访问或暴露到公共互联网。 适当的网络控制有助于防止 DNS 攻击和维护服务完整性。
在专用虚拟网络中部署 Bastion:创建或使用现有的虚拟网络,该网络遵循与业务风险一致的企业分段原则。 在自己的虚拟网络中隔离高风险系统,并使用网络安全组保护它们。 有关详细信息,请参阅如何创建带有安全规则的网络安全组。
正确配置所需的端口访问:为 Bastion 公共 IP 启用 443 端口的入站流量,以接收来自公共 Internet 的传入流量。 请勿在 AzureBastionSubnet 上打开端口 3389 或 22,因为这些端口不是必需的。 这会显著减少攻击面。
配置数据平面通信:启用从 VirtualNetwork 服务标签到 VirtualNetwork 服务标签的 8080 和 5701 端口的入站和出站流量。 这样,Azure Bastion的内部组件就可以安全地相互通信。
配置用于 VM 连接的出站流量:部署 Bastion 时,确保网络安全组允许从 AzureBastionSubnet 到目标 VM 子网的 3389 和 22 端口的出站流量。 对于标准 SKU 或更高版本的自定义端口功能,请将 NSG 配置为允许发到 VirtualNetwork 服务标记的出站流量。
启用 Azure 服务连接:允许端口 443 上的出站流量发送至 AzureCloud 标签,以及从 GatewayManager 标签到 AzureBastionSubnet 的端口 443 入站流量。 托管服务的正常运行需要这些连接,使 Bastion 能够与 Azure 控制平面服务进行通信,以便进行运行状况监视、诊断和管理操作。
配置证书验证连接:启用向 Internet 的 80 端口出站流量,用于会话验证、Bastion 可共享链接和证书验证。 对于具有受限 Internet 连接的环境,请与网络团队协作,在维护安全态势的同时允许这些特定终结点。
使用虚拟网络对等互连进行集中部署:将 Bastion 部署到对等网络中,以集中部署并启用跨网络连接。 有关详细信息,请参考 Azure Bastion 和虚拟网络对等连接。
应用全面的网络安全组:在 AzureBastionSubnet 和目标 VM 子网中都使用网络安全组来控制流量。 确保所有必需的规则都已到位,因为省略任何规则可能会阻止必要的更新并创建安全漏洞。 有关详细信息,请参阅 NSG 访问和 Azure Bastion 的使用。
考虑采用仅专用部署以增强安全性:在使用 ExpressRoute 的环境中,为实现最高安全性,请将 Bastion 部署为仅专用模式,以消除虚拟网络外部的出站访问。 这需要 Premium SKU 和静态 IP 分配。 有关详细信息,请参阅“将 Bastion 部署为专用”。
使用适当的子网大小:在 AzureBastionSubnet 中子网大小为 /26 或更大的子网中部署 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 秘密,并使用它们通过 Azure Bastion 连接到 VM。 通过将Key Vault访问策略分配给单个用户或Microsoft Entra ID组来控制访问权限。
配置适当的Key Vault权限:在为 VM 连接使用存储的 SSH 密钥时,向用户授予对Key Vault机密的“获取”和“列出”权限。 这可实现安全的集中式凭据管理。
使用 Microsoft Entra ID 中的 PIM 实现最小特权访问:使用特权身份管理 (PIM) 通过 Bastion 提供对 VM 的及时的、限时的访问。 在目标 VM 上配置具有读取者角色的用户、具有专用 IP 的 VM NIC、Bastion 资源和目标 VM 的虚拟网络(如果 Bastion 位于对等网络中)。 PIM 可确保用户在需要时仅具有提升的访问权限,并帮助识别过时或过度的权限。 有关详细信息,请参阅使用 Azure Bastion 连接到 Linux 虚拟机。
为已加入域的 VM 启用 Kerberos 身份验证:配置 Kerberos 身份验证,以增强连接到已加入域的 Windows VM 时的安全性。 确保 NSG 允许所需端口(53、88、389、464、636)上的流量,并配置自定义 DNS 设置。 有关详细信息,请参阅使用 Azure 门户配置用于 Kerberos 身份验证的 Bastion。
定期审查用户访问:使用 Microsoft Entra ID 访问评审定期审查组成员身份、企业应用程序访问和角色分配。 这有助于识别和删除过时或不当的访问。
使用特权访问工作站:为在生产环境中执行 Bastion 管理任务的管理员部署安全、隔离的工作站。 使用Microsoft Entra ID、Microsoft Defender for Endpoint或 Intune 强制实施强身份验证和受限访问。
控制可共享链接访问权限:如果使用可共享链接功能,请确保用户仅拥有必需的最低权限。 默认情况下,仅授予对共享链接的“读取”访问权限,以便用户可以查看和使用链接,但无法创建或删除链接。 有关详细信息,请参阅为 Bastion 创建可共享链接。
数据保护
Azure Bastion数据保护侧重于保护数据完整性,并防止未经授权的访问会话数据和配置信息。
- Leverage 内置 TLS 加密:Azure Bastion自动使用 TLS 加密用户和虚拟机之间的传输数据。 此加密由Azure管理,不需要其他配置。 有关详细信息,请参阅 Azure Bastion 关键优势。
会话管理和监视
会话管理功能有助于保持对与虚拟机的活动连接的可见性和控制,确保合规性和操作安全性。
Monitor 活动会话:使用Azure门户中的“会话”页查看哪些用户连接到了哪些 VM,包括连接时间、持续时间和源 IP 地址。 这提供 Bastion 使用情况的实时可见性。 有关详细信息,请参阅 Azure Bastion 的会话监控和管理。
实现会话断开连接功能:在出于安全或管理目的需要时,使用会话管理界面强制断开用户与正在进行的会话的连接。 这有助于保持对资源的访问的控制。
为合规性启用会话录制:使用 Premium SKU 配置会话录制,以捕获所有 RDP 和 SSH 会话,用于审计和合规性目的。 使用适当的保留策略将录制内容存储在Azure Storage中。 有关详细信息,请参阅配置 Bastion 会话录制。
设置适当的会话录制策略:确保会话录制存储帐户未启用不可变存储策略或 Blob 版本控制,因为这些可能会干扰录制功能。 为会话录制容器配置不带写入-一次-多读(WORM)策略的存储帐户。
日志记录和威胁检测
全面的日志记录和威胁检测有助于监视 Bastion 使用情况、检测可疑活动以及有效响应安全事件。 日志记录和监视可实现有效的威胁检测,并帮助满足合规性要求。
启用Azure Bastion资源日志:打开 BastionAuditLogs 等诊断日志,以跟踪哪些用户连接到哪些工作负荷、时间和位置。 将这些日志配置为发送到存储帐户,以便进行长期保留和审核。 有关详细信息,请参阅 启用并处理Azure Bastion日志。
Monitor Microsoft Entra ID登录和审核日志:将Microsoft Entra ID日志与Azure Monitor、Microsoft Sentinel或其他 SIEM 工具集成,以监视登录、审核更改、风险登录和标记为有风险的用户。
启用 NSG 流日志:在应用于包含 Bastion 资源的虚拟网络的 NSG 上收集 NSG 资源日志和流日志。 使用这些值进行安全分析、事件调查和威胁搜寻。 有关详细信息,请参阅如何启用网络安全组流日志。
使用流量分析:将 NSG 流日志发送到Azure Monitor Log Analytics工作区,并使用流量分析获取网络见解并确定潜在的安全问题。
监控 Azure 活动日志:活动日志会自动捕获 Bastion 资源的所有写入操作。 使用这些日志进行故障排除和监视资源修改。
Centralize 日志管理:通过Azure Monitor引入日志以聚合安全数据。 使用Log Analytics工作区进行查询和分析,并使用Azure Storage帐户进行长期保留。
设置适当的日志保留期:根据组织的合规性要求在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”命名空间别名创建自定义策略。
Establish 安全配置基线:使用 Azure Policy、Azure Blueprints 或 ARM 模板定义 Bastion 的标准安全配置,以确保部署一致和安全。 有关详细信息,请参阅 如何配置和管理 Azure Policy。
持续监控合规性:使用 Azure Policy 持续审核和实施、强制执行 Bastion 资源的网络配置,以确保其符合组织的安全标准。
根据安全要求选择适当的 SKU:根据所需的安全功能选择 SKU 层级。 使用高级 SKU 进行会话录制和专用部署、标准 SKU 用于可共享链接和主机缩放,或标准部署的基本 SKU。 有关详细信息,请参阅关于 Bastion 配置设置。