**发布时间:** 2025-04-18
**厂商:** AZURE
**类型:** TECH-BLOG
**原始链接:** https://techcommunity.microsoft.com/blog/azurenetworkingblog/best-practices-for-securing-access-to-vms/4405778
---
<!-- AI_TASK_START: AI标题翻译 -->
[解决方案] 保护虚拟机访问的安全最佳实践
<!-- AI_TASK_END: AI标题翻译 -->
<!-- AI_TASK_START: AI竞争分析 -->
# 解决方案分析
## 解决方案概述
Azure Bastion 结合 Microsoft Entra PIM 的解决方案旨在通过消除虚拟机(VM)的公共 IP 地址并实施基于时间的批准访问,实现零信任框架下的 VM 访问安全。该方案针对当前数字化环境中日益频繁的网络攻击,解决 **VM 工作负载** 的保护问题,尤其适用于处理敏感数据的场景。背景在于,传统网络安全仅关注网络层,而此方案强调身份验证和访问控制的严格管理,适用于需要高安全性的行业,如金融和医疗。
## 实施步骤
1. **配置 Azure Bastion 和 Entra PIM 集成**
- 首先,为用户分配必要的角色,例如 **Reader 角色** 于 Bastion 和目标 VM,确保用户具有查看权限。
- 随后,在 Azure 门户中设置 Microsoft Entra ID 认证,启用用户通过 Entra ID 进行 SSH 或 RDP 连接,避免使用本地凭证。
- 技术原理:利用 Bastion 作为完全托管的跳板服务,处理连接请求,减少直接暴露风险。
2. **实施 Just-In-Time (JIT) 访问控制**
- 用户请求激活 **Eligible 角色**,如 **Virtual Machine User Login 角色**,需提供业务理由并进行多因素认证(MFA)。
- 管理员(如示例中的 Jane)审查并批准请求,授予时间限定的访问权限,例如仅在批准后 X 小时内有效。
- 逻辑衔接:这一步依赖于 Entra PIM 的批准机制,确保访问仅在必要时激活,减少持久权限风险。
3. **建立网络安全规则**
- 配置网络安全组(NSG)规则,仅允许来自 Bastion 的入站流量,阻挡其他来源的访问。
- 启用会话记录功能,将用户活动捕获并存储在指定存储账户中,便于审计和审查。
- 技术细节:结合 Entra PIM 的零信任模型,动态调整访问状态,确保 VM 默认处于不可访问状态。
## 方案客户价值
- **减少网络暴露风险**:通过消除 VM 的公共 IP 地址,显著降低互联网攻击面,相比传统方案(如直接暴露 VM),实现了更强的安全隔离,避免了持久访问带来的潜在威胁。
- **简化身份和访问管理**:整合 Microsoft Entra ID 认证,允许用户使用单一身份验证连接 VM,降低了管理本地凭证的复杂性,并确保访问仅限于批准时间窗口内,提升了合规性。
- **强化零信任框架**:JIT 访问机制确保资源默认不可见,只有经过批准后才激活,相比传统 IaaS 架构,这大大降低了滥用权限的风险,但可能在高频访问场景中增加审批延迟。
## 涉及的相关产品
- **Azure Bastion**:作为完全托管的跳板服务,提供安全的 RDP 和 SSH 连接,作用在于充当 VM 的安全网关,消除公共 IP 需求。
- **Microsoft Entra PIM**:用于实现基于批准的 JIT 访问控制,作用是管理角色激活,确保特权操作仅在必要时可用。
- **Microsoft Entra ID**:提供身份认证集成,作用是增强 VM 登录安全,支持无密码或 MFA 验证。
## 技术评估
该解决方案在技术先进性上表现出色,通过 **零信任模型** 和 JIT 机制,显著提升了 VM 访问的安全性和可行性,适用于大多数 Azure 环境。然而,其依赖于管理员批准流程,可能在紧急响应场景下增加操作延迟。作为优势,方案巧妙整合了身份和网络层安全,相比传统 IaaS,提升了资源利用率和审计能力;但局限性在于,复杂角色管理可能面临配置复杂性上升的问题,尤其在多订阅环境中。总体上,该方案符合当前行业趋势,如零信任架构的推广,但需根据具体 workload 评估适用范围。
<!-- AI_TASK_END: AI竞争分析 -->
<!-- AI_TASK_START: AI全文翻译 -->
# 保护虚拟机访问的最佳实践
**原始链接:** [https://techcommunity.microsoft.com/blog/azurenetworkingblog/best-practices-for-securing-access-to-vms/4405778](https://techcommunity.microsoft.com/blog/azurenetworkingblog/best-practices-for-securing-access-to-vms/4405778)
**发布时间:** 2025-04-18
**厂商:** AZURE
**类型:** TECH-BLOG
---

Azure Networking Blog
# 保护虚拟机访问的最佳实践
2025 年 4 月 18 日
## 通过 Azure Bastion (Azure Bastion) 与 Microsoft Entra PIM 的结合,探索如何在零信任 (Zero Trust) 框架内消除公共 IP 并强制执行基于时间的批准访问,从而保护虚拟机访问。
## 引言
随着网络安全攻击在当今数字环境中变得越来越常见,客户越来越关注如何保护其云环境。其中一个关键关注点是如何保护虚拟机工作负载——尤其是那些处理敏感客户数据的虚拟机。有效的保护不仅仅是网络层面的安全;还意味着确保授权用户仅在严格控制的、预先批准的时间窗口内访问虚拟机。在本博客中,我们将探讨 Azure Bastion (Azure Bastion) 和 Microsoft Entra 特权身份管理 (PIM) 如何帮助客户采用零信任 (Zero Trust) 方法来管理虚拟机访问,从而解决网络暴露和严格访问控制问题。
## 如何使用 Azure Bastion (Azure Bastion) 保护虚拟机工作负载
Azure Bastion (Azure Bastion) 是一种完全托管的跳板机即服务 (jumpbox-as-a-service),它支持安全且无缝的 RDP (Remote Desktop Protocol) 和 SSH (Secure Shell) 连接到您的虚拟机——而无需暴露它们的公共 IP 地址。通过与 Microsoft Entra ID 和 Microsoft Entra 特权身份管理 (PIM) 的无缝集成,Azure Bastion (Azure Bastion) 加强了您的安全态势,并简化了基于身份的访问控制。对于所有虚拟机部署,使用 Bastion 是确保安全、合规且流畅访问的最佳实践。
Azure Bastion (Azure Bastion) 与 Microsoft Entra ID 无缝集成,通过消除本地凭证的需求,提升了虚拟机登录的安全性。Bastion 的标准版或高级版允许用户使用 Entra ID 认证通过原生客户端连接。此功能适用于门户中的 SSH 连接,提供了一个安全的、一键式体验,用于 Linux 虚拟机。
虽然 Azure Bastion (Azure Bastion) 保护了用户与虚拟机之间的连接,但仍然存在一个关键的访问管理挑战:防止即使是经过 Entra ID 认证的用户对敏感虚拟机保持持久的、始终开启的访问。基于角色的即时 (Just-In-Time, JIT) 访问有助于解决这个问题,确保仅在必要时才授予访问,并且仅在获得明确批准后。通过将 Azure Bastion (Azure Bastion) 与 Microsoft Entra 特权身份管理 (PIM) 集成,组织可以实施基于时间的、基于批准的访问控制。这强制执行了零信任 (Zero Trust) 方法,其中虚拟机默认不可访问,仅通过管理员批准的请求激活访问。
## 通过 Microsoft Entra PIM 强制执行零信任 (Zero Trust) 访问
Microsoft Entra 特权身份管理 (PIM) 便于基于批准的角色激活的即时 (Just-In-Time) 访问,从而缓解 Azure 或其他 Microsoft 在线服务中过度、不必要或被滥用的访问权限风险。为了便于零信任 (Zero Trust) 方法,需要执行特权操作的用户可以获得即时特权访问权限来访问 Azure 资源。
## 完美结合
要通过 Azure Bastion (Azure Bastion) 访问虚拟机,需要以下角色:
| 功能 | 所需的 IAM |
|------|------------|
| 连接到 Bastion | Reader 角色在 Bastion 上 <br> Reader 角色在目标虚拟机上 |
| 通过 Microsoft Entra ID 认证登录虚拟机 | Virtual Machine Administrator Login 角色在虚拟机上 **或** Virtual Machine User Login 角色在虚拟机上 |
在 Azure 门户中,在特权身份管理资源下,有两种分配类型,用户可能具有:
- **Eligible assignments**:角色成员需要执行操作才能使用角色。操作可能包括执行多因素认证 (MFA) 检查、提供业务理由或请求指定批准者的批准。
- **Active assignments**:成员无需执行任何操作即可使用角色。被分配为活跃的成员始终拥有分配给角色的特权。
让我们探讨如何将这些服务结合来支持虚拟机访问的零信任 (Zero Trust) 方法。
### 示例客户用例
在 Contoso 公司,用户 Adam 希望访问虚拟机以进行每月修补工作。Adam 的经理 Jane 是订阅的管理员,她批准或拒绝所有对虚拟机的访问。Jane 已将订阅中的虚拟机访问设置为,所有需要使用虚拟机的人员都具有“Eligible”访问。此外,她设置了一个网络安全规则,仅允许来自 Bastion 的入站流量。这确保了零信任 (Zero Trust) 方法,不仅保护虚拟机免受网络级攻击,还限制了虚拟机的“按需”访问。
| 用户 | 角色 | 角色状态 |
|------|------|----------|
| Adam | Reader 角色在 Bastion 上 | Active |
| Reader 角色在虚拟机上 | Eligible |
| Virtual Machine User Login 角色在虚拟机上 | Eligible |
| Reader 角色在虚拟机 NIC 上 | Active |
| Reader 角色在托管虚拟机和 Bastion 的虚拟网络上 | Active |
由于 Adam 仅对虚拟机具有 **Eligible** 访问,该资源在门户中不可见。要获得虚拟机的访问,Adam 转到门户中的特权身份管理资源,并在 Azure 角色下,选择“Eligible assignments”并点击他希望激活的角色。

一旦 Jane 批准请求,Adam 将在接下来的 X 小时内获得虚拟机的访问。Azure Bastion (Azure Bastion) 充当 Adam 与虚拟机之间的安全网关,消除了虚拟机上公共 IP 的需求。相反,Adam 通过 Bastion 的公共 IP 连接,并使用他的 Microsoft Entra ID 凭证进行认证。如果在 Bastion 上启用了会话记录,所有 Adam 在虚拟机内的活动都将被图形捕获并存储在指定的存储帐户容器中。这些记录可以随时通过 Bastion 资源边栏进行查看。当 JIT (Just-In-Time) 访问窗口到期时,Adam 的访问将被自动撤销,将虚拟机恢复到零访问状态。

## 结语
Azure Bastion (Azure Bastion) 消除了虚拟机上公共 IP 地址的需求,从而显著降低了它们暴露在互联网的风险。它与 Entra ID 无缝集成,允许用户直接对虚拟机进行认证,而不依赖本地凭证。当与通过 Microsoft Entra 特权身份管理 (PIM) 的即时 (Just-In-Time, JIT) 访问结合时,Bastion 添加了额外的安全层——确保即使是授权用户仅在批准的时间窗口内连接到虚拟机。这种分层方法不仅简化了安全连接,还强化了强大的零信任 (Zero Trust) 访问模型。
更新于 2025 年 4 月 18 日
版本 1.0
<!-- AI_TASK_END: AI全文翻译 -->