Elastic Cloud、Filebeat 和 Key/Token 身份验证
Elastic Cloud, Filebeat, and Key/Token Authentication
是否可以配置 filebeat 以使用令牌身份验证与弹性云实例通信?
根据 to the docs,如果我使用的是云实例,我应该在 filebeat.yml
中配置 cloud.id
和 cloud.auth
cloud.id: "..."
cloud.auth: "filebeat_setup:YOUR_PASSWORD"
文档说 cloud.auth
应该是我的 Elastic Cloud 实例中的用户名和密码。我想改用 api_key。但是,当我配置 API key
output.elasticsearch:
# Authentication credentials - either API key or username/password.
api_key: "key-id:key-value"
并尝试测试我的连接,
$ sudo filebeat test output
elasticsearch: https://...:443...
parse url... OK
connection...
parse host... OK
dns lookup... OK
addresses: 52.202.123.120, 18.214.74.184, 50.19.154.221
dial up... OK
TLS...
security: server's certificate chain verification is enabled
handshake... OK
TLS version: TLSv1.2
dial up... OK
talk to server... ERROR 401 Unauthorized: {"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":["Basic realm=\"security\" charset=\"UTF-8\"","Bearer realm=\"security\"","ApiKey"]}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":["Basic realm=\"security\" charset=\"UTF-8\"","Bearer realm=\"security\"","ApiKey"]}},"status":401}
看来 filebeat
不承认我的 API 密钥
"root_cause":[
{
"type":"security_exception",
"reason":"missing authentication credentials for REST request [/]"
/* ... */
我已使用此令牌通过 @elastic/elasticsearch
javascript 包成功连接到我的云实例。
在我继续调试这个问题之前——是否 可能 使用令牌身份验证通过 filebeat
连接到 Elasticsearch?还是 filebeat
只支持 username/password 认证?
这个问题的答案原来是:是的,即使您使用的是弹性云,您也可以将 api_key
与 filebeat 一起使用。
虽然在我的配置测试期间收到错误消息
missing authentication credentials for REST request
表示缺少身份验证,真正的问题是我之前成功使用的密钥最近过期了。我假设 filebeat 尝试了 API 密钥,被拒绝了,然后回退到尝试用户凭据。当缺少这些凭据时,会出现上述错误。
是否可以配置 filebeat 以使用令牌身份验证与弹性云实例通信?
根据 to the docs,如果我使用的是云实例,我应该在 filebeat.yml
cloud.id
和 cloud.auth
cloud.id: "..."
cloud.auth: "filebeat_setup:YOUR_PASSWORD"
文档说 cloud.auth
应该是我的 Elastic Cloud 实例中的用户名和密码。我想改用 api_key。但是,当我配置 API key
output.elasticsearch:
# Authentication credentials - either API key or username/password.
api_key: "key-id:key-value"
并尝试测试我的连接,
$ sudo filebeat test output
elasticsearch: https://...:443...
parse url... OK
connection...
parse host... OK
dns lookup... OK
addresses: 52.202.123.120, 18.214.74.184, 50.19.154.221
dial up... OK
TLS...
security: server's certificate chain verification is enabled
handshake... OK
TLS version: TLSv1.2
dial up... OK
talk to server... ERROR 401 Unauthorized: {"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":["Basic realm=\"security\" charset=\"UTF-8\"","Bearer realm=\"security\"","ApiKey"]}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":["Basic realm=\"security\" charset=\"UTF-8\"","Bearer realm=\"security\"","ApiKey"]}},"status":401}
看来 filebeat
不承认我的 API 密钥
"root_cause":[
{
"type":"security_exception",
"reason":"missing authentication credentials for REST request [/]"
/* ... */
我已使用此令牌通过 @elastic/elasticsearch
javascript 包成功连接到我的云实例。
在我继续调试这个问题之前——是否 可能 使用令牌身份验证通过 filebeat
连接到 Elasticsearch?还是 filebeat
只支持 username/password 认证?
这个问题的答案原来是:是的,即使您使用的是弹性云,您也可以将 api_key
与 filebeat 一起使用。
虽然在我的配置测试期间收到错误消息
missing authentication credentials for REST request
表示缺少身份验证,真正的问题是我之前成功使用的密钥最近过期了。我假设 filebeat 尝试了 API 密钥,被拒绝了,然后回退到尝试用户凭据。当缺少这些凭据时,会出现上述错误。