57 строки
5.7 KiB
JSON
57 строки
5.7 KiB
JSON
{
|
|
"contentVersion": "1.0.0.0",
|
|
"parameters": {
|
|
"workbookDisplayName": {
|
|
"type": "string",
|
|
"defaultValue": "Governance assignment deletion",
|
|
"metadata": {
|
|
"description": "The friendly name for the workbook that is used in the Gallery or Saved List. This name must be unique within a resource group."
|
|
}
|
|
},
|
|
"workbookType": {
|
|
"type": "string",
|
|
"defaultValue": "workbook",
|
|
"metadata": {
|
|
"description": "The gallery that the workbook will been shown under. Supported values include workbook, tsg, etc. Usually, this is 'workbook'"
|
|
}
|
|
},
|
|
"workbookSourceId": {
|
|
"type": "string",
|
|
"defaultValue": "Azure Security Center",
|
|
"metadata": {
|
|
"description": "The id of resource instance to which the workbook will be associated"
|
|
}
|
|
},
|
|
"workbookId": {
|
|
"type": "string",
|
|
"defaultValue": "[newGuid()]",
|
|
"metadata": {
|
|
"description": "The unique guid for this workbook instance"
|
|
}
|
|
}
|
|
},
|
|
"resources": [
|
|
{
|
|
"name": "[parameters('workbookId')]",
|
|
"type": "microsoft.insights/workbooks",
|
|
"location": "[resourceGroup().location]",
|
|
"apiVersion": "2022-04-01",
|
|
"dependsOn": [],
|
|
"kind": "shared",
|
|
"properties": {
|
|
"displayName": "[parameters('workbookDisplayName')]",
|
|
"serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":{\"json\":\"## Governance assignment deletion\\nWith this workbook, you can view all governance assignments on scope(s) and delete them with REST API\"},\"name\":\"Title\"},{\"type\":9,\"content\":{\"version\":\"KqlParameterItem/1.0\",\"parameters\":[{\"id\":\"c2cfc2fb-8a68-43cc-8ebc-08cb34a324da\",\"version\":\"KqlParameterItem/1.0\",\"name\":\"Subscriptions\",\"type\":6,\"multiSelect\":true,\"quote\":\"'\",\"delimiter\":\",\",\"value\":[\"value::all\"],\"typeSettings\":{\"additionalResourceOptions\":[\"value::all\"],\"includeAll\":false},\"timeContext\":{\"durationMs\":86400000}}],\"style\":\"above\",\"queryType\":0,\"resourceType\":\"microsoft.operationalinsights/workspaces\"},\"name\":\"Parameters\"},{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"securityresources\\r\\n| where type == \\\"microsoft.security/assessments/governanceassignments\\\"\\r\\n| extend splitedId = split(tolower(id), \\\"microsoft.security/securityconnectors\\\")\\r\\n| extend Scope = iff(tolower(id) has \\\"securityconnectors\\\", strcat(splitedId[0], \\\"microsoft.security/securityconnectors\\\", split(splitedId[1], \\\"/securityentitydata\\\")[0]), tostring(subscriptionId))\\r\\n| extend assignedResourceId = tostring(todynamic(properties).assignedResourceId)\\r\\n| extend owner = tostring(properties.owner)\\r\\n| extend owner = iif(isnull(owner) == false and isempty(owner) == false , owner, \\\"Unspecified\\\")\\r\\n| extend remediationDueDate = todatetime(properties.remediationDueDate)\\r\\n| extend assignmentStatus = iif(bin(remediationDueDate, 1d) < bin(now(), 1d), \\\"Overdue\\\", \\\"Ontime\\\")\\r\\n| extend isGrace = properties.isGracePeriod\\r\\n| extend Resource = tostring(split(assignedResourceId, \\\"/providers/Microsoft.Security/\\\")[0])\\r\\n| project Scope, AssignmentId = id, Owner = owner, Resource, [\\\"Due date\\\"] = remediationDueDate, Status = assignmentStatus, [\\\"Grace period enabled\\\"] = isGrace, Action = id\",\"size\":2,\"title\":\"Assignments\",\"exportedParameters\":[{\"fieldName\":\"AssignmentId\",\"parameterName\":\"AssignmentId\",\"parameterType\":1},{\"fieldName\":\"Owner\",\"parameterName\":\"Owner\",\"parameterType\":1}],\"queryType\":1,\"resourceType\":\"microsoft.resourcegraph/resources\",\"crossComponentResources\":[\"{Subscriptions}\"],\"gridSettings\":{\"formatters\":[{\"columnMatch\":\"Scope\",\"formatter\":13,\"formatOptions\":{\"linkTarget\":\"Resource\",\"showIcon\":true}},{\"columnMatch\":\"Due date\",\"formatter\":6},{\"columnMatch\":\"Status\",\"formatter\":18,\"formatOptions\":{\"thresholdsOptions\":\"icons\",\"thresholdsGrid\":[{\"operator\":\"==\",\"thresholdValue\":\"Overdue\",\"representation\":\"3\",\"text\":\"{0}{1}\"},{\"operator\":\"==\",\"thresholdValue\":\"Ontime\",\"representation\":\"1\",\"text\":\"{0}{1}\"},{\"operator\":\"Default\",\"thresholdValue\":null,\"representation\":\"success\",\"text\":\"{0}{1}\"}]}},{\"columnMatch\":\"Grace period enabled\",\"formatter\":18,\"formatOptions\":{\"thresholdsOptions\":\"icons\",\"thresholdsGrid\":[{\"operator\":\"==\",\"thresholdValue\":\"true\",\"representation\":\"success\",\"text\":\"\"},{\"operator\":\"==\",\"thresholdValue\":\"false\",\"representation\":\"3\",\"text\":\"\"},{\"operator\":\"Default\",\"thresholdValue\":null,\"representation\":\"Blank\",\"text\":\"{0}{1}\"}]}},{\"columnMatch\":\"Action\",\"formatter\":7,\"formatOptions\":{\"linkTarget\":\"ArmAction\",\"linkLabel\":\"Delete assignment\",\"linkIsContextBlade\":true,\"armActionContext\":{\"path\":\"{AssignmentId}?api-version=2021-06-01\",\"headers\":[],\"params\":[],\"httpMethod\":\"DELETE\",\"title\":\"Delete assignment:\",\"description\":\"You are about to delete an assignment **{AssignmentId}** assigned to **{Owner}**\",\"actionName\":\"Delete assignment\",\"runLabel\":\"Delete\"}}}],\"rowLimit\":1000,\"labelSettings\":[{\"columnId\":\"AssignmentId\",\"label\":\"Assignment Id\"}]}},\"name\":\"Assignments\"}],\"isLocked\":false,\"fallbackResourceIds\":[\"Azure Security Center\"]}",
|
|
"version": "1.0",
|
|
"sourceId": "[parameters('workbookSourceId')]",
|
|
"category": "[parameters('workbookType')]"
|
|
}
|
|
}
|
|
],
|
|
"outputs": {
|
|
"workbookId": {
|
|
"type": "string",
|
|
"value": "[resourceId( 'microsoft.insights/workbooks', parameters('workbookId'))]"
|
|
}
|
|
},
|
|
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#"
|
|
} |