You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过脚本配置Azure资源策略限制资源部署位置?

使用PowerShell脚本配置Azure资源允许位置策略

前提准备

  • 安装最新版Azure PowerShell模块:Install-Module -Name Az -Force -AllowClobber
  • 登录Azure账号:Connect-AzAccount

完整脚本示例

# 定义核心参数
$allowedLocations = @("eastus", "westus") # 替换为你需要的目标位置
$policyName = "AllowedLocationsPolicy"
$policyDescription = "限制资源仅能部署到指定允许位置"
$policyScope = "/subscriptions/你的订阅ID" # 可替换为资源组ID,格式:"/subscriptions/xxx/resourceGroups/xxx"

# 创建策略定义
$policyDefinition = New-AzPolicyDefinition `
    -Name $policyName `
    -DisplayName "允许的资源部署位置" `
    -Description $policyDescription `
    -Policy '{
        "mode": "Indexed",
        "policyRule": {
            "if": {
                "allOf": [
                    {
                        "field": "location",
                        "notIn": "[parameters(''allowedLocations'')]"
                    },
                    {
                        "field": "location",
                        "notEquals": "global"
                    },
                    {
                        "not": {
                            "field": "type",
                            "in": [
                                "Microsoft.AAD/domainServices",
                                "Microsoft.Blueprint/blueprints",
                                "Microsoft.Blueprint/blueprintAssignments"
                            ]
                        }
                    }
                ]
            },
            "then": {
                "effect": "Deny"
            }
        },
        "parameters": {
            "allowedLocations": {
                "type": "Array",
                "metadata": {
                    "description": "允许资源部署的位置列表",
                    "displayName": "允许的位置"
                }
            }
        }
    }' `
    -Parameter '{
        "allowedLocations": {
            "value": ["' + ($allowedLocations -join '","') + '"]
        }
    }'

# 将策略分配到指定作用域
New-AzPolicyAssignment `
    -Name "$policyName-Assignment" `
    -PolicyDefinition $policyDefinition `
    -Scope $policyScope

关键配置说明

  • 允许位置调整:直接修改$allowedLocations数组,填入Azure官方支持的位置名称(如southeastasia、northeurope等)
  • 作用域选择:$policyScope可设置为订阅或资源组级别,按需切换
  • 特殊资源排除:脚本默认排除了部分不受位置限制的资源类型(如Azure AD域服务),若需新增排除项,直接在策略规则的type数组中添加对应资源类型即可
  • 生效模式:当前使用Deny效果会直接阻止违规部署,也可改为Audit仅记录操作不阻止

验证策略生效

执行脚本后,可通过以下命令查看已分配的策略:

Get-AzPolicyAssignment -Scope $policyScope | Where-Object { $_.Name -like "*$policyName*" }

内容的提问来源于stack exchange,提问作者cloud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 03:55:20