Feladatvégrehajtás kényszerítése hibrid runbook-feldolgozón az Azure Policy használatával
Fontos
- 2025. április 1-től az ügynökalapú hibrid feldolgozón futó összes feladat leáll.
- Az Azure Automation Agent-alapú felhasználói hibrid runbook-feldolgozó (Windows és Linux) 2024. augusztus 31-én megszűnt, és már nem támogatott. Kövesse a meglévő ügynökalapú felhasználói hibrid runbook-feldolgozókról bővítményalapú hibrid feldolgozókra való migrálásra vonatkozó irányelveket.
A runbook hibrid runbook-feldolgozón való indítása egy Futtatás lehetőséggel történik, amely lehetővé teszi egy hibrid runbook-feldolgozó csoport nevének megadását az Azure Portalról való indításkor az Azure PowerShell vagy a REST API használatával. Ha egy csoport meg van adva, a csoport egyik feldolgozója lekéri és futtatja a runbookot. Ha a runbook nem adja meg ezt a beállítást, az Azure Automation az Azure-tesztkörnyezetben futtatja a runbookot.
A szervezet bármely tagja, aki tagja az Automation-feladatkezelőnek vagy magasabb szintűnek, létrehozhat runbook-feladatokat. Az Automation-fiók hibrid runbook-feldolgozó csoportját célzó runbook-végrehajtás kezeléséhez használhatja az Azure Policyt. Ez segít kikényszeríteni a szervezeti szabványokat, és biztosítani, hogy az automatizálási feladatokat a kijelöltek felügyelik és felügyelik, és senki nem hajthat végre runbookot egy Azure-tesztkörnyezetben, csak hibrid runbook-feldolgozókon.
A cikk egy egyéni Azure Policy-definíciót tartalmaz, amellyel a következő Automation REST API-műveletek segítségével szabályozhatja ezeket a tevékenységeket. Ezek konkrétan a következők:
Ez a szabályzat a runOn
tulajdonságon alapul. A szabályzat ellenőrzi a tulajdonság értékét, amelynek tartalmaznia kell egy meglévő hibrid runbook-feldolgozócsoport nevét. Ha az érték null, akkor a rendszer úgy értelmezi, hogy a feladathoz, a feladatütemezéshez vagy a webhookhoz tartozó létrehozási kérés az Azure-tesztkörnyezethez készült, és a kérés megtagadva.
A szükséges engedélyek
Az Azure Policy-erőforrásokhoz való engedélyhez az előfizetés szintjén a Tulajdonos szerepkör tagjának kell lennie.
A szabályzatdefiníció létrehozása és hozzárendelése
Itt megírjuk a szabályzatszabályt, majd hozzárendeljük egy felügyeleti csoporthoz vagy előfizetéshez, és opcionálisan megadunk egy erőforráscsoportot az előfizetésben. Ha még nem ismeri a szabályzatnyelvet, tekintse meg a szabályzatdefiníciók struktúráját a szabályzatdefiníció strukturálásához.
Az alábbi JSON-kódrészlettel hozzon létre egy JSON-fájlt AuditAutomationHRWJobExecution.json néven.
{ "properties": { "displayName": "Enforce job execution on Automation Hybrid Runbook Worker", "description": "Enforce job execution on Hybrid Runbook Workers in your Automation account.", "mode": "all", "parameters": { "effectType": { "type": "string", "defaultValue": "Deny", "allowedValues": [ "Deny", "Disabled" ], "metadata": { "displayName": "Effect", "description": "Enable or disable execution of the policy" } } }, "policyRule": { "if": { "anyOf": [ { "allOf": [ { "field": "type", "equals": "Microsoft.Automation/automationAccounts/jobs" }, { "value": "[length(field('Microsoft.Automation/automationAccounts/jobs/runOn'))]", "less": 1 } ] }, { "allOf": [ { "field": "type", "equals": "Microsoft.Automation/automationAccounts/webhooks" }, { "value": "[length(field('Microsoft.Automation/automationAccounts/webhooks/runOn'))]", "less": 1 } ] }, { "allOf": [ { "field": "type", "equals": "Microsoft.Automation/automationAccounts/jobSchedules" }, { "value": "[length(field('Microsoft.Automation/automationAccounts/jobSchedules/runOn'))]", "less": 1 } ] } ] }, "then": { "effect": "[parameters('effectType')]" } } } }
Futtassa a következő Azure PowerShell- vagy Azure CLI-parancsot egy szabályzatdefiníció létrehozásához a AuditAutomationHRWJobExecution.json fájl használatával.
az policy definition create --name 'audit-enforce-jobs-on-automation-hybrid-runbook-workers' --display-name 'Audit Enforce Jobs on Automation Hybrid Runbook Workers' --description 'This policy enforces job execution on Automation account user Hybrid Runbook Workers.' --rules 'AuditAutomationHRWJobExecution.json' --mode All
A parancs létrehoz egy naplózási kényszerítő feladatok nevű szabályzatdefiníciót az Automation hibrid runbook-feldolgozóiban. További információ a használható egyéb paraméterekről: az policy definition create.
Helyparaméterek
az policy definition create
nélkül hívva alapértelmezés szerint a szabályzatdefiníciót a munkamenet-környezet kiválasztott előfizetésében menti. Ha a definíciót egy másik helyre szeretné menteni, használja a következő paramétereket:- előfizetés – Mentés másik előfizetésbe. Az előfizetés azonosítójának GUID-értéke vagy az előfizetés nevének sztringértéke szükséges.
- felügyeleti csoport – Mentés felügyeleti csoportba. Sztringértéket igényel.
A szabályzatdefiníció létrehozása után a következő parancsok futtatásával hozhat létre szabályzat-hozzárendelést:
az policy assignment create --name '<name>' --scope '<scope>' --policy '<policy definition ID>'
A hatókörparaméter
az policy assignment create
felügyeleti csoporttal, előfizetéssel, erőforráscsoporttal vagy egyetlen erőforrással működik. A paraméter egy teljes erőforrás-elérési utat használ. Az egyes tárolók hatókörének mintája a következő. Cserélje le{rName}
a ,{rgName}
,{subId}
és{mgName}
az erőforrás nevét, az erőforráscsoport nevét, az előfizetés azonosítóját és a felügyeleti csoport nevét.{rType}
az erőforrás erőforrástípusára, példáulMicrosoft.Compute/virtualMachines
egy virtuális gépre lesz lecserélve.- Erőforrás-
/subscriptions/{subID}/resourceGroups/{rgName}/providers/{rType}/{rName}
- Erőforráscsoport –
/subscriptions/{subID}/resourceGroups/{rgName}
- Előfizetés-
/subscriptions/{subID}
- Felügyeleti csoport –
/providers/Microsoft.Management/managementGroups/{mgName}
Az Azure Policy Definition AZONOSÍTÓját a PowerShell használatával szerezheti be a következő paranccsal:
az policy definition show --name 'Audit Enforce Jobs on Automation Hybrid Runbook Workers'
A létrehozott szabályzatdefiníció szabályzatdefiníció-azonosítójának az alábbi példához kell hasonlítania:
"/subscription/<subscriptionId>/providers/Microsoft.Authorization/policyDefinitions/Audit Enforce Jobs on Automation Hybrid Runbook Workers"
- Erőforrás-
Jelentkezzen be az Azure Portalra.
Indítsa el az Azure Policy szolgáltatást az Azure Portalon a Minden szolgáltatás kiválasztásával, majd a Szabályzat keresésével és kiválasztásával.
Válassza a Megfelelőség lehetőséget a lap bal oldalán. Ezután keresse meg a létrehozott szabályzat-hozzárendelést.
Ha az Automation REST-műveletek egyike hibrid runbook-feldolgozóra való hivatkozás nélkül fut a kérelem törzsében, a rendszer egy 403-as válaszkódot ad vissza a következő példához hasonló hibával, amely az Azure-tesztkörnyezetben végrehajtott műveletet jelzi:
{
"error": {
"code": "RequestDisallowedByPolicy",
"target": "Start_VMS",
"message": "Resource 'Start_VMS' was disallowed by policy. Policy identifiers: '[{\"policyAssignment\":{\"name\":\"Enforce Jobs on Automation Hybrid Runbook Workers\",\"id\":\"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MAIC-RG/providers/Microsoft.Authorization/policyAssignments/fd5e2cb3842d4eefbc857917\"},\"policyDefinition\":{\"name\":\"Enforce Jobs on Automation Hybrid Runbook Workers\",\"id\":\"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/policyDefinitions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f\"}}]'.",
"additionalInfo": [
{
"type": "PolicyViolation",
"info": {
"policyDefinitionDisplayName": "Enforce Jobs on Automation Hybrid Runbook Workers",
"evaluationDetails": {
"evaluatedExpressions": [
{
"result": "True",
"expressionKind": "Field",
"expression": "type",
"path": "type",
"expressionValue": "Microsoft.Automation/automationAccounts/jobs",
"targetValue": "Microsoft.Automation/automationAccounts/jobs",
"operator": "Equals"
},
{
"result": "True",
"expressionKind": "Value",
"expression": "[length(field('Microsoft.Automation/automationAccounts/jobs/runOn'))]",
"expressionValue": 0,
"targetValue": 1,
"operator": "Less"
}
]
},
"policyDefinitionId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Authorization/policyDefinitions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"policyDefinitionName": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"policyDefinitionEffect": "Deny",
"policyAssignmentId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MAIC-RG/providers/Microsoft.Authorization/policyAssignments/fd5e2cb3842d4eefbc857917",
"policyAssignmentName": "fd5e2cb3842d4eefbc857917",
"policyAssignmentDisplayName": "Enforce Jobs on Automation Hybrid Runbook Workers",
"policyAssignmentScope": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MAIC-RG",
"policyAssignmentParameters": {}
}
}
]
}
}
A megkísérelt műveletet az Automation-fiók tevékenységnaplójában is naplózza a rendszer, az alábbi példához hasonlóan.
Következő lépések
A runbookok használatához lásd : Runbookok kezelése az Azure Automationben.