【Azure Policy】分享Policy实现对Azure Activity Log导出到Log A workspace中

news/2024/9/21 20:38:55/文章来源:https://www.cnblogs.com/lulight/p/18399171

问题描述

使用Azure Policy服务,对公司内部全部的订阅下的Activity Log,都需要配置导出到Log A Workspace中。

以下Policy规则可以实现此目的。

 

Policy内容说明

在Policy Rule部分中,选择资源的类型为 "Microsoft.Resources/subscriptions", 效果使用 DeployIfNotExists (如果不存在,则通过修复任务进行修正。

在 existenceCondition 条件中,如果当前订阅已经启用了 diagnostic setting并且输出日志到同一个Log A workspace,表示满足Policy要求,不需要进行修正。

在 deployment 中,使用了 ARM 模板, 为订阅添加Diagnostic Setting并且所有的日志Category均启用。

因 deployment 操作,会修改诊断日志配置(属于Monitor服务)以及Log A Workspace,所以需要为这个ARM Deployment操作给与两个contributor权限, 即 roleDefinitionIds 中的内容。

使用三个输入参数 logAnalytics, effect, logsEnabled 作为Policy的判断条件。

Policy示例

{"mode": "All","policyRule": {"if": {"field": "type","equals": "Microsoft.Resources/subscriptions"},"then": {"effect": "[parameters('effect')]","details": {"type": "Microsoft.Insights/diagnosticSettings","deploymentScope": "subscription","existenceScope": "subscription","existenceCondition": {"allOf": [{"field": "Microsoft.Insights/diagnosticSettings/logs.enabled","equals": "[parameters('logsEnabled')]"},{"field": "Microsoft.Insights/diagnosticSettings/workspaceId","equals": "[parameters('logAnalytics')]"}]},"deployment": {"location": "chinaeast2","properties": {"mode": "incremental","template": {"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#","contentVersion": "1.0.0.0","parameters": {"logAnalytics": {"type": "string"},"logsEnabled": {"type": "string"}},"variables": {},"resources": [{"name": "policy-enabled-ActivityLogs-to-logA","type": "Microsoft.Insights/diagnosticSettings","apiVersion": "2017-05-01-preview","location": "Global","properties": {"workspaceId": "[parameters('logAnalytics')]","logs": [{"category": "Administrative","enabled": "[parameters('logsEnabled')]"},{"category": "Security","enabled": "[parameters('logsEnabled')]"},{"category": "ServiceHealth","enabled": "[parameters('logsEnabled')]"},{"category": "Alert","enabled": "[parameters('logsEnabled')]"},{"category": "Recommendation","enabled": "[parameters('logsEnabled')]"},{"category": "Policy","enabled": "[parameters('logsEnabled')]"},{"category": "Autoscale","enabled": "[parameters('logsEnabled')]"},{"category": "ResourceHealth","enabled": "[parameters('logsEnabled')]"}]}}],"outputs": {}},"parameters": {"logAnalytics": {"value": "[parameters('logAnalytics')]"},"logsEnabled": {"value": "[parameters('logsEnabled')]"}}}},"roleDefinitionIds": ["/providers/microsoft.authorization/roleDefinitions/749f88d5-cbae-40b8-bcfc-e573ddc772fa","/providers/microsoft.authorization/roleDefinitions/92aaf0da-9dab-42b6-94a3-d43ce8d16293"]}}},"parameters": {"logAnalytics": {"type": "String","metadata": {"displayName": "Primary Log Analytics workspace","description": "If this workspace is outside of the scope of the assignment you must manually grant 'Log Analytics Contributor' permissions (or similar) to the policy assignment's principal ID.","strongType": "omsWorkspace","assignPermissions": true}},"effect": {"type": "String","metadata": {"displayName": "Effect","description": "Enable or disable the execution of the policy"},"allowedValues": ["DeployIfNotExists","Disabled"],"defaultValue": "DeployIfNotExists"},"logsEnabled": {"type": "String","metadata": {"displayName": "Enable logs","description": "Whether to enable logs stream to the Log Analytics workspace - True or False"},"allowedValues": ["True","False"],"defaultValue": "True"}}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/792741.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#/.NET/.NET Core优质学习资料,干货收藏!

前言 今天大姚给大家分享一些C#/.NET/.NET Core优质学习资料,希望可以帮助到有需要的小伙伴。 什么是 .NET? .NET 是一个免费的、跨平台的、开源开发人员平台,用于构建许多不同类型的应用程序。 使用 .NET,可以使用多种语言、编辑器和库来构建 Web、移动、桌面、游戏和 IoT…

自我评估

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13243这个作业的目标 熟悉Github和博客园,了解其基本操作,完善自我信息并学习Markdown的基本使用方法以及AIGC画图学号 102202132一…

2.常量 变量 类型转换 进制转换

常量 变量 类型转换 进制转换1.常量的使用2.变量的使用3.会强制类型转换一、常量(一)常量的分类1.概述:在代码的运行过程中,其值不会发生改变的数据2.分类: 整数常量:所有整数 小数常量:所有带小数点的 字符常量:带单引号,有且只能有一个内容 字符串常量:带双引号…

linux中tar命令的使用

tar简介 在linux中tar是一个常用的工具,用于打包和解压文件,全称是tape archive。 它能够将一组文件和目录打包成单个归档文件,也可以从归档文件中提取出文件和目录参数列表 使用实例介绍1.要创建一个归档文件,可以使用参数 -c 和 -f ,然后指定归档文件名例如要将/home/cy…

11.面向对象(3)

MODULE 11 面向对象会定义接口会在接口中定义抽象方法,默认方法,静态方法,成员变量会调用接口中的成员会利用多态的方式new对象知道多态的前提要知道使用多态的好处会在多态的前提下,向下转型会利用instanceof判断类型一.接口(一)接口的介绍1.接口:是一个引用数据类型,是一个…

8.封装

MODULE 8 封装1.要回使用private关键字修饰成员,并知道被private修饰之后的作用(访问特点)是什么2.会使用set方法为属性赋值,使用get方法获取属性值3.会利用this关键字区分重名的成员变量和局部变量4.会利用空参构造创建对象,并知道空参构造作用5.会使用有构造创建对象…

9.面向对象(1)

MODULE 9 面向对象1.会定义静态成员以及会调用静态成员2.会使用可变参数(会给可变参数传参)3.会二分查找(手撕)4.会冒泡排序(手撕)5.会debug的使用一、static关键字(一)static的介绍以及基本使用1.概述:static是一个静态关键字2.使用:(1)修饰一个成员变量:stat…

深入了解Vite:依赖预构建原理

前言 前面我们有提到Vite在开发阶段,提倡的是一个no-bundle的理念,不必与webpack那样需要先将整个项目进行打包构建。但是no-bundle的理念只适合源代码部分(我们自己写的代码),vite会将项目中的所有模块分为依赖与源码两部分。 依赖: 指的是一些不会变动的一些模块,如:…

1000多天我开发了一个免费的跨浏览器的书签同步、阅读排版、任意网页标注插件

自我介绍 大家好,我是阿浩,一位后端开发工程师,同时也略懂前端技术。业余时间,我开发了这款小工具——《藏趣云》。 我为什么要写这么个工具 需求来源于我自己,因为我是做开发的。我日常都会使用多款浏览器来测试项目,一次需要登录多个账号,寻找各种测试地址链接。之前因…

02-逻辑概述负判断

https://blog.csdn.net/vviccc/article/details/106694210 来源