Azure虚拟机创建后自动启用JIT的自动化方案及相关政策问询
在Azure中自动为新创建VM启用即时访问(JIT)的方案
完全可以实现自动化,不用再每月手动处理未启用JIT的VM,以下是几种可行的策略:
1. 用Azure Policy强制/自动启用JIT
- 可以使用内置策略或创建自定义的
DeployIfNotExists策略,覆盖订阅或资源组层级:- 策略会自动检查新创建(或已存在)的VM是否启用了JIT,若未启用则自动部署预设的JIT配置(比如允许的端口、访问时长、可访问IP范围等)。
- 这种方式能从管控层面确保所有VM都符合JIT启用要求,避免用户遗漏。
2. Azure Automation Runbook定期扫描并修复
- 创建PowerShell或Python类型的Runbook,配置每日/每周的触发计划,自动扫描订阅内未启用JIT的VM并启用:
- 示例PowerShell代码片段:
# 以托管身份连接Azure Connect-AzAccount -Identity # 获取所有未配置JIT的VM $targetVMs = Get-AzVM | ForEach-Object { $jitPolicy = Get-AzJitNetworkAccessPolicy -ResourceGroupName $_.ResourceGroupName -Name $_.Name -ErrorAction SilentlyContinue if (-not $jitPolicy) { $_ } } # 批量启用JIT foreach ($vm in $targetVMs) { $jitConfig = @{ Id = $vm.Id Ports = @( @{ Number = 22 Protocol = "*" AllowedSourceAddressPrefix = "*" MaxRequestAccessDuration = "PT3H" }, @{ Number = 3389 Protocol = "*" AllowedSourceAddressPrefix = "*" MaxRequestAccessDuration = "PT3H" } ) } Set-AzJitNetworkAccessPolicy -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name -VirtualMachine $jitConfig }
- 这种方式适合需要兼容现有未启用JIT的VM,同时监控新创建的VM。
3. 在部署模板中直接集成JIT配置
- 要求用户通过ARM或Bicep模板部署VM,在模板中直接定义JIT网络访问策略,确保VM创建完成后自动启用JIT:
- Bicep模板示例片段:
resource vm 'Microsoft.Compute/virtualMachines@2023-07-01' = { name: 'my-vm' location: resourceGroup().location // VM其他配置... } // 关联JIT策略 resource jitAccessPolicy 'Microsoft.Security/jitNetworkAccessPolicies@2020-01-01' = { name: vm.name location: vm.location properties: { virtualMachines: [ { id: vm.id ports: [ { number: 22 protocol: '*' allowedSourceAddressPrefixes: ['192.168.0.0/24'] // 限制访问IP范围 maxRequestAccessDuration: 'PT3H' } ] } ] } }
- 从部署源头解决问题,避免用户手动创建VM时遗漏JIT配置。
内容的提问来源于stack exchange,提问作者Suri007
相关产品推荐
相关产品推荐

