使用 Azure Stack Hub 策略模块管理 Azure Policy

使用 Azure Stack Hub 策略模块,可为 Azure 订阅配置与 Azure Stack Hub 相同的版本控制和服务可用性。 该模块使用 New-AzPolicyDefinition PowerShell cmdlet 创建一项 Azure 策略,用于限制订阅中提供的资源类型和服务。 然后使用 New-AzPolicyAssignment cmdlet 在合适的范围内创建一个策略分配。 配置策略后,可以使用 Azure 订阅来开发针对 Azure Stack Hub 的应用。

注意

Azure Stack Hub 策略模块旨在用于公共 Azure,作为部署到 Azure Stack Hub 的测试。

安装模块

  1. 按照安装适用于 Azure Stack Hub 的 PowerShell 的步骤 1 中的说明,安装所需的 Az PowerShell 模块版本。

  2. 从 GitHub 下载 Azure Stack Hub 工具

  3. 配置适用于 Azure Stack Hub 的 PowerShell

  4. 导入 AzureStack.Policy.psm1 模块:

    Import-Module .\Policy\AzureStack.Policy.psm1
    

将策略应用于 Azure 订阅

可以使用以下命令将默认 Azure Stack Hub 策略应用于 Azure 订阅。 在运行这些命令之前,请将 Azure subscription name 替换为 Azure 订阅的名称。

Connect-AzAccount
$s = Select-AzSubscription -SubscriptionName "Azure subscription name"
$policy = New-AzPolicyDefinition -Name AzureStackPolicyDefinition -Policy (Get-AzsPolicy)
$subscriptionID = $s.Subscription.SubscriptionId
New-AzPolicyAssignment -Name AzureStack -PolicyDefinition $policy -Scope /subscriptions/$subscriptionID

将策略应用于资源组

你可能想要应用更细化的策略。 例如,你在相同的订阅中可能有其他正在运行的资源。 可以将策略应用范围限定为特定资源组,这样就可以使用 Azure 资源测试 Azure Stack Hub 的应用。 在运行以下命令之前,请将 Azure subscription name 替换为 Azure 订阅的名称:

Connect-AzAccount
$rgName = 'myRG01'
$s = Select-AzSubscription -SubscriptionName "Azure subscription name"
$policy = New-AzPolicyDefinition -Name AzureStackPolicyDefinition -Policy (Get-AzsPolicy)
$subscriptionID = $s.Subscription.SubscriptionId
New-AzPolicyAssignment -Name AzureStack -PolicyDefinition $policy -Scope /subscriptions/$subscriptionID/resourceGroups/$rgName

执行中的策略

部署 Azure Policy 后,当尝试部署被策略禁止的资源时会收到错误:

由于策略约束而资源部署失败的结果

后续步骤