为 CONTINUOUS 审计添加开始和结束时间¶
https://blueprints.launchpad.net/watcher/+spec/add-start-end-time-for-continuous-audit
目前我们只能设置审计执行间隔,但无法设置审计的开始和结束时间。我们需要为 CONTINUOUS 审计添加审计开始和结束时间。
问题描述¶
对于 CONTINUOUS 审计,它会在启动后定期运行。目前还没有办法控制 CONTINUOUS 审计的开始和结束时间。
用例¶
作为 Watcher 用户,我希望能够设置 CONTINUOUS 审计的开始和结束时间。
提议的变更¶
在审计表中添加新的 start_time 和 end_time 字段
对于 CONTINUOUS 审计,如果其状态为 PENDING 或 ONGOING,仅当当前时间在 start_time 和 end_time 之间时才启动审计
用户可以指定开始和结束时间,或者任意一个。如果用户没有指定开始和结束时间,审计的行为与之前相同。如果没有开始时间,审计将在创建后开始。如果没有结束时间,审计将运行直到其状态变为 SUSPENDED 或 CANCELLED。如果提供了结束时间,审计将在结束时间后从 ONGOING 变为 SUCCEEDED,并且不再运行。日期时间格式为 ISO 8601,例如:YYYY-MM-DD hh:mm:ss
这里有一些 CLI 示例
使用开始和结束时间创建审计
$ watcher audit create -g dummy -t CONTINUOUS -i 300 \
--start-time '2018-04-01 08:00:00' --end-time '2018-04-03 08:00:00'
更新审计开始或结束时间
$ watcher audit update 64aa6c03-b676-4904-9d6a-855d1d6f9200 \
replace start_time='2018-04-02 20:30:00'
$ watcher audit update 64aa6c03-b676-4904-9d6a-855d1d6f9200 \
replace end_time='2018-04-04 20:30:00'
备选方案¶
可以重用 ‘interval’ 字段,而不是新的 start_time 和 end_time 字段。但这会导致复杂化,并且不易理解。
数据模型影响¶
在审计表中添加新的 start_time 和 end_time 字段
REST API 影响¶
需要在 Audits APIs 中添加新的 ‘start_time’ 和 ‘end_time’ 参数。它们的值是本地时间。
安全影响¶
无
通知影响¶
将 ‘start_time’ 和 ‘end_time’ 添加到 AuditPayload
其他最终用户影响¶
需要在 CLI ‘watcher audit create’ 中添加 ‘start_time’ 和 ‘end_time’
还需要更新 watcher-dashboard
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
licanwei
工作项¶
更新架构文档以添加新字段
在审计表中添加新的 start_time 和 end_time 字段
在运行 CONTINUOUS 审计之前检查开始和结束时间
更新通知 AuditPayload
更新 python-watcherclient
更新 watcher-dashboard
依赖项¶
无
测试¶
所有更改的单元测试
文档影响¶
更新架构文档以添加新字段。
参考资料¶
无
历史¶
无