审计日志存储类型
审计日志可能会占用大量空间,因此安全插件提供了几种存储位置的选项。
| 设置 | 描述 |
|---|---|
| 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_stream、external_opensearch、webhook 和 log4j 可以使用额外的配置选项进行自定义。更多信息,请参阅内部 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_GET、URL_PARAMETER_POST、TEXT、JSON、SLACK 之一。 |
格式
| 格式 | 描述 |
|---|---|
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 格式存储。