Я работаю над инфраструктурой как кодом (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"
}
}
}
}
]
}