允许的资源类型

此策略确保仅部署已批准的资源类型。 指定一个允许的资源类型的数组。

如果没有 Azure 订阅,可在开始前创建一个试用帐户

示例模板

{
  "properties": {
    "displayName": "Allowed resource types",
    "policyType": "BuiltIn",
    "description": "This policy enables you to specify the resource types that your organization can deploy.",
    "parameters": {
      "listOfResourceTypesAllowed": {
        "type": "Array",
        "metadata": {
          "description": "The list of resource types that can be deployed.",
          "displayName": "Allowed resource types",
          "strongType": "resourceTypes"
        }
      }
    },
    "policyRule": {
      "if": {
        "not": {
          "field": "type",
          "in": "[parameters('listOfResourceTypesAllowed')]"
        }
      },
      "then": {
        "effect": "deny"
      }
    }
  },
  "id": "/providers/Microsoft.Authorization/policyDefinitions/a08ec900-254a-4555-9bf5-e42af04b5c5c",
  "type": "Microsoft.Authorization/policyDefinitions",
  "name": "a08ec900-254a-4555-9bf5-e42af04b5c5c"
}

可将 Azure 门户PowerShellAzure CLI 配合使用来部署此模板。

使用门户进行部署

“部署到 Azure”

使用 PowerShell 进行部署

本示例需要 Azure PowerShell 模块 5.1.1 或更高版本。 运行 Get-Module -ListAvailable AzureRM 即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure PowerShell 模块

运行 Connect-AzureRmAccount -Environment AzureChinaCloud,创建与 Azure 的连接。

$definition = New-AzureRmPolicyDefinition -Name "allowed-resourcetypes" -DisplayName "Allowed resource types" -description "This policy enables you to specify the resource types that your organization can deploy." -Policy 'https://raw.githubusercontent.com/Azure/azure-policy/master/samples/built-in-policy/allowed-resourcetypes/azurepolicy.rules.json' -Parameter 'https://raw.githubusercontent.com/Azure/azure-policy/master/samples/built-in-policy/allowed-resourcetypes/azurepolicy.parameters.json' -Mode All
$definition
$assignment = New-AzureRMPolicyAssignment -Name <assignmentname> -Scope <scope>  -listOfResourceTypesAllowed <Allowed resource types> -PolicyDefinition $definition
$assignment

清理 PowerShell 部署

运行以下命令来删除资源组、VM 和所有相关资源。

Remove-AzureRmResourceGroup -Name myResourceGroup

使用 Azure CLI 进行部署

若要运行此示例,请确保已安装最新版本的 Azure CLI。 若要开始,请运行 az login 以创建与 Azure 的连接。

Note

在运行 az login 之前,请先运行 az cloud set -n AzureChinaCloud 以更改云环境。 如果要切换回全球 Azure,请再次运行 az cloud set -n AzureCloud

此示例在 Bash shell 中正常工作。 有关在 Windows 客户端上运行 Azure CLI 脚本的选项,请参阅在 Windows 上安装 Azure CLI

az policy definition create --name 'allowed-resourcetypes' --display-name 'Allowed resource types' --description 'This policy enables you to specify the resource types that your organization can deploy.' --rules 'https://raw.githubusercontent.com/Azure/azure-policy/master/samples/built-in-policy/allowed-resourcetypes/azurepolicy.rules.json' --params 'https://raw.githubusercontent.com/Azure/azure-policy/master/samples/built-in-policy/allowed-resourcetypes/azurepolicy.parameters.json' --mode All

az policy assignment create --name <assignmentname> --scope <scope> --policy "allowed-resourcetypes"

清理 Azure CLI 部署

运行以下命令来删除资源组、VM 和所有相关资源。

az group delete --name myResourceGroup --yes

后续步骤