Azure Policy - 设置 keys/secrets 的到期时间

Azure Policy - Set expiry for keys/secrets

我正在尝试编写一个 Azure Policy 来检查 Azure 密钥是否有到期日期,如果没有,那么我想执行 DeployIfNotExists 效果来设置一个。但是我收到“ResourceNotFound”错误。

注意:没有“then”语句的“if”语句工作正常,当我运行这个策略时它会告诉我哪些密钥没有到期日期。当我添加 deployifnotexist 效果时出现问题。

{
  "mode": "All",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.KeyVault/vaults/keys"
        },
        {
          "field": "Microsoft.KeyVault/vaults/keys/attributes.exp",
          "exists": false
        }
      ]
    },
    "then": {
      "effect": "deployIfNotExists",
      "details": {
        "type": "Microsoft.KeyVault/vaults/keys",
        "roleDefinitionIds": [
          "/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635"
        ],
        "deployment": {
          "properties": {
            "mode": "incremental",
            "template": {
              "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
              "contentVersion": "1.0.0.0",
              "resources": [
                {
                  "type": "Microsoft.KeyVault/vaults/keys",
                  "apiVersion": "2021-06-01-preview",
                  "properties": {
                    "exp": "10000"
                  }
                }
              ]
            }
          }
        }
      }
    }
  },
  "parameters": {}
}

在这里,您正在 Key Vault 的数据层工作,其中包含什么(密钥、机密、证书)。

在这种情况下,当它与基础结构本身无关(Key Vault 本身的配置)时,您必须为自定义策略使用 Microsoft.KeyVault.Data 模式而不是 All .

也就是说,DeployIfNotExist 政策尚不受支持 - 请参阅 official documentation about Azure Policy for Key Vault。您只能 AuditDeny.