保护客户端和集成
edit保护客户端和集成
edit您需要更新多个客户端的配置,以便与受保护的Elasticsearch集群一起工作。
Elasticsearch 安全功能使您能够保护您的 Elasticsearch 集群。但 Elasticsearch 本身只是 Elastic Stack 中的一个产品。通常情况下,Elastic Stack 中的其他产品会连接到集群,因此也需要进行安全保护,或者至少以安全的方式与集群进行通信:
HTTP/REST 客户端和安全
editElasticsearch 安全功能与标准的 HTTP 基本认证 头一起工作,用于用户认证。由于 Elasticsearch 是无状态的,因此必须在每个请求中发送此头:
或者,您可以使用 基于令牌的身份验证服务。
客户端示例
edit此示例使用 curl 创建索引,不使用基本认证:
curl -XPUT 'localhost:9200/idx'
{
"error": "AuthenticationException[Missing authentication token]",
"status": 401
}
由于上述请求没有与用户关联,因此返回了身份验证错误。现在我们将使用curl与基本认证来以rdeniro用户的身份创建一个索引:
curl --user rdeniro:taxidriver -XPUT 'localhost:9200/idx'
{
"acknowledged": true
}
二次授权
edit一些API支持次级授权头,用于在您希望任务以不同凭据集运行的情况下。例如,除了基本身份验证头之外,您还可以发送以下头:
The es-secondary-authorization header 与 Authorization header 具有相同的语法。因此,它也支持使用 基于令牌的身份验证服务。例如:
通过HTTP的客户端库
edit有关在特定语言客户端中使用安全功能的更多信息,请参阅:
ES-Hadoop 与安全
editElasticsearch for Apache Hadoop(“ES-Hadoop”)在访问 Elasticsearch 集群时,能够使用 HTTP 基本认证和 PKI 认证以及/或者 TLS/SSL。有关详细信息,请参阅 ES-Hadoop 文档,特别是 Security 部分。
为了进行身份验证,请为您的ES-Hadoop客户端选择一个用户(为了维护目的,最好创建一个专用用户)。然后,将该用户分配到一个具有Hadoop/Spark/Storm作业所需权限的角色。通过es.net.http.auth.user和es.net.http.auth.pass属性配置ES-Hadoop以使用用户名和密码。
如果启用了PKI认证,请通过es.net.ssl.keystore.location和es.net.truststore.location设置相应的keystore和truststore(并使用各自的.pass属性来指定密码)。
为了进行安全传输,通过将es.net.ssl属性设置为true来启用SSL/TLS。根据您的SSL配置(密钥库、信任库等),您可能还需要设置其他参数 - 请参阅ES-Hadoop文档,特别是配置和安全章节。
监控与安全
editElastic Stack 监控功能由两个组件组成: 一个代理,您需要在每个 Elasticsearch 和 Logstash 节点上安装,以及 Kibana 中的监控 UI。监控代理收集并索引来自节点的指标,您可以通过 Kibana 中的监控仪表板可视化数据。该代理可以在同一个 Elasticsearch 集群上索引数据,或者将其发送到外部监控集群。
要使用启用了安全功能的监控功能,您需要 设置 Kibana 以使用安全功能 并至少为监控 UI 创建一个用户。如果您使用的是外部监控集群,您还需要为监控代理配置一个用户,并配置代理以在与其监控集群通信时使用适当的凭据。
更多信息,请参阅: