API 审计日志¶
审计中间件支持通过 Oslo 消息通知能力传递 CADF 审计事件。基于 notification_driver 配置,审计事件可以路由到消息传递基础设施(notification_driver = messagingv2),也可以路由到日志文件( [oslo_messaging_notifications]/driver = log)。
审计中间件为每个 REST API 交互创建两个事件。第一个事件包含从请求数据中提取的信息,第二个事件包含请求结果(响应)。
启用 API 审计日志¶
审计中间件作为 keystonemiddleware (>= 1.6) 库的一部分提供。有关审计中间件功能的更多信息,请参阅 此处。
可以通过对 /etc/ironic/ironic.conf 进行以下更改来为 Bare Metal 服务启用审计。
要启用 API 请求的审计日志记录
[audit] ... enabled=true
要自定义审计 API 请求,审计中间件需要定义 audit_map_file 设置。更新配置设置 ‘audit_map_file’ 的值以设置其位置。Bare Metal 服务的审计映射文件配置选项包含在 etc/ironic/ironic_api_audit_map.conf.sample 文件中。要了解 ironic_api_audit_map.conf 文件中指定的 CADF 格式,请参阅 CADF 格式。
[audit] ... audit_map_file=/etc/ironic/api_audit_map.conf
逗号分隔的 Ironic REST API HTTP 方法列表,在审计期间将被忽略。仅当启用 API 审计时才使用。例如
[audit] ... ignore_req_list=GET,POST
示例审计事件¶
以下是 ironic 节点列表请求的审计事件示例。
{
"event_type":"audit.http.request",
"timestamp":"2016-06-15 06:04:30.904397",
"payload":{
"typeURI":"http://schemas.dmtf.org/cloud/audit/1.0/event",
"eventTime":"2016-06-15T06:04:30.903071+0000",
"target":{
"id":"ironic",
"typeURI":"unknown",
"addresses":[
{
"url":"http://{ironic_admin_host}:6385",
"name":"admin"
},
{
"url":"http://{ironic_internal_host}:6385",
"name":"private"
},
{
"url":"http://{ironic_public_host}:6385",
"name":"public"
}
],
"name":"ironic"
},
"observer":{
"id":"target"
},
"tags":[
"correlation_id?value=685f1abb-620e-5d5d-b74a-b4135fb32373"
],
"eventType":"activity",
"initiator":{
"typeURI":"service/security/account/user",
"name":"admin",
"credential":{
"token":"***",
"identity_status":"Confirmed"
},
"host":{
"agent":"python-ironicclient",
"address":"10.1.200.129"
},
"project_id":"d8f52dd7d9e1475dbbf3ba47a4a83313",
"id":"8c1a948bad3948929aa5d5b50627a174"
},
"action":"read",
"outcome":"pending",
"id":"061b7aa7-5879-5225-a331-c002cf23cb6c",
"requestPath":"/v1/nodes/?associated=True"
},
"priority":"INFO",
"publisher_id":"ironic-api",
"message_id":"2f61ebaa-2d3e-4023-afba-f9fca6f21fc2"
}