批量匿名化字段操作

编辑

对多个匿名化字段应用批量操作(创建、更新或删除)。批量操作将应用于所有匹配筛选器的匿名化字段,或按 ID 列出的匿名化字段列表。

请求 URL
编辑

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

请求正文
编辑

包含以下属性的 JSON 对象

名称 类型 描述 必需

create

BulkCreateAction[]

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

delete

String[]

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

update

BulkUpdateAction[]

包含要更新字段的匿名化字段对象数组。

BulkCreateAction 对象

编辑
名称 类型 描述 必需

field

String

字段的名称。

allowed

Boolean

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

anonymized

Boolean

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

BulkUpdateAction 对象

编辑
名称 类型 描述 必需

allowed

Boolean

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

anonymized

Boolean

定义如果发送到 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:在操作执行期间跳过的匿名化字段

只有当对其执行的批量操作导致没有任何操作时,匿名化字段才会被 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
    }
  }
}