Azure即时访问(Just-In-Time):如何在Azure门户外申请权限?
替代Azure Portal申请JIT访问权限的方式
当然有,除了Azure Portal,你可以通过Azure CLI、PowerShell或者REST API来申请即时访问(JIT)权限,具体操作如下:
Azure CLI方式
使用az vm jit-policy request命令直接提交申请,示例如下:
az vm jit-policy request \ --resource-group myResourceGroup \ --name myVM \ --ports '[{"number":22,"endTimeUtc":"2024-05-20T12:00:00Z"}]'
- 替换
myResourceGroup为你的VM所在资源组名称 - 替换
myVM为目标虚拟机名称 ports参数中指定需要开放的端口和UTC格式的过期时间(示例为开放22端口至2024年5月20日12点)
Azure PowerShell方式
使用Request-AzVmJitAccessPolicy cmdlet完成申请,示例:
# 设置访问过期时间(示例为1小时后,UTC格式) $expireTime = (Get-Date).AddHours(1).ToUniversalTime() # 构造JIT访问策略对象 $jitPolicy = @{ Id = "/subscriptions/<你的订阅ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM" Ports = @{ Number = 22 EndTimeUtc = $expireTime } } # 提交申请 Request-AzVmJitAccessPolicy -ResourceGroupName myResourceGroup -VirtualMachineName myVM -JitAccessPolicy $jitPolicy
- 替换
<你的订阅ID>、myResourceGroup和myVM为实际资源信息 - 调整
AddHours(1)可设置不同的访问时长
REST API方式
发送POST请求到Azure管理API(需先获取Azure AD认证令牌):
- 请求URL:
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/jitNetworkAccessPolicies/{vmName}/initiate?api-version=2020-01-01 - 请求体(JSON格式):
{ "virtualMachines": [ { "id": "/subscriptions/<你的订阅ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM", "ports": [ { "number": 22, "endTimeUtc": "2024-05-20T12:00:00Z" } ] } ] }
- 替换URL和请求体中的占位符为实际资源信息
如果需要批量或自动化申请,还可以把上述命令集成到脚本中,或者通过Azure Automation Runbook实现定时/触发式的权限申请。
内容的提问来源于stack exchange,提问作者One Developer
相关产品推荐
相关产品推荐

