如何审计AI Dev Kit的API调用:五步查询system.access.audit完整指南

📅 发布时间:2026/9/20 11:14:20
如何审计AI Dev Kit的API调用:五步查询system.access.audit完整指南
如何审计AI Dev Kit的API调用五步查询system.access.audit完整指南【免费下载链接】ai-dev-kitDatabricks Toolkit for Coding Agents provided by Field Engineering项目地址: https://gitcode.com/GitHub_Trending/ai/ai-dev-kit 使用Databricks AI Dev Kit时每一次 MCP 工具调用都会自动打上可识别的标记并完整记录到system.access.audit系统表中。这篇文章带你用 5 个简单步骤完成API 调用审计搞清楚谁在什么时候调用了哪个项目、做了哪些操作、是否失败——无需写一行监控代码只用 SQL 即可实现完整的调用追踪与合规审查。为什么需要审计 AI 编码助手的 API 调用AI Dev Kit 通过 MCP Server 暴露了 75 个可执行工具创建 Job、修改 Unity Catalog 权限、读写 Workspace 文件……当多个团队共用同一个工作区时你多半想知道✅ 这些 API 调用是不是 AI 助手发起的是哪个项目发起的✅ 某个数据表最近被谁或哪个 Agent访问过✅ 有没有失败的调用有没有异常的权限变更好消息是AI Dev Kit 的所有调用都天然可追踪。第一步理解调用是如何被打上标记的AI Dev Kit 的核心库在发起每个 Databricks API 请求时会自动注入一个定制的User-Agent头例如databricks-ai-dev-kit/0.1.0 databricks-sdk-py/0.73.0 python/3.11.13 os/darwin auth/pat project/my-repo其中包含三关键信息标记含义databricks-ai-dev-kit产品名一眼识别这是 AI Dev Kit 发起的调用project/my-repo项目名自动从 git remote 或配置文件检测版本号 / 系统信息便于排查版本与环境问题项目名的检测优先级为.databricks-ai-dev-kit.yaml中的project字段 → git remote 仓库名 → 目录名无需任何手动配置。相关实现见 identity.py审计说明见 databricks-mcp-server/README.md。 小贴士审计日志条目通常有2–10 分钟的延迟才会出现在表中刚调用完别急着查没有结果。第二步开启 system.access 系统模式system.access.audit是只读系统表但access系统模式需要先在 Metastore 上启用否则查询不到。方式一Databricks CLI推荐# 查看当前系统模式状态 databricks system-schemas list --metastore-id your-metastore-id # 启用 access 系统模式 databricks system-schemas enable --metastore-id your-metastore-id \ --schema-name access方式二SQL 查询确认SELECT * FROM system.information_schema.schemata WHERE catalog_name system;完整启用方式含 Python SDK可参考技能文档 5-system-tables.md。⚠️ 前提工作区必须已启用 Unity Catalog否则无法查询system.access.audit。第三步先看懂 system.access.audit 的表结构表不大记住 8 个核心列就够了列名说明event_date 分区键查询时务必过滤否则会全表扫描event_time事件发生时间workspace_id事件发生的工作区user_identity用户邮箱、IP、会话信息action_name执行的操作如createTable、updatePermissionsrequest_params请求参数MAP 类型含目标对象名等response响应状态码与错误信息source_ip_address客户端 IP第四步五组现成查询覆盖常见审计场景以下 SQL 可直接在 Databricks SQL 中运行按需替换对象名。场景 1最近 7 天的表访问事件SELECT event_time, user_identity.email AS user_email, action_name, request_params.full_name_arg AS table_name, response.status_code FROM system.access.audit WHERE event_date current_date() - 7 AND action_name IN (getTable, createTable, deleteTable) ORDER BY event_time DESC LIMIT 100;场景 2追踪敏感表的访问记录SELECT event_time, user_identity.email AS user_email, source_ip_address, action_name FROM system.access.audit WHERE event_date current_date() - 7 AND request_params.full_name_arg IN ( analytics.gold.customers, analytics.gold.financial_data ) ORDER BY event_time DESC;场景 3最近 30 天的权限变更安全审计重点SELECT event_time, user_identity.email AS changed_by, action_name, request_params.securable_type AS object_type, request_params.securable_full_name AS object_name, request_params.changes AS permission_changes FROM system.access.audit WHERE event_date current_date() - 30 AND action_name IN (updatePermissions, grantPermission, revokePermission) ORDER BY event_time DESC;场景 4失败的调用监控异常行为SELECT event_time, user_identity.email AS user_email, source_ip_address, action_name, request_params.full_name_arg AS resource, response.error_message FROM system.access.audit WHERE event_date current_date() - 7 AND response.status_code ! 200 ORDER BY event_time DESC;场景 5最活跃的用户排行SELECT user_identity.email AS user_email, COUNT(*) AS query_count, COUNT(DISTINCT DATE(event_time)) AS active_days FROM system.access.audit WHERE event_date current_date() - 30 AND action_name commandSubmit GROUP BY user_identity.email ORDER BY query_count DESC LIMIT 20;第五步固化审计能力——建视图 记住最佳实践把常用审计逻辑存成视图团队成员即可复用CREATE VIEW analytics.governance.daily_audit_summary AS SELECT event_time, user_identity.email, action_name, request_params.full_name_arg, response.status_code FROM system.access.audit WHERE event_date current_date() - 7;最后记住 4 条黄金规则永远按event_date过滤—— 系统表按日期分区这是查询性能的关键探索性查询加LIMIT—— 审计表可能非常大️注意保留期—— 审计日志保留 365 天查询历史仅 30 天按团队授权—— 例如GRANT SELECT ON SCHEMA system.access TO monitoring_team;常见问题 FAQQ为什么查不到 AI Dev Kit 的调用A先确认access系统模式已启用、工作区已开启 Unity Catalog并等待 2–10 分钟延迟后重试。Q如何区分AI Dev Kit 的调用和人工的调用AUser-Agent标记databricks-ai-dev-kit前缀 project/项目名会在审计日志中体现按该标记过滤即可定位 AI 助手发起的所有操作。Q还能追踪数据流向吗A可以。同一 schema 下还有system.access.table_lineage与column_lineage表支持表级和列级血缘追踪详见 5-system-tables.md。本文引用的项目文件5-system-tables.md —— 系统表完整参考identity.py —— 调用标记User-Agent实现client.py —— 请求头注入审计标记databricks-mcp-server/README.md —— MCP 审计追踪说明SKILL.md —— Unity Catalog 技能入口【免费下载链接】ai-dev-kitDatabricks Toolkit for Coding Agents provided by Field Engineering项目地址: https://gitcode.com/GitHub_Trending/ai/ai-dev-kit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考