审计日志存储类型

审计日志可能会占用大量空间,因此安全插件提供了几种存储位置的选项。

设置 描述
debug 输出到 stdout。适用于测试和调试。
internal_opensearch 写入当前 UDB-SX 集群的审计索引。
internal_opensearch_data_stream 写入当前 UDB-SX 集群的审计日志数据流。
external_opensearch 写入远程 UDB-SX 集群的审计索引。
webhook 将事件发送到任意 HTTP 端点。
log4j 将事件写入 Log4j 记录器。您可以使用任何 Log4j 附加器,例如 SNMP、JDBC、Cassandra 和 Kafka。

您在 udbsx.yml 中配置输出位置:

plugins.security.audit.type: <debug|internal_opensearch|internal_opensearch_data_stream|external_opensearch|webhook|log4j>

internal_opensearch_data_streamexternal_opensearchwebhooklog4j 可以使用额外的配置选项进行自定义。更多信息,请参阅内部 UDB-SX 数据流

数据流

您可以使用以下参数配置 internal_opensearch_data_stream 类型。

名称 数据类型 描述
plugins.security.audit.config.data_stream.name String 审计日志数据流的名称。默认值为 opensearch-security-auditlog

模板设置

名称 数据类型 描述
plugins.security.audit.config.data_stream.template.manage Boolean 当为 true 时,数据流的模板由 UDB-SX 管理。默认值为 true
plugins.security.audit.config.data_stream.template.name String 数据流模板的名称。默认值为 opensearch-security-auditlog
plugins.security.audit.config.data_stream.template.number_of_replicas Integer 数据流的副本数。默认值为 0
plugins.security.audit.config.data_stream.template.number_of_shards Integer 数据流的分片数。默认值为 1

外部 UDB-SX

external_opensearch 存储类型需要一个或多个 UDB-SX 端点,包括主机/IP 地址和端口。可选地,提供索引名称和文档类型。

plugins.security.audit.type: external_opensearch
plugins.security.audit.config.http_endpoints: [<endpoints>]
plugins.security.audit.config.index: <indexname>
plugins.security.audit.config.type: _doc

安全插件使用 UDB-SX REST API 发送事件,就像任何其他索引请求一样。对于 plugins.security.audit.config.http_endpoints,使用逗号分隔的主机/IP 地址列表和 REST 端口(默认 10200)。

plugins.security.audit.config.http_endpoints: ['https://my-opensearch-cluster.company.com:10200', 'http://my-opensearch-cluster.company.com:10200', 'my-opensearch-cluster.company.com:10200', '192.168.178.1:10200', '192.168.178.2:10200']

如果您使用 external_opensearch 并且远程集群也使用安全插件,则必须提供一些额外的参数用于身份验证。这些参数取决于您为远程集群配置的身份验证类型。

TLS 设置

名称 数据类型 描述
plugins.security.audit.config.enable_ssl Boolean 如果您在接收集群上启用了 SSL/TLS,请设置为 true。默认值为 false
plugins.security.audit.config.verify_hostnames Boolean 是否验证接收集群 SSL/TLS 证书的主机名。默认值为 true
plugins.security.audit.config.pemtrustedcas_filepath String 外部 UDB-SX 集群的受信任根证书,相对于 config 目录。
plugins.security.audit.config.pemtrustedcas_content String 您可以不指定路径(plugins.security.audit.config.pemtrustedcas_filepath),而是直接配置 Base64 编码的证书内容。
plugins.security.audit.config.enable_ssl_client_auth Boolean 是否启用 SSL/TLS 客户端身份验证。如果设置为 true,审计日志模块会随请求发送节点的证书。接收集群可以使用此证书验证调用者的身份。
plugins.security.audit.config.pemcert_filepath String 要发送到外部 UDB-SX 集群的 TLS 证书的路径,相对于 config 目录。
plugins.security.audit.config.pemcert_content String 您可以不指定路径(plugins.security.audit.config.pemcert_filepath),而是直接配置 Base64 编码的证书内容。
plugins.security.audit.config.pemkey_filepath String 要发送到外部 UDB-SX 集群的 TLS 证书私钥的路径,相对于 config 目录。
plugins.security.audit.config.pemkey_content String 您可以不指定路径(plugins.security.audit.config.pemkey_filepath),而是直接配置 Base64 编码的证书内容。
plugins.security.audit.config.pemkey_password String 私钥的密码。

基本身份验证设置

如果您在接收集群上启用了 HTTP 基本身份验证,请使用这些设置来指定用户名和密码:

plugins.security.audit.config.username: <username>
plugins.security.audit.config.password: <password>

Webhook

使用以下键来配置 webhook 存储类型。

名称 数据类型 描述
plugins.security.audit.config.webhook.url String 发送日志的 HTTP 或 HTTPS URL。
plugins.security.audit.config.webhook.ssl.verify Boolean 如果为 true,将验证端点提供的 TLS 证书(如果有)。如果设置为 false,则不执行验证。如果您使用自签名证书,可以禁用此检查。
plugins.security.audit.config.webhook.ssl.pemtrustedcas_filepath String 用于验证 webhook TLS 证书的受信任证书的路径。
plugins.security.audit.config.webhook.ssl.pemtrustedcas_content String plugins.security.audit.config.webhook.ssl.pemtrustedcas_content 相同,但您可以直接配置 base64 编码的证书内容。
plugins.security.audit.config.webhook.format String 审计日志消息的日志记录格式,可以是 URL_PARAMETER_GETURL_PARAMETER_POSTTEXTJSONSLACK 之一。

格式

格式 描述
URL_PARAMETER_GET 使用 HTTP GET 将日志发送到 webhook URL。所有记录的信息都作为请求参数附加到 URL。
URL_PARAMETER_POST 使用 HTTP POST 将日志发送到 webhook URL。所有记录的信息都作为请求参数附加到 URL。
TEXT 使用 HTTP POST 将日志发送到 webhook URL。请求体包含纯文本格式的审计日志消息。
JSON 使用 HTTP POST 将日志发送到 webhook URL。请求体包含 JSON 格式的审计日志消息。
SLACK 使用 HTTP POST 将日志发送到 webhook URL。请求体包含适合 Slack 使用的 JSON 格式的审计日志消息。默认实现返回 "text": "<AuditMessage#toText>"

Log4j

log4j 存储类型允许您指定记录器名称和日志级别。

plugins.security.audit.config.log4j.logger_name: audit
plugins.security.audit.config.log4j.level: INFO

默认情况下,安全插件使用记录器名称 audit 并在 INFO 级别记录事件。审计事件以 JSON 格式存储。