实验性
loki.secretfilter
实验性:这是一个实验性组件。实验性组件可能频繁进行重大更改,并且可能不会提供等效的替代方案。要使用此组件,必须将
stability.level
标志设置为实验性
。
loki.secretfilter
接收日志条目并从中删除敏感信息,例如机密信息。检测基于组件内部嵌入的Gitleaks配置文件中定义的正则表达式模式。loki.secretfilter
还可以使用基于Gitleaks配置文件结构的自定义配置文件。
注意
目前个人身份信息(PII)不在范围内,并且某些机密信息可能未被检测到。此组件可能会产生误报。不要仅依赖于此组件来删除敏感信息。
使用方法
loki.secretfilter "<LABEL>" {
forward_to = <RECEIVER_LIST>
}
参数
loki.secretfilter
支持以下参数
名称 | 类型 | 描述 | 默认 | 必需 |
---|---|---|---|---|
forward_to | list(LogsReceiver) | 发送日志条目到的接收者列表。 | yes | |
gitleaks_config | 字符串 | 自定义 gitleaks.toml 文件的路径。 | 嵌入式 Gitleaks 文件 | no |
types | map(string) | 要查找的秘密类型。 | 所有类型 | no |
redact_with | 字符串 | 用于红action秘密的字符串。 | <REDACTED-SECRET:$SECRET_NAME> | no |
include_generic | bool | 包括通用API密钥规则。 | false | no |
allowlist | map(string) | 允许匹配秘密的正则表达式列表。 | {} | no |
partial_mask | number | 显示秘密的前N个字符。 | 0 | no |
gitleaks_config
参数是自定义 gitleaks.toml
文件的路径。如果您不提供自定义配置文件的路径,则使用组件中嵌入的 Gitleaks 配置文件。
types
参数是要查找的秘密类型的映射。这些值用作 Gitleaks 配置中秘密类型的名称前缀。如果不提供此参数,则使用所有类型。
注意
强烈建议您配置要查找的秘密类型。如果不这样做,组件将查找所有已知类型,这很消耗资源。
注意
在 Gitleaks 配置文件中的一些秘密类型依赖于正则表达式模式,这些模式不检测秘密本身,而是检测其上下文。例如,aws-access-token
类型检测 AWS 密钥 ID,而不是密钥本身。这是因为密钥没有易于用正则表达式检测的独特模式。因此,启用此秘密类型时,组件将红action密钥 ID,但不会红action实际的秘密密钥。此行为与 Gitleaks 红action 功能一致,但可能不是您所期望的。目前已知具有此行为的秘密类型有:aws-access-token
。
redact_with
参数是一个字符串,可以使用变量,如 $SECRET_NAME
(替换为匹配的秘密类型)和 $SECRET_HASH
(替换为秘密的 sha1 哈希)。
include_generic
参数是一个布尔值,如果设置为 true
,则将通用API密钥规则包括在 Gitleaks 配置文件中。默认情况下是禁用的,因为它可能会生成误报。
allowlist
参数是允许匹配秘密的正则表达式的映射。如果秘密与任何正则表达式匹配,则不会对其进行红action。Gitleaks 配置文件中的允许列表也会应用。
partial_mask
参数是在添加红action字符串之前从秘密开头显示的字符数。如果设置为 0
,则完全红action整个秘密。
块
loki.secretfilter
组件不支持任何块,完全通过参数进行配置。
导出字段
以下字段被导出,并可由其他组件引用
名称 | 类型 | 描述 |
---|---|---|
receiver | LogsReceiver | 其他组件可以使用它来发送日志条目。 |
组件健康
loki.secretfilter
只有在给出无效配置时才报告为不健康。
调试度量
loki.secretfilter
不公开任何特定于组件的调试信息。
示例
此示例显示了如何使用 loki.secretfilter
在将日志条目转发到 Loki 接收器之前对其进行红action秘密。它使用一个自定义红action字符串,该字符串将包括秘密类型及其哈希。
local.file_match "local_logs" {
path_targets = <PATH_TARGETS>
}
loki.source.file "local_logs" {
targets = local.file_match.local_logs.targets
forward_to = [loki.secretfilter.secret_filter.receiver]
}
loki.secretfilter "secret_filter" {
forward_to = [loki.write.local_loki.receiver]
redact_with = "<ALLOY-REDACTED-SECRET:$SECRET_NAME:$SECRET_HASH>"
}
loki.write "local_loki" {
endpoint {
url = <LOKI_ENDPOINT>
}
}
替换以下
<PATH_TARGETS>
:要监控的日志文件的路径。<LOKI_ENDPOINT>
:要发送日志的 Loki 实例的 URL。
兼容组件
loki.secretfilter
可以接受以下组件的参数:
- 导出Loki
LogsReceiver
的组件
loki.secretfilter
的导出可以被以下组件消费
- 消费Loki
LogsReceiver
的组件
注意
连接某些组件可能不合理,或者组件可能需要进一步配置才能正确连接。请参阅相关文档以获取更多详细信息。