Оглавление
1 Объективные 2 Настройки диагностики В Azure Portal 3 Политика 3.1 Политика Правило 3.2 Набор политик Определения 4 Разрешения 5 Развертывание 6 Политика в Azure Portal
1 цель
Ресурсы Azure должны были быть настроены с помощью диагностических настроек. Чтобы применить эти настройки общий подход с Политика Azure имел самые преимущества:
- Управление с шаблонами руки
- Проверьте соблюдение
- Интеграция CI/CD
Азудные диагностические настройки Может быть настроен несколькими способами:
- Портал Azure
- PowerShell.
- Azure Cli.
- Отдых API.
- Политика Azure.
2 Настройки диагностики в Azure Portal
Скриншоты ниже отображают диагностические настройки (журналы и метрики) для учетной записи COSMOS DB.
3 Политика
А политика Содержит разные элементы.
3.1 Правила политики
Каждый тип ресурса нуждается в Правило политики Отказ
Я мое дело, я настроил политику для следующих типов ресурсов:
- Microsoft. Keywault/хранилища
- Microsoft. EventGrid/Timics.
- Microsoft. Eventgrid/eventsubscriptions.
- Microsoft. Веб/сайты
- Microsoft. ServiceBus/пространства имен
- Microsoft. Сеть/NetworksecurityGroups.
- Microsoft. Network/ApplicationGateways.
3.1.1 Пример Тип правила политики
Извлечь из полицию:
"policyRule": { "if": { "field": "type", "equals": "Microsoft.DocumentDB/databaseAccounts" }, "then": { "effect": "[[parameters('effect')]", "details": { "type": "Microsoft.Insights/diagnosticSettings", "name": "[[parameters('profileName')]", "existenceCondition": { "allOf": [ { "field": "Microsoft.Insights/diagnosticSettings/logs.enabled", "equals": "[[parameters('logsEnabled')]" }, { "field": "Microsoft.Insights/diagnosticSettings/metrics.enabled", "equals": "[[parameters('metricsEnabled')]" }, { "field": "Microsoft.Insights/diagnosticSettings/storageAccountId", "equals": "[[parameters('storageExists')]" } ] }, "roleDefinitionIds": [ "/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa", "/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293" ] } } }
3.1.1.1 Существующее
На основании значений параметров будут проверяются диагностические настройки для ведения журнала, метрики и регистрации хранения.
3.1.1.2 RoledefinitioniDs.
Azure встроенные роли обязаны устанавливать правильные разрешения:
-
- 749F88D5-CBAE-40B8-BCFC-E573DDC772FA
-
- 92AAF0DA-9DAB-42B6-94A3-D43CE8D16293
3.1.2
Свойство развертывания содержит журналы и метрики.
Извлечь из полицию:
{ "policyRule": { "if": { }, "then": { "deployment": { "properties": { "mode": "incremental", "template": { "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "resourceName": { "type": "string" }, "location": { "type": "string" }, "logAnalytics": { "type": "string" }, "archiveStorage": { "type": "string" }, "metricsEnabled": { "type": "string" }, "logsEnabled": { "type": "string" }, "storageExists": { "type": "string" }, "profileName": { "type": "string" } }, "variables": {}, "resources": [ { "type": "Microsoft.DocumentDB/databaseAccounts/providers/diagnosticSettings", "apiVersion": "2017-05-01-preview", "name": "[[concat(parameters('resourceName'), '/', 'Microsoft.Insights/', parameters('profileName'))]", "location": "[[parameters('location')]", "dependsOn": [], "properties": { "workspaceId": "[[parameters('logAnalytics')]", "storageAccountId": "[[parameters('archiveStorage')]", "metrics": [ { "category": "Requests", "enabled": true, "retentionPolicy": { "days": 0, "enabled": false }, "timeGrain": null } ], "logs": [ { "category": "DataPlaneRequests", "enabled": true }, { "category": "QueryRuntimeStatistics", "enabled": true }, { "category": "PartitionKeyStatistics", "enabled": true }, { "category": "PartitionKeyRUConsumption", "enabled": true }, { "category": "ControlPlaneRequests", "enabled": true }, { "category": "GremlinRequests", "enabled": true } ] } } ], "outputs": {} }, "parameters": { "location": { "value": "[[field('location')]" }, "resourceName": { "value": "[[field('name')]" }, "logAnalytics": { "value": "[[parameters('logAnalytics')]" }, "archiveStorage": { "value": "[[parameters('archiveStorage')]" }, "metricsEnabled": { "value": "[[parameters('metricsEnabled')]" }, "logsEnabled": { "value": "[[parameters('logsEnabled')]" }, "storageExists": { "value": "[[parameters('storageExists')]" }, "profileName": { "value": "[[parameters('profileName')]" } } } } } } }
3.2 определения политики
Инициатива политики Azure это набор политик.
Экстракт с определением поля политики:
{ "type": "Microsoft.Authorization/policySetDefinitions", "name": "[variables('diagnosticSettingsInitiativeName')]", "apiVersion": "2019-09-01", "dependsOn": [ ], "properties": { "displayName": "MarkusMeyer - Apply diagnostic settings for applicable resources - Log Analytics", "description": "This initiative configures application Azure resources to forward diagnostic logs and metrics to an Azure Log Analytics workspace.", "metadata": { "category": "Monitoring" }, "parameters": { "logAnalytics": { "type": "string", "metadata": { "displayName": "Log Analytics workspace", "description": "Select the Log Analytics workspace from dropdown list", "strongType": "omsWorkspace" } } }, "policyDefinitions": [ { "policyDefinitionId": "[resourceId('Microsoft.Authorization/policyDefinitions/', variables('kvLogPolicyName'))]", "parameters": { "logAnalytics": { "value": "[[parameters('logAnalytics')]" } } }, { "policyDefinitionId": "[resourceId('Microsoft.Authorization/policyDefinitions/', variables('sbLogPolicyName'))]", "parameters": { "logAnalytics": { "value": "[[parameters('logAnalytics')]" } } }, { "policyDefinitionId": "[resourceId('Microsoft.Authorization/policyDefinitions/', variables('cosmosLogPolicyName'))]", "parameters": { "logAnalytics": { "value": "[[parameters('logAnalytics')]" } } }, { "policyDefinitionId": "[resourceId('Microsoft.Authorization/policyDefinitions/', variables('funcLogPolicyName'))]", "parameters": { "logAnalytics": { "value": "[[parameters('logAnalytics')]" } } }, { "policyDefinitionId": "[resourceId('Microsoft.Authorization/policyDefinitions/', variables('evgTopicLogPolicyName'))]", "parameters": { "logAnalytics": { "value": "[[parameters('logAnalytics')]" } } } ] } }
Полный шаблон можно найти в моем Репозиторий GitHub Отказ
4 Разрешения
Следуя Разрешения требуются для развертывания политик:
Действия | Описание |
*/читать | Прочитайте ресурсы всех типов, кроме секретов. |
Microsoft. Авторизация / Пользование / * | Создать и управлять заданиями политики |
Microsoft. Авторизация / ПолитикаПоследие / * | Создание и управление определениями политики |
Microsoft. Авторизация / Политика Отпустя / * | |
Microsoft. Авторизация / PoliciSetEfinitions / * | Создание и управление наборами политики |
Microsoft. PolicyInsights / * | |
Microsoft. Служба поддержки/* | Создание и обновление билета поддержки |
5 развертывание
Политика THS будет развернут на уровне подписки
Политики также могут быть развернуты:
5.1 Azure CLI.
az deployment sub create --location westeurope --template-file .\Policy.json --parameters "@Policy.parameters.json"
5.2 PowerShell.
New-AzDeployment -Name "diagPolicies" -location "West Europe" -TemplateFile .\Policy.json -verbose -TemplateParameterFile .\Policy.parameters.json
6 Политика в Azure Portal
Развернутая политика будет отображаться в Azure Portal Отказ
Оригинал: «https://dev.to/markusmeyer13/configure-azure-diagnostic-settings-with-azure-policies-3j7k»