Azure 虚拟机
从 Azure 虚拟机对 VM 启用 JIT
可以从 Azure 门户的 Azure 虚拟机页面对 VM 启用 JIT。
提示
如果 VM 已启用 JIT,则 VM 配置页会显示已启用 JIT。 可以使用链接在 Defender for Cloud 中打开 JIT VM 访问页,以查看和更改设置。
在 Azure 门户中,搜索并选择“虚拟机”。
选择要通过 JIT 保护的虚拟机。
在菜单中选择配置。
在“实时访问”下,选择“启用实时” 。
默认情况下,VM 的实时访问使用以下设置:
- Windows 计算机
- RDP 端口:3389
- 允许的最长访问时间:三小时
- 允许的源 IP 地址:任意
- Linux 计算机
- SSH 端口:22
- 允许的最长访问时间:三小时
- 允许的源 IP 地址:任意
若要编辑任意这些值,或将更多端口添加到 JIT 配置,请使用 Microsoft Defender for Cloud 的实时访问页:
在 Defender for Cloud 的菜单中,选择“实时 VM 访问”。
在“已配置”选项卡上,右键单击要向其添加端口的 VM,然后选择“编辑”。
在“JIT VM 访问配置”下,可以编辑已保护的端口的现有设置,也可以添加新的自定义端口。
编辑完端口后,选择“保存”。
从 Azure 虚拟机的连接页请求访问启用了 JIT 的 VM
如果 VM 启用了 JIT,则必须请求连接到它所需的访问权限。 不管你启用 JIT 的方式如何,你都可以通过任何受支持的方式请求访问权限。
若要请求从 Azure 虚拟机进行访问,请执行以下操作:
在 Azure 门户中,打开虚拟机页面。
选择要连接到的 VM,然后打开连接页。
Azure 会查看是否已在该 VM 上启用了 JIT。
注意
批准对受 Azure 防火墙保护的 VM 的请求之后,Defender for Cloud 会为用户提供正确的连接详细信息(DNAT 表中的端口映射),用于连接到 VM。
PowerShell
使用 PowerShell 对 VM 启用 JIT
若要从 PowerShell 启用实时 VM 访问,请使用官方 Microsoft Defender for Cloud PowerShell cmdlet Set-AzJitNetworkAccessPolicy
。
示例 - 按照以下规则对特定 VM 启用实时 VM 访问:
- 关闭端口 22 和 3389
- 将每个端口的最大时间窗口设置为 3 小时,使它们能够按已批准的请求打开
- 允许正在请求访问权限的用户控制源 IP 地址
- 允许正在请求访问权限的用户在实时访问请求获得批准后建立一个成功的会话
以下 PowerShell 命令创建此 JIT 配置:
分配变量,以便保存 VM 的实时 VM 访问规则:
$JitPolicy = (@{
id="/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Compute/virtualMachines/VMNAME";
ports=(@{
number=22;
protocol="*";
allowedSourceAddressPrefix=@("*");
maxRequestAccessDuration="PT3H"},
@{
number=3389;
protocol="*";
allowedSourceAddressPrefix=@("*");
maxRequestAccessDuration="PT3H"})})
将 VM 的实时 VM 访问规则插入数组:
$JitPolicyArr=@($JitPolicy)
对所选 VM 配置实时 VM 访问规则:
Set-AzJitNetworkAccessPolicy -Kind "Basic" -Location "LOCATION" -Name "default" -ResourceGroupName "RESOURCEGROUP" -VirtualMachine $JitPolicyArr
使用 -Name 参数指定 VM。 例如,若要为两个不同的 VM(VM1 和 VM2)建立 JIT 配置,请使用 Set-AzJitNetworkAccessPolicy -Name VM1
和 Set-AzJitNetworkAccessPolicy -Name VM2
。
使用 PowerShell 请求访问启用了 JIT 的 VM
在以下示例中,可以看到针对端口 22、特定 IP 地址和特定时间量对特定 VM 的实时 VM 访问请求:
在 PowerShell 中运行以下命令:
配置 VM 请求访问属性:
$JitPolicyVm1 = (@{
id="/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Compute/virtualMachines/VMNAME";
ports=(@{
number=22;
endTimeUtc="2020-07-15T17:00:00.3658798Z";
allowedSourceAddressPrefix=@("IPV4ADDRESS")})})
在数组中插入 VM 访问请求参数:
$JitPolicyArr=@($JitPolicyVm1)
发送访问请求(使用步骤 1 中的资源 ID)
Start-AzJitNetworkAccessPolicy -ResourceId "/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Security/locations/LOCATION/jitNetworkAccessPolicies/default" -VirtualMachine $JitPolicyArr
有关详细信息,请参阅 PowerShell cmdlet 文档。
REST API
使用 REST API 对 VM 启用 JIT
通过 Microsoft Defender for Cloud API 可以使用实时 VM 访问功能。 使用此 API 获取有关已配置 VM 的信息、添加新的 VM、请求访问 VM,等等。
有关详细信息,请参阅 JIT 网络访问策略。
使用 REST API 请求访问启用了 JIT 的 VM
通过 Microsoft Defender for Cloud API 可以使用实时 VM 访问功能。 使用此 API 获取有关已配置 VM 的信息、添加新的 VM、请求访问 VM,等等。
有关详细信息,请参阅 JIT 网络访问策略。
在 Defender for Cloud 中审核 JIT 访问活动
可以使用日志搜索深入了解 VM 活动。 若要查看日志,请执行以下操作: