配置匿名身份验证

编辑

Elastic APM 代理可以将未经身份验证(匿名)的事件发送到 APM 服务器。如果无法从传入请求中提取身份验证令牌,则该事件被视为匿名事件。这对于在客户端运行的代理非常有用,例如在浏览器中运行的实时用户监控 (RUM) 代理,或在用户应用程序中运行的 Android 或 iOS/Swift 代理。

在 APM 服务器中启用匿名身份验证,以便在仍然需要对服务器端服务进行身份验证的同时,允许摄取未经身份验证的客户端 APM 数据。

示例配置

apm-server.auth.anonymous.enabled: true
apm-server.auth.anonymous.allow_agent: [rum-js]
apm-server.auth.anonymous.allow_service: [my_service_name]
apm-server.auth.anonymous.rate_limit.event_limit: 300
apm-server.auth.anonymous.rate_limit.ip_limit: 1000

如果已验证的通信被禁用,则所有匿名访问配置将被忽略。

实时用户监控 (RUM)
编辑

如果配置了API 密钥密钥令牌,则必须启用匿名身份验证才能收集 RUM 数据。出于这个原因,如果启用 RUM设置为true,并且匿名代理访问未显式定义,则将自动启用匿名身份验证。

有关其他 RUM 配置选项,请参见实时用户监控 (RUM)

减轻恶意请求的影响编辑

有一些配置变量可以减轻对未经身份验证的 APM 服务器端点的恶意请求的影响。

使用允许的匿名代理允许的服务配置来确保每个传入请求的agent.nameservice.name与指定的列表匹配。

此外,APM 服务器可以根据请求的客户端 IP 地址(client.ip)使用事件限制对未经身份验证的请求进行限速。这允许您指定每个唯一 IP 地址每秒允许的最大请求数。

获取传入请求的client.ip地址编辑

传入请求的远程 IP 地址可能与最终用户的实际 IP 地址不同,例如,由于代理的原因。出于这个原因,APM 服务器尝试从 HTTP 头中获取传入请求的 IP 地址。支持的标头按以下顺序解析

  1. Forwarded
  2. X-Real-Ip
  3. X-Forwarded-For

如果没有这些标头,则使用传入请求的远程地址。

使用反向代理或负载均衡器编辑

HTTP 头很容易被修改;任何人都有可能通过更改或设置(例如)X-Forwarded-For标头的值来伪造派生的client.ip值。因此,如果您的任何客户端不受信任,我们建议在 APM 服务器前面设置反向代理或负载均衡器。

使用代理允许您清除任何现有的 IP 转发 HTTP 头,并用代理设置的一个头替换它们。这可以防止恶意用户循环伪造的 IP 地址以绕过 APM 服务器的速率限制功能。

配置参考
编辑
匿名代理访问编辑

启用或禁用匿名身份验证。默认值:false(禁用)。(bool)

APM 服务器二进制文件

apm-server.auth.anonymous.enabled

Fleet 管理

匿名代理访问

允许的匿名代理编辑

允许匿名身份验证的已许可 APM 代理名称列表。此列表中的名称必须与代理的agent.name匹配。默认值:[rum-js, js-base](仅接受 RUM 代理事件)。(数组)

APM 服务器二进制文件

apm-server.auth.anonymous.allow_agent

Fleet 管理

允许的匿名代理

允许的服务
编辑

允许匿名身份验证的服务名称列表。此列表中的名称必须与代理的service.name匹配。这可用于限制创建的服务特定索引或数据流的数量。默认值:未设置(接受任何服务名称)。(数组)

APM 服务器二进制文件

apm-server.auth.anonymous.allow_service

Fleet 管理

允许的匿名服务

IP 限制编辑

在 LRU 缓存中跟踪的唯一 IP 地址数。缓存中的 IP 地址将根据事件限制设置进行限速。如果您的应用程序具有许多并发客户端,请考虑增加此默认值。默认值:1000。(int)

APM 服务器二进制文件

apm-server.auth.anonymous.rate_limit.ip_limit

Fleet 管理

匿名速率限制(IP 限制)

事件限制编辑

每个代理 IP 地址每秒允许的最大事件数。默认值:300。(int)

APM 服务器二进制文件

apm-server.auth.anonymous.rate_limit.event_limit

Fleet 管理

匿名事件速率限制(事件限制)