- Elasticsearch 指南其他版本
- 8.17 中的新功能
- Elasticsearch 基础
- 快速入门
- 设置 Elasticsearch
- 升级 Elasticsearch
- 索引模块
- 映射
- 文本分析
- 索引模板
- 数据流
- 摄取管道
- 别名
- 搜索您的数据
- 重新排名
- 查询 DSL
- 聚合
- 地理空间分析
- 连接器
- EQL
- ES|QL
- SQL
- 脚本
- 数据管理
- 自动缩放
- 监视集群
- 汇总或转换数据
- 设置高可用性集群
- 快照和还原
- 保护 Elastic Stack 的安全
- Watcher
- 命令行工具
- elasticsearch-certgen
- elasticsearch-certutil
- elasticsearch-create-enrollment-token
- elasticsearch-croneval
- elasticsearch-keystore
- elasticsearch-node
- elasticsearch-reconfigure-node
- elasticsearch-reset-password
- elasticsearch-saml-metadata
- elasticsearch-service-tokens
- elasticsearch-setup-passwords
- elasticsearch-shard
- elasticsearch-syskeygen
- elasticsearch-users
- 优化
- 故障排除
- 修复常见的集群问题
- 诊断未分配的分片
- 向系统中添加丢失的层
- 允许 Elasticsearch 在系统中分配数据
- 允许 Elasticsearch 分配索引
- 索引将索引分配过滤器与数据层节点角色混合,以在数据层之间移动
- 没有足够的节点来分配所有分片副本
- 单个节点上索引的分片总数已超过
- 每个节点的分片总数已达到
- 故障排除损坏
- 修复磁盘空间不足的数据节点
- 修复磁盘空间不足的主节点
- 修复磁盘空间不足的其他角色节点
- 启动索引生命周期管理
- 启动快照生命周期管理
- 从快照恢复
- 故障排除损坏的存储库
- 解决重复的快照策略失败问题
- 故障排除不稳定的集群
- 故障排除发现
- 故障排除监控
- 故障排除转换
- 故障排除 Watcher
- 故障排除搜索
- 故障排除分片容量健康问题
- 故障排除不平衡的集群
- 捕获诊断信息
- REST API
- API 约定
- 通用选项
- REST API 兼容性
- 自动缩放 API
- 行为分析 API
- 紧凑和对齐文本 (CAT) API
- 集群 API
- 跨集群复制 API
- 连接器 API
- 数据流 API
- 文档 API
- 丰富 API
- EQL API
- ES|QL API
- 功能 API
- Fleet API
- 图表探索 API
- 索引 API
- 别名是否存在
- 别名
- 分析
- 分析索引磁盘使用量
- 清除缓存
- 克隆索引
- 关闭索引
- 创建索引
- 创建或更新别名
- 创建或更新组件模板
- 创建或更新索引模板
- 创建或更新索引模板(旧版)
- 删除组件模板
- 删除悬挂索引
- 删除别名
- 删除索引
- 删除索引模板
- 删除索引模板(旧版)
- 存在
- 字段使用情况统计信息
- 刷新
- 强制合并
- 获取别名
- 获取组件模板
- 获取字段映射
- 获取索引
- 获取索引设置
- 获取索引模板
- 获取索引模板(旧版)
- 获取映射
- 导入悬挂索引
- 索引恢复
- 索引段
- 索引分片存储
- 索引统计信息
- 索引模板是否存在(旧版)
- 列出悬挂索引
- 打开索引
- 刷新
- 解析索引
- 解析集群
- 翻转
- 收缩索引
- 模拟索引
- 模拟模板
- 拆分索引
- 解冻索引
- 更新索引设置
- 更新映射
- 索引生命周期管理 API
- 推理 API
- 信息 API
- 摄取 API
- 许可 API
- Logstash API
- 机器学习 API
- 机器学习异常检测 API
- 机器学习数据帧分析 API
- 机器学习训练模型 API
- 迁移 API
- 节点生命周期 API
- 查询规则 API
- 重新加载搜索分析器 API
- 存储库计量 API
- 汇总 API
- 根 API
- 脚本 API
- 搜索 API
- 搜索应用程序 API
- 可搜索快照 API
- 安全 API
- 身份验证
- 更改密码
- 清除缓存
- 清除角色缓存
- 清除权限缓存
- 清除 API 密钥缓存
- 清除服务帐户令牌缓存
- 创建 API 密钥
- 创建或更新应用程序权限
- 创建或更新角色映射
- 创建或更新角色
- 批量创建或更新角色 API
- 批量删除角色 API
- 创建或更新用户
- 创建服务帐户令牌
- 委托 PKI 身份验证
- 删除应用程序权限
- 删除角色映射
- 删除角色
- 删除服务帐户令牌
- 删除用户
- 禁用用户
- 启用用户
- 注册 Kibana
- 注册节点
- 获取 API 密钥信息
- 获取应用程序权限
- 获取内置权限
- 获取角色映射
- 获取角色
- 查询角色
- 获取服务帐户
- 获取服务帐户凭据
- 获取安全设置
- 获取令牌
- 获取用户权限
- 获取用户
- 授予 API 密钥
- 具有权限
- 使 API 密钥失效
- 使令牌失效
- OpenID Connect 准备身份验证
- OpenID Connect 身份验证
- OpenID Connect 注销
- 查询 API 密钥信息
- 查询用户
- 更新 API 密钥
- 更新安全设置
- 批量更新 API 密钥
- SAML 准备身份验证
- SAML 身份验证
- SAML 注销
- SAML 失效
- SAML 完成注销
- SAML 服务提供商元数据
- SSL 证书
- 激活用户配置文件
- 禁用用户配置文件
- 启用用户配置文件
- 获取用户配置文件
- 建议用户配置文件
- 更新用户配置文件数据
- 具有用户配置文件权限
- 创建跨集群 API 密钥
- 更新跨集群 API 密钥
- 快照和还原 API
- 快照生命周期管理 API
- SQL API
- 同义词 API
- 文本结构 API
- 转换 API
- 使用情况 API
- Watcher API
- 定义
- 迁移指南
- 发行说明
- Elasticsearch 版本 8.17.0
- Elasticsearch 版本 8.16.1
- Elasticsearch 版本 8.16.0
- Elasticsearch 版本 8.15.5
- Elasticsearch 版本 8.15.4
- Elasticsearch 版本 8.15.3
- Elasticsearch 版本 8.15.2
- Elasticsearch 版本 8.15.1
- Elasticsearch 版本 8.15.0
- Elasticsearch 版本 8.14.3
- Elasticsearch 版本 8.14.2
- Elasticsearch 版本 8.14.1
- Elasticsearch 版本 8.14.0
- Elasticsearch 版本 8.13.4
- Elasticsearch 版本 8.13.3
- Elasticsearch 版本 8.13.2
- Elasticsearch 版本 8.13.1
- Elasticsearch 版本 8.13.0
- Elasticsearch 版本 8.12.2
- Elasticsearch 版本 8.12.1
- Elasticsearch 版本 8.12.0
- Elasticsearch 版本 8.11.4
- Elasticsearch 版本 8.11.3
- Elasticsearch 版本 8.11.2
- Elasticsearch 版本 8.11.1
- Elasticsearch 版本 8.11.0
- Elasticsearch 版本 8.10.4
- Elasticsearch 版本 8.10.3
- Elasticsearch 版本 8.10.2
- Elasticsearch 版本 8.10.1
- Elasticsearch 版本 8.10.0
- Elasticsearch 版本 8.9.2
- Elasticsearch 版本 8.9.1
- Elasticsearch 版本 8.9.0
- Elasticsearch 版本 8.8.2
- Elasticsearch 版本 8.8.1
- Elasticsearch 版本 8.8.0
- Elasticsearch 版本 8.7.1
- Elasticsearch 版本 8.7.0
- Elasticsearch 版本 8.6.2
- Elasticsearch 版本 8.6.1
- Elasticsearch 版本 8.6.0
- Elasticsearch 版本 8.5.3
- Elasticsearch 版本 8.5.2
- Elasticsearch 版本 8.5.1
- Elasticsearch 版本 8.5.0
- Elasticsearch 版本 8.4.3
- Elasticsearch 版本 8.4.2
- Elasticsearch 版本 8.4.1
- Elasticsearch 版本 8.4.0
- Elasticsearch 版本 8.3.3
- Elasticsearch 版本 8.3.2
- Elasticsearch 版本 8.3.1
- Elasticsearch 版本 8.3.0
- Elasticsearch 版本 8.2.3
- Elasticsearch 版本 8.2.2
- Elasticsearch 版本 8.2.1
- Elasticsearch 版本 8.2.0
- Elasticsearch 版本 8.1.3
- Elasticsearch 版本 8.1.2
- Elasticsearch 版本 8.1.1
- Elasticsearch 版本 8.1.0
- Elasticsearch 版本 8.0.1
- Elasticsearch 版本 8.0.0
- Elasticsearch 版本 8.0.0-rc2
- Elasticsearch 版本 8.0.0-rc1
- Elasticsearch 版本 8.0.0-beta1
- Elasticsearch 版本 8.0.0-alpha2
- Elasticsearch 版本 8.0.0-alpha1
- 依赖项和版本
为 Elastic Stack 设置基本安全性
编辑为 Elastic Stack 设置基本安全性
编辑首次启动 Elasticsearch 时,会为 elastic
用户生成密码,并自动为您配置 TLS。如果您在启动 Elasticsearch 节点之前手动配置安全性,则自动配置过程将尊重您的安全配置。您可以随时调整 TLS 配置,例如更新节点证书。
如果您的集群有多个节点,则必须在节点之间配置 TLS。如果不启用 TLS,生产模式集群将无法启动。
传输层依靠相互 TLS 来进行加密和节点身份验证。正确应用 TLS 可以确保恶意节点无法加入集群并与其他节点交换数据。虽然在 HTTP 层实施用户名和密码验证对于保护本地集群非常有用,但节点之间通信的安全性需要 TLS。
在节点之间配置 TLS 是防止未经授权的节点访问您的集群的基本安全设置。
生成证书颁发机构
编辑您可以在集群中添加任意数量的节点,但它们必须能够相互通信。集群中节点之间的通信由传输模块处理。为了保护您的集群,您必须确保节点间通信已加密并经过验证,这通过相互 TLS 实现。
在受保护的集群中,Elasticsearch 节点在与其他节点通信时使用证书来标识自己。
集群必须验证这些证书的真实性。 推荐的方法是信任特定的证书颁发机构 (CA)。 当节点添加到您的集群时,它们必须使用同一 CA 签名的证书。
对于传输层,我们建议使用单独的专用 CA,而不是现有的、可能共享的 CA,以便严格控制节点成员资格。使用 elasticsearch-certutil
工具为您的集群生成 CA。
-
在启动 Elasticsearch 之前,请在任何单个节点上使用
elasticsearch-certutil
工具为您的集群生成 CA。./bin/elasticsearch-certutil ca
- 出现提示时,接受默认文件名,即
elastic-stack-ca.p12
。 此文件包含您的 CA 的公钥证书和用于为每个节点签名证书的私钥。 - 输入您的 CA 的密码。 如果您不是部署到生产环境,则可以选择将密码留空。
- 出现提示时,接受默认文件名,即
-
在任何单个节点上,为集群中的节点生成证书和私钥。 您需要包含在上一步中生成的
elastic-stack-ca.p12
输出文件。./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
-
--ca <ca_file>
-
用于签署证书的 CA 文件名称。
elasticsearch-certutil
工具的默认文件名为elastic-stack-ca.p12
。- 输入您的 CA 的密码,或者如果您在上一步中未配置密码,请按Enter。
-
为证书创建密码并接受默认文件名。
输出文件是一个名为
elastic-certificates.p12
的密钥库。 此文件包含节点证书、节点密钥和 CA 证书。
-
- 在集群中的每个节点上,将
elastic-certificates.p12
文件复制到$ES_PATH_CONF
目录。
使用 TLS 加密节点间通信
编辑传输网络层用于集群中节点之间的内部通信。启用安全功能时,您必须使用 TLS 来确保节点之间的通信已加密。
现在您已经生成了证书颁发机构和证书,您将更新您的集群以使用这些文件。
Elasticsearch 监视所有文件,例如配置为 TLS 相关节点设置值的证书、密钥、密钥库或信任库。如果您更新任何这些文件,例如当您的主机名更改或您的证书即将过期时,Elasticsearch 会重新加载它们。文件会以全局 Elasticsearch resource.reload.interval.high
设置确定的频率轮询更改,该设置默认为 5 秒。
为集群中的每个节点完成以下步骤。要加入同一集群,所有节点必须共享相同的 cluster.name
值。
-
打开
$ES_PATH_CONF/elasticsearch.yml
文件并进行以下更改-
添加
cluster-name
设置,并输入集群的名称cluster.name: my-cluster
-
添加
node.name
设置,并输入节点的名称。 节点名称默认为 Elasticsearch 启动时的主机名。node.name: node-1
-
添加以下设置以启用节点间通信并提供对节点证书的访问。
由于您在集群中的每个节点上都使用相同的
elastic-certificates.p12
文件,因此请将验证模式设置为certificate
xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.client_authentication: required xpack.security.transport.ssl.keystore.path: elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
如果要使用主机名验证,请将验证模式设置为
full
。 您应该为每个与 DNS 或 IP 地址匹配的主机生成不同的证书。请参阅TLS 设置中的xpack.security.transport.ssl.verification_mode
参数。
-
-
如果您在创建节点证书时输入了密码,请运行以下命令将密码存储在 Elasticsearch 密钥库中
./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
- 为集群中的每个节点完成之前的步骤。
-
在集群中的每个节点上,启动 Elasticsearch。启动和停止 Elasticsearch 的方法因您的安装方式而异。
例如,如果您使用存档分发(
tar.gz
或.zip
)安装了 Elasticsearch,则可以在命令行中输入Ctrl+C
来停止 Elasticsearch。您必须执行完整的集群重启。配置为对传输使用 TLS 的节点无法与使用未加密传输连接的节点通信(反之亦然)。
下一步是什么?
编辑恭喜!您已加密集群中节点之间的通信,并且可以通过TLS 引导检查。
要添加另一层安全性,请为 Elastic Stack 设置基本安全性并保护 HTTPS 流量。除了在 Elasticsearch 集群的传输接口上配置 TLS 之外,您还可以在 Elasticsearch 和 Kibana 的 HTTP 接口上配置 TLS。
On this page