如何通过Bicep配置Azure SQL Server审计至Event Hub?
可以通过IaC实现Azure SQL Server审计至Event Hub的配置
问题原因说明
手动导出ARM模板时,即便未配置存储账户,模板仍会默认填充存储账户相关字段且显示全零订阅ID,这是Azure SQL审计模板导出的默认逻辑。而Event Hub的审计配置属性实际包含在extendedProperties下,容易被忽略。
Bicep实现示例
以下是直接配置SQL Server审计至Event Hub的Bicep代码片段:
resource sqlServer 'Microsoft.Sql/servers@2023-05-01-preview' existing = { name: 'your-sql-server-name' } resource sqlAuditSetting 'Microsoft.Sql/servers/auditingSettings@2023-05-01-preview' = { parent: sqlServer name: 'default' properties: { state: 'Enabled' auditActionsAndGroups: [ 'SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP' 'FAILED_DATABASE_AUTHENTICATION_GROUP' 'BATCH_COMPLETED_GROUP' ] extendedProperties: { 'IsAzureMonitorTargetEnabled': 'True' } eventHubAuthorizationRuleId: '/subscriptions/[你的订阅ID]/resourceGroups/[资源组名称]/providers/Microsoft.EventHub/namespaces/[Event Hub命名空间]/authorizationrules/[授权规则名称]' eventHubName: '你的Event Hub名称' } }
关键配置说明
state设为Enabled开启审计功能auditActionsAndGroups指定需要审计的事件组,可根据业务需求调整extendedProperties中IsAzureMonitorTargetEnabled设为True,确保审计日志能流向Event HubeventHubAuthorizationRuleId填写Event Hub命名空间下授权规则的完整资源IDeventHubName填写目标Event Hub的具体名称
注意事项
- 若SQL Server启用了虚拟网络,需确保网络规则允许其与Event Hub命名空间通信
- 所使用的Event Hub授权规则需具备
Send权限,保证SQL Server能推送日志 - 无需存储账户审计时,模板中不要配置
storageAccountAccessKey等存储相关字段
内容的提问来源于stack exchange,提问作者Raymondo
相关产品推荐
相关产品推荐

