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

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

注释

Azure Stack Hub 策略模块旨在用作部署到 Azure Stack Hub 的测试。

安装 模块

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

  2. 从 GitHub 下载 Azure Stack Hub 工具

  3. 配置 PowerShell 以用于 Azure Stack Hub

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

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

将策略应用到 Azure 订阅

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

Connect-AzAccount -Environment AzureChinaCloud
$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 -Environment AzureChinaCloud
$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 策略后,尝试部署策略禁止的资源时会收到错误:

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

后续步骤