代码之家  ›  专栏  ›  技术社区  ›  Jayendran

Azure策略:存储帐户最小TLS部署不存在

  •  0
  • Jayendran  · 技术社区  · 3 年前

    当TLS设置不等于TLS 1.2时,尝试为我的所有现有存储帐户更新TLS 1.2

     "if": {
        "allOf": [
          {
            "field": "type",
            "equals": "Microsoft.Storage/storageAccounts"
          },
          {
            "field": "location",
            "in": "[parameters('deploymentLocations')]"
          }    
        ]
      },
      "then": {
        "effect": "deployIfNotExists",
        "details": {
          "type": "Microsoft.Storage/storageAccounts",
          "roleDefinitionIds": [
            "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
          ],
          "existenceCondition": {       
            "allOf": [
              {
                "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                "Equals": "TLS1_2"
              },
              {
                "exists": "true",
                "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion"
              }
            ]
          },
    

    问题是该策略也显示了TLS 1.1中存储帐户的合规性,而这不应该是!

    我试图修改 existenceCondition 具有 anyOf 运气不好还是一样的问题。以为我错过了什么 existenceCondtion

    0 回复  |  直到 3 年前
        1
  •  1
  •   NotFound    3 年前

    您可以尝试以下策略:

    {
      "mode": "All",
      "policyRule": {
        "if": {
          "allOf": [
            {
              "field": "type",
              "equals": "Microsoft.Storage/storageAccounts"
            },
            {
              "anyOf": [
                {
                  "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                  "exists": "false"
                },
                {
                  "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                  "notEquals": "TLS1_2"
                }
              ]
            }
          ]
        },
        "then": {
          "effect": "modify",
          "details": {
            "roleDefinitionIds": [
              "/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
            ],
            "conflictEffect": "audit",
            "operations": [
              {
                "operation": "addOrReplace",
                "field": "Microsoft.Storage/storageAccounts/minimumTlsVersion",
                "value": "TLS1_2"
              }
            ]
          }
        }
      },
      "parameters": {}
    }
    

    它将所有新资源的TLS修改为1.2。旧资源经过审核,可以通过Azure门户中的Azure策略页面中的补救任务进行更改。