批量匿名字段操作

编辑

对多个匿名字段应用批量操作(创建、更新或删除)。批量操作应用于与过滤器匹配的所有匿名字段,或应用于其 ID 指定的匿名字段列表。

请求 URL
编辑

POST <kibana 主机>:<端口>/api/security_ai_assistant/anonymization_fields/_bulk_action

请求正文
编辑

具有以下属性的 JSON 对象

名称 类型 描述 必填

创建

BulkCreateAction[]

要创建的匿名字段对象的数组。

删除

String[]

要删除的匿名字段 ID 的数组。

更新

BulkUpdateAction[]

具有要更新的字段的匿名字段对象的数组。

BulkCreateAction 对象

编辑
名称 类型 描述 必填

字段

字符串

字段名称。

允许

布尔值

定义是否将字段发送到 LLM。

匿名化

布尔值

定义如果发送到 LLM 是否将对字段进行匿名化。默认为 false

BulkUpdateAction 对象

编辑
名称 类型 描述 必填

允许

布尔值

定义是否将字段发送到 LLM。

匿名化

布尔值

定义如果发送到 LLM 是否将对字段进行匿名化。默认为 false

示例请求
编辑

示例 1

以下请求创建两个匿名字段

POST api/security_ai_assistant/anonymization_fields/_bulk_action
{
  "create": [
    {
      "field": "agent.type",
      "allowed": true,
      "anonymized": false
    },
    {
      "field": "agent.name",
      "allowed": true,
      "anonymized": true
    }
  ]
}
响应代码
编辑
200
指示调用成功。
响应有效负载
编辑

包含操作结果的 JSON 对象

  • attributes.summary.total:与批量操作匹配的匿名字段总数
  • attributes.summary.succeeded:成功结果数(已创建、删除或更新的匿名字段数)
  • attributes.summary.failed:失败结果数
  • attributes.summary.skipped:由于各种原因而跳过的匿名字段数(如下所述)
  • attributes.results.created:在操作执行期间创建的匿名字段对象
  • attributes.results.updated:在操作执行期间更新的匿名字段对象
  • attributes.results.deleted:在操作执行期间删除的匿名字段对象
  • attributes.results.skipped:在操作执行期间跳过的匿名字段

匿名字段只能在对其执行的批量操作导致不执行任何操作时才被 跳过。例如,如果 update 操作用于更新已具有指定值的字段。在 attributes.results.skipped 中返回的对象将仅包含匿名字段的 idnameskip_reason

{
  "success": true,
  "anonymization_fields_count": 2,
  "attributes": {
    "results": {
      "updated": [],
      "created": [
        {
          "timestamp": "2024-08-13T20:54:23.125Z",
          "createdAt": "2024-08-13T20:54:23.125Z",
          "field": "agent.type",
          "allowed": true,
          "anonymized": false,
          "updatedAt": "2024-08-13T20:54:23.125Z",
          "id": "cB2FTZEBYaDeA-NhPHqW"
        },
        {
          "timestamp": "2024-08-13T20:54:23.125Z",
          "createdAt": "2024-08-13T20:54:23.125Z",
          "field": "agent.name",
          "allowed": true,
          "anonymized": true,
          "updatedAt": "2024-08-13T20:54:23.125Z",
          "id": "cR2FTZEBYaDeA-NhPHqW"
        }
      ],
      "deleted": [],
      "skipped": []
    },
    "summary": {
      "failed": 0,
      "succeeded": 2,
      "skipped": 0,
      "total": 2
    }
  }
}

示例 2:部分失败

以下请求

  • 删除 ID 值为 cR2FTZEBYaDeA-NhPHqW 的匿名字段
  • 更新 ID 为 lh12SZEBYaDeA-NhmkwG 的匿名字段的 allowed
  • 更新 ID 为 lR12SZEBYaDeA-NhmkwG 的匿名字段的 anonymized
POST api/security_ai_assistant/anonymization_fields/_bulk_action
{
  "delete": {
    "ids": [
      "cR2FTZEBYaDeA-NhPHqW"
    ]
  },
  "update": [
    {
      "id": "lh12SZEBYaDeA-NhmkwG",
      "allowed": false
    },
    {
      "id": "lR12SZEBYaDeA-NhmkwG",
      "anonymized": true
    }
  ]
}
响应代码
编辑
500
指示批量操作部分失败。
响应有效负载
编辑

如果任何匿名字段的处理失败,则响应会输出部分错误,其中包含受影响的匿名字段的 ID 和/或名称以及相应的错误消息。响应还包括以与成功的 200 请求相同的格式成功处理的匿名字段。

{
  "message": "Bulk delete partially failed",
  "status_code": 500,
  "attributes": {
    "errors": [
      {
        "message": "Some error happened here",
        "status_code": 500,
        "anonymization_fields": [
          {
            "id": "cR2FTZEBYaDeA-NhPHqW",
            "field": "test"
          }
        ]
      }
    ],
    "results": {
      "updated": [
        {
          "timestamp": "2024-08-13T01:59:55.141Z",
          "createdAt": "2024-08-13T01:59:55.141Z",
          "field": "@timestamp",
          "allowed": false,
          "anonymized": false,
          "updatedAt": "2024-08-13T21:00:37.502Z",
          "namespace": "default"
        },
        {
          "timestamp": "2024-08-13T01:59:55.141Z",
          "createdAt": "2024-08-13T01:59:55.141Z",
          "field": "_id",
          "allowed": true,
          "anonymized": true,
          "updatedAt": "2024-08-13T21:00:37.502Z",
          "namespace": "default"
        }
      ],
      "created": [],
      "deleted": [],
      "skipped": []
    },
    "summary": {
      "failed": 1,
      "succeeded": 1,
      "skipped": 0,
      "total": 2
    }
  }
}