当某个特定资源组的预算超过限制时,有没有什么方法可以限制Azure资源的创建

z9gpfhce  于 2023-05-29  发布在  其他
关注(0)|答案(1)|浏览(174)

我为一个特定的Azure资源组设置了100美元的预算。我希望有一种方法可以在达到预算限制时限制创建Azure资源。看起来,我们可以通过编写自定义策略来实现这一点。但我不太懂写客户保单。因此,请建议我实现此目标的方法,并提供自定义策略定义(如果有的话)。
我已经写了下面的自定义策略来限制创建azure资源,它工作正常。但我也要检查预算限额和当前成本消耗金额,消耗大于或等于预算限额。

{
  "properties": {
    "displayName": "deny-resource-creation",
    "policyType": "Custom",
    "mode": "All",
    "description": "Restrict creation of azure resources.",
    "metadata": {
      "createdBy": "62eddff1-******",
      "createdOn": "2023-05-26T05:08:07.5646255Z",
      "updatedBy": null,
      "updatedOn": null
    },
    "parameters": {},
    "policyRule": {
      "if": {
        "anyOf": [
          {
            "field": "type",
            "like": "Microsoft.*"
          }
        ]
      },
      "then": {
        "effect": "deny"
      }
    }
  }
gojuced7

gojuced71#

当某个特定资源组的预算超过限制时,是否有任何方法可以限制创建Azure资源。
如果应用以下策略,则当预算金额大于或等于budgetAmount参数中指定的值时,它将拒绝资源创建。并且它将拒绝为与指定资源组关联的预算(Microsoft.Consumption/budgets)创建资源。

更新后的政策如下:

{
  "mode": "All",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Consumption/budgets"
        },
        {
          "field": "name",
          "equals": "[concat(parameters('resourceGroupName'), '-Budget')]"
        },
        {
          "field": "type",
          "greaterOrEquals": "[parameters('budgetAmount')]"
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  },
  "parameters": {
    "budgetAmount": {
      "type": "Integer",
      "metadata": {
        "displayName": "budgetAmount",
        "description": "The maximum budget amount."
      },
      "defaultValue": 100
    },
    "resourceGroupName": {
      "type": "String",
      "metadata": {
        "displayName": "resourceGroupName",
        "description": "The name of the resource group to apply the policy to."
      },
      "defaultValue": "ResourceGroup-Name"
    }
  }
}

指定Azure Policy如下。

免责声明:我没有Enterprise Agreement Account来为resource group创建预算以验证策略,但是,我创建的策略没有任何代码错误。如果您已经在环境中创建了预算,则可以测试用于限制资源创建的相同策略。

相关问题