Инициатива политики шаблона ARM с несколькими параметрами для определений - PullRequest
0 голосов
/ 06 февраля 2020

Я работаю над инфраструктурой как кодом (Ia C), используя шаблоны ARM, и я создаю и назначаю инициативу политики для подписки. В приведенном ниже коде я присвоил инициативе два определения, и шаблон работает правильно, создав определение инициативы и присвоив его моей подписке. В коде вы видите, что первое определение в качестве параметров называется «эффект». Это имя предварительно определенного параметра. Но второе определение имеет параметр, также называемый «эффект». Как определить второй параметр в инициативе, который я могу использовать для второго определения?

Я использую New-AzDeployment для развертывания шаблона, и мы собираемся использовать AzDo для Ia C .

{
  "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "scopeResourceId": "[subscription().id]",
    "policySetDefinitionLocation": "westeurope",
    "policyInitiativeDefinitionName": "MyDefinition",
    "policyInitiativeAssignmentName": "MyDefinitionAssignment",
    "policyInitiativeDisplayName": "My Definition",

    "policyDefinitionIdStorageAccountsEnableHttps": "404c3081-a854-4457-ae30-26a93ef643f9",
    "policyDefinitionIdStorageAccountsTrustMicrosoftServices": "c9d007d0-c057-4772-b18c-01e546713bcd"
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/policySetDefinitions",
      "apiVersion": "2019-09-01",
      "name": "[variables('policyInitiativeDefinitionName')]",
      "properties": {
        "displayName": "[variables('policyInitiativeDisplayName')]",
        "policyType": "Custom",
        "parameters": {
          "effect": {
            "type": "string",
            "metadata": {
              "displayName": "Secure transfer to storage accounts should be enabled",
              "description": "Enable of disable the monitoring of secure transfer for storage accounts"
            },
            "allowedValues": [
              "Audit",
              "Deny",
              "Disabled"
            ],
            "defaultValue": "Audit"
          }
        },
        "policyDefinitions": [
          {
            "policyDefinitionId": "[tenantResourceId('Microsoft.Authorization/policyDefinitions', variables('policyDefinitionIdStorageAccountsEnableHttps'))]",
            "parameters": {
              "effect": {
                "value": "Audit"
              }
            }
          },
          {
            "policyDefinitionId": "[tenantResourceId('Microsoft.Authorization/policyDefinitions', variables('policyDefinitionIdStorageAccountsTrustMicrosoftServices'))]"
          }
        ]
      }
    },
    {
      "type": "Microsoft.Authorization/policyAssignments",
      "apiVersion": "2019-09-01",
      "name": "[variables('policyInitiativeAssignmentName')]",
      "location": "[variables('policySetDefinitionLocation')]",
      "dependsOn": [
        "[variables('policyInitiativeDefinitionName')]"
      ],
      "properties": {
        "scope": "[variables('scopeResourceId')]",
        "policyDefinitionId": "[extensionResourceId(variables('scopeResourceId'), 'Microsoft.Authorization/policySetDefinitions', variables('policyInitiativeDefinitionName'))]",
        "displayName": "[variables('policyInitiativeDisplayName')]",
        "parameters": {
          "effect": {
            "value": "Deny"
          }
        }
      }
    }
  ]
}

Ниже приведен пример того, что я ищу. Я не могу назвать оба параметра "эффект", потому что не может быть дубликатов ie параметров. Но я думаю, что не могу назвать параметр «effect1» (как в примере ниже), потому что я получаю ошибку: «Определение набора правил« MyDefinition »пытается присвоить параметру (ам)« effect1 » которые не определены в определении политики ".

{
    "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "variables": {
        "scopeResourceId": "[subscription().id]",
        "policySetDefinitionLocation": "westeurope",
        "policyInitiativeDefinitionName": "MyDefinition",
        "policyInitiativeAssignmentName": "MyDefinitionAssignment",
        "policyInitiativeDisplayName": "My Definition",

        "policyDefinitionIdStorageAccountsEnableHttps": "404c3081-a854-4457-ae30-26a93ef643f9",
        "policyDefinitionIdStorageAccountsTrustMicrosoftServices": "c9d007d0-c057-4772-b18c-01e546713bcd"
    },
    "resources": [
        {
            "type": "Microsoft.Authorization/policySetDefinitions",
            "apiVersion": "2019-09-01",
            "name": "[variables('policyInitiativeDefinitionName')]",
            "properties": {
                "displayName": "[variables('policyInitiativeDisplayName')]",
                "policyType": "Custom",
                "parameters": {
                    "effect": {
                        "type": "string",
                        "metadata": {
                            "displayName": "Secure transfer to storage accounts should be enabled",
                            "description": "Enable of disable the monitoring of secure transfer for storage accounts"
                        },
                        "allowedValues": [
                            "Audit",
                            "Deny",
                            "Disabled"
                        ],
                        "defaultValue": "Audit"
                    },
                    "effect1": {
                        "type": "string",
                        "metadata": {
                            "displayName": "Storage accounts should allow access from trusted Microsoft services",
                            "description": "Enable of disable the monitoring of allowing access from trusted Microsoft services for storage accounts"
                        },
                        "allowedValues": [
                            "Audit",
                            "Deny",
                            "Disabled"
                        ],
                        "defaultValue": "Audit"
                    }
                },
                "policyDefinitions": [
                    {
                        "policyDefinitionId": "[tenantResourceId('Microsoft.Authorization/policyDefinitions', variables('policyDefinitionIdStorageAccountsEnableHttps'))]",
                        "parameters": {
                            "effect": {
                                "value": "Audit"
                            }
                        }
                    },
                    {
                        "policyDefinitionId": "[tenantResourceId('Microsoft.Authorization/policyDefinitions', variables('policyDefinitionIdStorageAccountsTrustMicrosoftServices'))]",
                        "parameters": {
                            "effect1": {
                                "value": "Audit"
                            }
                        }
                    }
                ]
            }
        },
        {
            "type": "Microsoft.Authorization/policyAssignments",
            "apiVersion": "2019-09-01",
            "name": "[variables('policyInitiativeAssignmentName')]",
            "location": "[variables('policySetDefinitionLocation')]",
            "dependsOn": [
                "[variables('policyInitiativeDefinitionName')]"
            ],
            "properties": {
                "scope": "[variables('scopeResourceId')]",
                "policyDefinitionId": "[extensionResourceId(variables('scopeResourceId'), 'Microsoft.Authorization/policySetDefinitions', variables('policyInitiativeDefinitionName'))]",
                "displayName": "[variables('policyInitiativeDisplayName')]",
                "parameters": {
                    "effect": {
                        "value": "Deny"
                    },
                    "effect1": {
                        "value": "Deny"
                    }
                }
            }
        }
    ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...