菜单
实验性

实验性

loki.secretfilter

实验性:这是一个实验性组件。实验性组件可能频繁进行重大更改,并且可能不会提供等效的替代方案。要使用此组件,必须将stability.level标志设置为实验性

loki.secretfilter接收日志条目并从中删除敏感信息,例如机密信息。检测基于组件内部嵌入的Gitleaks配置文件中定义的正则表达式模式。loki.secretfilter还可以使用基于Gitleaks配置文件结构的自定义配置文件。

注意

目前个人身份信息(PII)不在范围内,并且某些机密信息可能未被检测到。此组件可能会产生误报。不要仅依赖于此组件来删除敏感信息。

使用方法

alloy
loki.secretfilter "<LABEL>" {
    forward_to = <RECEIVER_LIST>
}

参数

loki.secretfilter支持以下参数

名称类型描述默认必需
forward_tolist(LogsReceiver)发送日志条目到的接收者列表。yes
gitleaks_config字符串自定义 gitleaks.toml 文件的路径。嵌入式 Gitleaks 文件no
typesmap(string)要查找的秘密类型。所有类型no
redact_with字符串用于红action秘密的字符串。<REDACTED-SECRET:$SECRET_NAME>no
include_genericbool包括通用API密钥规则。falseno
allowlistmap(string)允许匹配秘密的正则表达式列表。{}no
partial_masknumber显示秘密的前N个字符。0no

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 组件不支持任何块,完全通过参数进行配置。

导出字段

以下字段被导出,并可由其他组件引用

名称类型描述
receiverLogsReceiver其他组件可以使用它来发送日志条目。

组件健康

loki.secretfilter 只有在给出无效配置时才报告为不健康。

调试度量

loki.secretfilter 不公开任何特定于组件的调试信息。

示例

此示例显示了如何使用 loki.secretfilter 在将日志条目转发到 Loki 接收器之前对其进行红action秘密。它使用一个自定义红action字符串,该字符串将包括秘密类型及其哈希。

alloy
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.secretfilter的导出可以被以下组件消费

注意

连接某些组件可能不合理,或者组件可能需要进一步配置才能正确连接。请参阅相关文档以获取更多详细信息。