审计日志存储类型
审计日志会占用相当大的空间,因此安全插件提供了多种存储位置选项。
设置 | 描述 |
---|---|
debug | 输出到标准输出。适用于测试和调试。 |
internal_opensearch | 写入当前 OpenSearch 集群上的审计索引。 |
internal_opensearch_data_stream | 写入当前 OpenSearch 集群上的审计日志数据流。 |
external_opensearch | 写入远程 OpenSearch 集群上的审计索引。 |
webhook | 将事件发送到任意 HTTP 端点。 |
log4j | 将事件写入 Log4j 记录器。您可以使用任何 Log4j appender,例如 SNMP、JDBC、Cassandra 和 Kafka。 |
您可以在 opensearch.yml
中配置输出位置
plugins.security.audit.type: <debug|internal_opensearch|internal_opensearch_data_stream|external_opensearch|webhook|log4j>
internal_opensearch_data_stream
、external_opensearch
、webhook
和 log4j
可以通过其他配置选项进行自定义。有关更多信息,请参阅内部 OpenSearch 数据流。
内部 OpenSearch 数据流
您可以使用以下参数配置 internal_opensearch_data_stream
类型。
名称 | 数据类型 | 描述 |
---|---|---|
plugins.security.audit.config.data_stream.name | 字符串 | 审计日志数据流的名称。默认值为 opensearch-security-auditlog 。 |
模板设置
名称 | 数据类型 | 描述 |
---|---|---|
plugins.security.audit.config.data_stream.template.manage | 布尔型 | 当为 true 时,数据流的模板由 OpenSearch 管理。默认值为 true 。 |
plugins.security.audit.config.data_stream.template.name | 字符串 | 数据流模板的名称。默认值为 opensearch-security-auditlog 。 |
plugins.security.audit.config.data_stream.template.number_of_replicas | 整数 | 数据流的副本数量。默认值为 0 。 |
plugins.security.audit.config.data_stream.template.number_of_shards | 整数 | 数据流的分片数量。默认值为 1 。 |
外部 OpenSearch
external_opensearch
存储类型需要一个或多个 OpenSearch 端点,包括主机/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
安全插件使用 OpenSearch REST API 发送事件,就像任何其他索引请求一样。对于 plugins.security.audit.config.http_endpoints
,请使用逗号分隔的主机/IP 地址列表和 REST 端口(默认 9200)。
plugins.security.audit.config.http_endpoints: ['https://my-opensearch-cluster.company.com:9200', 'http://my-opensearch-cluster.company.com:9200', 'my-opensearch-cluster.company.com:9200', '192.168.178.1:9200', '192.168.178.2:9200']
如果您使用 external_opensearch
并且远程集群也使用安全插件,则必须提供一些额外的认证参数。这些参数取决于您为远程集群配置的认证类型。
TLS 设置
名称 | 数据类型 | 描述 |
---|---|---|
plugins.security.audit.config.enable_ssl | 布尔型 | 如果在接收集群上启用了 SSL/TLS,请设置为 true。默认值为 false 。 |
plugins.security.audit.config.verify_hostnames | 布尔型 | 是否验证接收集群的 SSL/TLS 证书的主机名。默认值为 true 。 |
plugins.security.audit.config.pemtrustedcas_filepath | 字符串 | 外部 OpenSearch 集群的可信根证书,相对于 config 目录。 |
plugins.security.audit.config.pemtrustedcas_content | 字符串 | 除了指定路径 (plugins.security.audit.config.pemtrustedcas_filepath ),您还可以直接配置 Base64 编码的证书内容。 |
plugins.security.audit.config.enable_ssl_client_auth | 布尔型 | 是否启用 SSL/TLS 客户端认证。如果将其设置为 true,审计日志模块会将节点的证书随请求一起发送。接收集群可以使用此证书来验证调用方的身份。 |
plugins.security.audit.config.pemcert_filepath | 字符串 | 要发送到外部 OpenSearch 集群的 TLS 证书路径,相对于 config 目录。 |
plugins.security.audit.config.pemcert_content | 字符串 | 除了指定路径 (plugins.security.audit.config.pemcert_filepath ),您还可以直接配置 Base64 编码的证书内容。 |
plugins.security.audit.config.pemkey_filepath | 字符串 | 要发送到外部 OpenSearch 集群的 TLS 证书私钥路径,相对于 config 目录。 |
plugins.security.audit.config.pemkey_content | 字符串 | 除了指定路径 (plugins.security.audit.config.pemkey_filepath ),您还可以直接配置 Base64 编码的证书内容。 |
plugins.security.audit.config.pemkey_password | 字符串 | 私钥的密码。 |
基本认证设置
如果在接收集群上启用了 HTTP 基本认证,请使用这些设置来指定用户名和密码。
plugins.security.audit.config.username: <username>
plugins.security.audit.config.password: <password>
Webhook
使用以下键配置 webhook
存储类型。
名称 | 数据类型 | 描述 |
---|---|---|
plugins.security.audit.config.webhook.url | 字符串 | 用于发送日志的 HTTP 或 HTTPS URL。 |
plugins.security.audit.config.webhook.ssl.verify | 布尔型 | 如果为 true,则会验证端点提供的 TLS 证书(如果有)。如果设置为 false,则不执行任何验证。如果您使用自签名证书,可以禁用此检查。 |
plugins.security.audit.config.webhook.ssl.pemtrustedcas_filepath | 字符串 | 用于验证 webhook TLS 证书的可信证书路径。 |
plugins.security.audit.config.webhook.ssl.pemtrustedcas_content | 字符串 | 与 plugins.security.audit.config.webhook.ssl.pemtrustedcas_content 相同,但您可以直接配置 Base64 编码的证书内容。 |
plugins.security.audit.config.webhook.format | 字符串 | 审计日志消息的记录格式,可以是 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 格式存储。