Elasticsearch 中的安全设置
编辑Elasticsearch 中的安全设置
编辑您可以配置 xpack.security
设置以 启用匿名访问 并执行消息身份验证,设置文档和字段级安全,配置领域,使用 SSL 加密通信,以及 审计安全事件。
所有这些设置都可以添加到 elasticsearch.yml
配置文件中,除了安全设置,您需要将其添加到 Elasticsearch 密钥库中。有关创建和更新 Elasticsearch 密钥库的更多信息,请参见 安全设置。
常规安全设置
编辑-
xpack.security.enabled
-
(静态) 默认为
true
,这将在节点上启用 Elasticsearch 安全功能。必须启用此设置才能使用 Elasticsearch 的身份验证、授权和审计功能。
如果设置为
false
,则安全功能将被禁用,这**不建议**。它还会影响连接到此 Elasticsearch 实例的所有 Kibana 实例;您无需在这些kibana.yml
文件中禁用安全功能。有关在特定 Kibana 实例中禁用安全功能的更多信息,请参见 Kibana 安全设置。 -
xpack.security.autoconfiguration.enabled
-
如果设置为
false
,则安全自动配置将被禁用,这**不建议**。禁用后,首次启动 Elasticsearch 时不会自动配置安全功能,这意味着您必须 手动配置安全。 -
xpack.security.enrollment.enabled
-
(静态) 默认为
false
。控制节点和 Kibana 的注册(到已 自动配置安全 的本地节点)。设置为true
时,本地节点可以生成新的注册令牌。如果现有令牌仍然有效,则可以使用它们进行注册。安全自动配置过程会将此设置为
true
,除非管理员在启动 Elasticsearch 之前将其设置为false
。 -
xpack.security.hide_settings
- (静态) 一个逗号分隔的设置列表,这些设置将从 集群节点信息 API 的结果中省略。您可以使用通配符将多个设置包含在列表中。例如,以下值隐藏了 ad1 active_directory 领域的全部设置:
xpack.security.authc.realms.active_directory.ad1.*
。由于信息的敏感性,API 已经省略了所有ssl
设置、bind_dn
和bind_password
。 -
xpack.security.fips_mode.enabled
- (静态) 启用 FIPS 操作模式。如果您在启用 FIPS 140-2 的 JVM 中运行此 Elasticsearch 实例,请将其设置为
true
。有关更多信息,请参见 FIPS 140-2。默认为false
。 -
xpack.security.fips_mode.required_providers
- (静态) 可选地强制执行特定的 Java JCE/JSSE 安全提供程序。例如,将其设置为
["BCFIPS", "BCJSSE"]
(不区分大小写)以要求 Bouncy Castle FIPS JCE 和 JSSE 安全提供程序。仅当xpack.security.fips_mode.enabled
设置为true
时适用。
密码哈希设置
编辑-
xpack.security.authc.password_hashing.algorithm
- (静态) 指定用于安全用户凭据存储的哈希算法。请参见 表 2,“密码哈希算法”。如果
xpack.security.fips_mode.enabled
为 true(请参见 FIPS 140-2),则默认为pbkdf2_stretch
。在所有其他情况下,默认为bcrypt
。
匿名访问设置
编辑您可以在 elasticsearch.yml
中配置以下匿名访问设置。有关更多信息,请参见 启用匿名访问。
-
xpack.security.authc.anonymous.username
- (静态) 匿名用户的用户名(主体)。默认为
_es_anonymous_user
。 -
xpack.security.authc.anonymous.roles
- (静态) 与匿名用户关联的角色。必需。
-
xpack.security.authc.anonymous.authz_exception
- (静态) 当
true
时,如果匿名用户没有请求操作的相应权限,则返回 HTTP 403 响应。不会提示用户提供凭据以访问请求的资源。当设置为false
时,将返回 HTTP 401 响应,并且用户可以使用具有相应权限的凭据来获取访问权限。默认为true
。
自动机设置
编辑在安全功能接受通配符模式的地方(例如,角色中的索引模式、角色映射 API 中的组匹配),每个模式都会编译成一个自动机。以下设置可用于控制此行为。
-
xpack.security.automata.max_determinized_states
- (静态) 单个模式可以创建的自动机状态的上限。这可以防止过于复杂的(例如指数级困难的)模式。默认为
100,000
。 -
xpack.security.automata.cache.enabled
- (静态) 是否缓存已编译的自动机。编译自动机可能需要大量的 CPU 资源,并可能减慢某些操作的速度。缓存减少了需要编译自动机的频率。默认为
true
。 -
xpack.security.automata.cache.size
- (静态) 在自动机缓存中保留的最大项目数。默认为
10,000
。 -
xpack.security.automata.cache.ttl
- (静态) 在自动机缓存中保留项目的持续时间(基于最近的使用情况)。默认为
48h
(48 小时)。
文档和字段级安全设置
编辑您可以在 elasticsearch.yml
中设置以下文档和字段级安全设置。有关更多信息,请参见 设置字段和文档级安全。
-
xpack.security.dls_fls.enabled
- (静态) 设置为
false
以防止配置文档和字段级安全。默认为true
。 -
xpack.security.dls.bitset.cache.ttl
- (静态) 缓存的
BitSet
条目(用于文档级安全)的生存时间。文档级安全查询可能依赖于 Lucene BitSet 对象,并且这些对象会自动缓存以提高性能。默认为使未使用2h
(2 小时)的条目过期。 -
xpack.security.dls.bitset.cache.size
- (静态) 缓存的
BitSet
条目(用于文档级安全)的最大内存使用量。文档级安全查询可能依赖于 Lucene BitSet 对象,并且这些对象会自动缓存以提高性能。可以配置为原始字节数(例如200mb
或1g
)或节点 JVM 堆内存的百分比(例如5%
)。超过默认值时,将逐出最近最少使用的条目。默认为节点分配的堆的10%
。
令牌服务设置
编辑您可以在 elasticsearch.yml
中设置以下令牌服务设置。
API 密钥服务设置
编辑您可以在 elasticsearch.yml
中设置以下 API 密钥服务设置。
-
xpack.security.authc.api_key.enabled
- (静态) 设置为
false
以禁用内置 API 密钥服务。默认为true
。 -
xpack.security.authc.api_key.cache.ttl
- (静态) 缓存的 API 密钥条目的生存时间。API 密钥 ID 及其 API 密钥的哈希值将在此期间缓存。使用标准 Elasticsearch 时间单位 指定时间段。默认为
1d
。 -
xpack.security.authc.api_key.cache.max_keys
- (静态) 在任何给定时间可以存在于缓存中的 API 密钥条目的最大数量。默认为 10,000。
-
xpack.security.authc.api_key.cache.hash_algo
- (静态,专家) 用于内存中缓存的 API 密钥凭据的哈希算法。有关可能的值,请参见 表 1,“缓存哈希算法”。默认为
ssha256
。
-
xpack.security.authc.api_key.delete.retention_period
- (动态) 比保留期旧的已失效或过期的 API 密钥有资格被删除。默认为
7d
。
集群节点之间较大的实时时钟不一致会导致评估 API 密钥保留期限的问题。也就是说,如果使 API 密钥失效的节点上的时钟与执行删除操作的节点上的时钟存在显著差异,则密钥的保留时间可能会长于或短于配置的保留期限。
-
xpack.security.authc.api_key.delete.interval
-
(动态,专家)集群节点会安排自动删除比保留期限更旧的已失效或已过期的 API 密钥。此设置控制两次此类删除作业之间的最小时间间隔。默认为
24h
。这是一个低级设置,目前控制的是每个节点触发的删除作业之间的间隔,而不是整个集群。
-
xpack.security.authc.api_key.delete.timeout
- (静态,专家)设置内部搜索和删除调用的超时时间。
-
xpack.security.authc.api_key.hashing.algorithm
- (静态)指定用于保护 API 密钥凭据的哈希算法。请参阅 表 2,“密码哈希算法”。默认为
pbkdf2
。
安全域设置
编辑您可以在 elasticsearch.yml
中的 xpack.security.authc.domains
命名空间中配置安全域设置。
例如
Realm 设置
编辑您可以在 elasticsearch.yml
中的 xpack.security.authc.realms
命名空间中配置 Realm 设置。
例如
xpack.security.authc.realms: native.realm1: order: 0 ... ldap.realm2: order: 1 ... active_directory.realm3: order: 2 ... ...
指定 Realm 的类型(例如, |
|
指定 Realm 在 Realm 链中的优先级。此信息是必需的。 |
有效设置因 Realm 类型而异。有关更多信息,请参阅 用户身份验证。
对所有 Realm 有效的设置
编辑原生 Realm 设置
编辑除了 对所有 Realm 有效的设置之外,您还可以指定以下可选设置
-
cache.ttl
- (静态)缓存的用户条目生存时间。用户及其凭据的哈希值将在此时间段内被缓存。使用标准 Elasticsearch 时间单位指定时间段。默认为
20m
。 -
cache.max_users
- (静态)在任何给定时间,缓存中可以容纳的最大用户条目数。默认为 100,000。
-
cache.hash_algo
- (静态,专家)用于内存中缓存的用户凭据的哈希算法。有关可能的值,请参阅 表 1,“缓存哈希算法”。默认为
ssha256
。 -
authentication.enabled
- (静态)如果设置为
false
,则禁用此 Realm 中的身份验证支持,以便它仅支持用户查找。(请参阅 以其他用户身份提交请求和 授权 Realm功能)。默认为true
。
文件 Realm 设置
编辑除了 对所有 Realm 有效的设置之外,您还可以指定以下设置
-
cache.ttl
- (静态)缓存的用户条目生存时间。用户及其凭据的哈希值将在配置的此时间段内被缓存。默认为
20m
。使用标准 Elasticsearch 时间单位指定值。默认为20m
。 -
cache.max_users
- (静态)在给定时间,缓存中可以容纳的最大用户条目数。默认为 100,000。
-
cache.hash_algo
- (静态,专家)用于内存中缓存的用户凭据的哈希算法。请参阅 表 1,“缓存哈希算法”。默认为
ssha256
。 -
authentication.enabled
- (静态)如果设置为
false
,则禁用此 Realm 中的身份验证支持,以便它仅支持用户查找。(请参阅 以其他用户身份提交请求和 授权 Realm功能)。默认为true
。
LDAP Realm 设置
编辑除了 对所有 Realm 有效的设置之外,您还可以指定以下设置
-
url
-
(静态)一个或多个采用
ldap[s]://<server>:<port>
格式的 LDAP URL。必需。要提供多个 URL,请使用 YAML 数组 (
["ldap://server1:636", "ldap://server2:636"]
) 或逗号分隔的字符串 ("ldap://server1:636, ldap://server2:636"
)。虽然两者都受支持,但您不能混合使用
ldap
和ldaps
协议。 -
load_balance.type
- (静态)定义多个 LDAP URL 时要使用的行为。有关支持的值,请参阅 负载平衡和故障转移类型。默认为
failover
。 -
load_balance.cache_ttl
- (静态)当使用
dns_failover
或dns_round_robin
作为负载平衡类型时,此设置控制缓存 DNS 查找的时间量。默认为1h
。 -
bind_dn
- (静态)用于绑定到 LDAP 并执行搜索的用户 DN。仅适用于用户搜索模式。如果未指定,则尝试匿名绑定。默认为空。由于其潜在的安全影响,
bind_dn
不会通过 节点信息 API公开。 -
bind_password
- (静态) [6.3] 在 6.3 中弃用。 使用
secure_bind_password
代替。用于绑定到 LDAP 目录的用户密码。默认为空。由于其潜在的安全影响,bind_password
不会通过 节点信息 API公开。 -
secure_bind_password
- (安全,可重新加载)用于绑定到 LDAP 目录的用户密码。默认为空。
-
user_dn_templates
- (静态)DN 模板,它将用户名替换为字符串
{0}
。此设置是多值设置;您可以指定多个用户上下文。在用户模板模式下运行时需要此设置。如果指定了user_search.base_dn
,则此设置无效。有关不同模式的更多信息,请参阅 LDAP 用户身份验证。 -
authorization_realms
-
(静态)应为委托授权查询的 Realm 的名称。如果使用此设置,则 LDAP Realm 不会执行角色映射,而是从列出的 Realm 加载用户。引用的 Realm 将按照在此列表中定义的顺序进行查询。请参阅 委托授权到另一个 Realm。
如果指定了任何以
user_search
开头的设置,则会忽略user_dn_templates
设置。 -
user_group_attribute
- (静态)指定要检查用户的哪个属性以获取其组成员身份。如果指定了任何
group_search
设置,则会忽略此设置。默认为memberOf
。 -
user_full_name_attribute
- (静态)指定要检查用户的哪个属性以获取用户的全名。默认为
cn
。 -
user_email_attribute
- (静态)指定要检查用户的哪个属性以获取用户的电子邮件地址。默认为
mail
。 -
user_search.base_dn
- (静态)指定一个容器 DN 以搜索用户。在用户搜索模式下运行时需要此设置。如果指定了
user_dn_templates
,则此设置无效。有关不同模式的更多信息,请参阅 LDAP 用户身份验证。 -
user_search.scope
- (静态)用户搜索的范围。有效值为
sub_tree
、one_level
或base
。one_level
仅搜索base_dn
中直接包含的对象。sub_tree
搜索base_dn
下包含的所有对象。base
指定base_dn
是用户对象,并且它是唯一考虑的用户。默认为sub_tree
。 -
user_search.filter
- (静态)指定用于搜索目录的过滤器,以尝试将条目与用户提供的用户名匹配。默认为
(uid={0})
。{0}
将替换为搜索时提供的用户名。 -
user_search.attribute
- (静态) [5.6] 在 5.6 中弃用。 使用
user_search.filter
代替。要与请求发送的用户名匹配的属性。默认为uid
。 -
user_search.pool.enabled
- (静态)启用或禁用用户搜索的连接池。如果设置为
false
,则每次搜索都会创建一个新的连接。当设置了bind_dn
时,默认为true
。 -
user_search.pool.size
- (静态)允许连接池中与 LDAP 服务器建立的最大连接数。默认为
20
。 -
user_search.pool.initial_size
- (静态)启动时要创建的与 LDAP 服务器建立的初始连接数。默认为
0
。如果 LDAP 服务器已关闭,则大于0
的值可能会导致启动失败。 -
user_search.pool.health_check.enabled
- (静态)启用或禁用连接池中 LDAP 连接的运行状况检查。在后台以指定的时间间隔检查连接。默认为
true
。 -
user_search.pool.health_check.dn
- (静态) 在健康检查期间检索到的可分辨名称。如果存在,则默认为
bind_dn
的值;如果不存在,则回退到user_search.base_dn
。 -
user_search.pool.health_check.interval
- (静态) 执行池中连接的后台检查的间隔。默认为
60s
。 -
group_search.base_dn
- (静态) 搜索用户所属组的容器 DN。当此元素不存在时,Elasticsearch 会搜索用户设置的
user_group_attribute
属性以确定组成员资格。 -
group_search.scope
- (静态) 指定组搜索应该是
sub_tree
、one_level
还是base
。one_level
仅搜索直接包含在base_dn
中的对象。sub_tree
搜索base_dn
下包含的所有对象。base
指定base_dn
是一个组对象,并且它是唯一考虑的组。默认为sub_tree
。 -
group_search.filter
- (静态) 指定用于查找组的过滤器。当未设置时,领域会搜索具有属性
member
、memberOf
或memberUid
的group
、groupOfNames
、groupOfUniqueNames
或posixGroup
。过滤器中任何{0}
的实例都将替换为在group_search.user_attribute
中定义的用户属性。 -
group_search.user_attribute
- (静态) 指定要获取并作为参数提供给过滤器的用户属性。如果未设置,则用户 DN 将传递到过滤器。默认为空。
-
unmapped_groups_as_roles
- (静态) 如果设置为
true
,则任何未映射的 LDAP 组的名称都将用作角色名称并分配给用户。如果某个组未在 角色映射文件 中引用,则认为该组是未映射的。不会考虑基于 API 的角色映射。默认为false
。 -
files.role_mapping
- (静态) 位置 用于 YAML 角色映射配置文件。默认为
ES_PATH_CONF/role_mapping.yml
。 -
follow_referrals
- (静态) 指定 Elasticsearch 是否应遵循 LDAP 服务器返回的引用。引用是由服务器返回的 URL,用于继续 LDAP 操作(例如,搜索)。默认为
true
。 -
metadata
- (静态) 应从 LDAP 服务器加载并存储在已认证用户的元数据字段中的其他 LDAP 属性列表。
-
timeout.tcp_connect
- (静态) 建立 LDAP 连接的 TCP 连接超时时间。末尾的
s
表示秒,ms
表示毫秒。默认为5s
(5 秒)。 -
timeout.tcp_read
- (静态) [7.7] 已在 7.7 中弃用。 建立 LDAP 连接后的 TCP 读取超时时间。这等效于
timeout.response
,并且已弃用,不能同时使用。末尾的s
表示秒,ms
表示毫秒。 -
timeout.response
- (静态) 等待 LDAP 服务器响应的时间间隔。末尾的
s
表示秒,ms
表示毫秒。默认为timeout.ldap_search
的值。 -
timeout.ldap_search
- (静态) LDAP 搜索的超时时间。该值在请求中指定,并由接收 LDAP 服务器执行。末尾的
s
表示秒,ms
表示毫秒。默认为5s
(5 秒)。 -
ssl.key
-
(静态) 包含私钥的 PEM 编码文件的路径。
如果需要 HTTP 客户端身份验证,则使用此文件。您不能同时使用此设置和
ssl.keystore.path
。如果 LDAP 服务器需要客户端身份验证,则使用此文件。您不能同时使用此设置和
ssl.keystore.path
。 -
ssl.key_passphrase
-
(静态) 用于解密私钥的密码短语。由于密钥可能未加密,因此此值是可选的。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.secure_key_passphrase
。您不能同时使用此设置和
ssl.secure_key_passphrase
。 -
ssl.secure_key_passphrase
- (安全) 用于解密私钥的密码短语。由于密钥可能未加密,因此此值是可选的。
-
ssl.certificate
-
(静态) 指定与密钥关联的 PEM 编码证书(或证书链)的路径。
仅当设置了
ssl.key
时才能使用此设置。当客户端连接时,此证书将显示给客户端。
-
ssl.certificate_authorities
-
(静态) 应信任的 PEM 编码证书文件的路径列表。
此设置和
ssl.truststore.path
不能同时使用。您不能同时使用此设置和
ssl.truststore.path
。 -
ssl.keystore.path
-
(静态) 包含私钥和证书的密钥库文件的路径。
它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和
ssl.key
。您不能同时使用此设置和
ssl.key
。 -
ssl.keystore.type
- (静态) 密钥库文件的格式。它必须是
jks
或PKCS12
。如果密钥库路径以“.p12”、“.pfx”或“.pkcs12”结尾,则此设置默认为PKCS12
。否则,默认为jks
。 -
ssl.keystore.password
- (静态) 密钥库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.keystore.secure_password
。 -
ssl.keystore.secure_password
- (安全) 密钥库的密码。
-
ssl.keystore.key_password
-
(静态) 密钥库中密钥的密码。默认为密钥库密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.keystore.secure_key_password
。您不能同时使用此设置和
ssl.keystore.secure_password
。 -
ssl.keystore.secure_key_password
- (静态) 密钥库中密钥的密码。默认为密钥库密码。
-
ssl.truststore.path
-
(静态) 包含要信任的证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。
您不能同时使用此设置和
ssl.certificate_authorities
。您不能同时使用此设置和
ssl.certificate_authorities
。 -
ssl.truststore.password
-
(静态) 信任库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.truststore.secure_password
。您不能同时使用此设置和
ssl.truststore.secure_password
。 -
ssl.truststore.secure_password
- (安全) 信任库的密码。
-
ssl.truststore.type
- (静态) 信任库文件的格式。它必须是
jks
或PKCS12
。如果文件名以“.p12”、“.pfx”或“pkcs12”结尾,则默认为PKCS12
。否则,默认为jks
。 -
ssl.verification_mode
-
(静态) 使用
ldaps
防止中间人攻击和证书伪造时指示验证类型。有效值
-
full
- 验证提供的证书:其发行日期在
not_before
和not_after
日期范围内;链接到受信任的证书颁发机构 (CA);其hostname
或 IP 地址与证书中的名称匹配。 -
certificate
- 验证提供的证书并验证它是否由受信任的颁发机构 (CA) 签名,但不检查证书
hostname
。 -
none
-
不执行证书验证。
将证书验证设置为
none
会禁用 SSL/TLS 的许多安全优势,这非常危险。仅当 Elastic 支持人员指示您将其作为临时诊断机制用于解决 TLS 错误时,才设置此值。
默认为
full
。 -
-
ssl.supported_protocols
-
(静态) 支持的协议及其版本。有效协议:
SSLv2Hello
、SSLv3
、TLSv1
、TLSv1.1
、TLSv1.2
、TLSv1.3
。如果 JVM 的 SSL 提供程序支持 TLSv1.3,则默认为TLSv1.3,TLSv1.2,TLSv1.1
。否则,默认为TLSv1.2,TLSv1.1
。Elasticsearch 依赖于您的 JDK 的 SSL 和 TLS 实现。查看 JDK 版本支持的 SSL/TLS 版本 以获取更多信息。
如果
xpack.security.fips_mode.enabled
为true
,则无法使用SSLv2Hello
或SSLv3
。请参阅 FIPS 140-2。 -
ssl.cipher_suites
-
(静态)指定与 LDAP 服务器通信时应支持的密码套件。支持的密码套件因您使用的 Java 版本而异。例如,对于版本 12,默认值为
TLS_AES_256_GCM_SHA384
、TLS_AES_128_GCM_SHA256
、TLS_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
、TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
、TLS_RSA_WITH_AES_256_GCM_SHA384
、TLS_RSA_WITH_AES_128_GCM_SHA256
、TLS_RSA_WITH_AES_256_CBC_SHA256
、TLS_RSA_WITH_AES_128_CBC_SHA256
、TLS_RSA_WITH_AES_256_CBC_SHA
、TLS_RSA_WITH_AES_128_CBC_SHA
。有关更多信息,请参阅 Oracle 的 Java 密码体系结构文档。
-
cache.ttl
- (静态)指定缓存的用户条目生存时间。用户及其凭据的哈希值将在此时间段内缓存。使用标准 Elasticsearch 时间单位。默认为
20m
。 -
cache.max_users
- (静态)指定缓存可以包含的最大用户条目数。默认为
100000
。 -
cache.hash_algo
- (静态,专家)指定用于内存中缓存的用户凭据的哈希算法。请参阅 表 1,“缓存哈希算法”。默认为
ssha256
。 -
authentication.enabled
- (静态)如果设置为
false
,则禁用此 Realm 中的身份验证支持,以便它仅支持用户查找。(请参阅 以其他用户身份提交请求和 授权 Realm功能)。默认为true
。
Active Directory 领域设置
编辑除了 对所有 Realm 有效的设置之外,您还可以指定以下设置
-
url
-
(静态)一个或多个
ldap[s]://<server>:<port>
格式的 LDAP URL。默认为ldap://<domain_name>:389
。使用 SSL/TLS 连接或使用自定义端口时,此设置是必需的。要提供多个 URL,请使用 YAML 数组 (
["ldap://server1:636", "ldap://server2:636"]
) 或逗号分隔的字符串 ("ldap://server1:636, ldap://server2:636"
)。虽然两者都受支持,但您不能混合使用
ldap
和ldaps
协议。如果未提供 URL,Elasticsearch 将使用
ldap://<domain_name>:389
的默认值。此默认值使用domain_name
设置值,并假定与端口 389 的未加密连接。 -
load_balance.type
- (静态)定义多个 LDAP URL 时要使用的行为。有关支持的值,请参阅 负载平衡和故障转移类型。默认为
failover
。 -
load_balance.cache_ttl
- (静态)当使用
dns_failover
或dns_round_robin
作为负载平衡类型时,此设置控制缓存 DNS 查找的时间量。默认为1h
。 -
domain_name
- (静态)Active Directory 的域名。如果未指定
url
和user_search.base_dn
设置,则集群可以从此设置派生这些值。必需。 -
bind_dn
- (静态)用于绑定到 Active Directory 并执行搜索的用户 DN。默认为空。由于其潜在的安全影响,
bind_dn
不会通过 节点信息 API 公开。 -
bind_password
- (静态) [6.3] 已在 6.3 中弃用。 使用
secure_bind_password
代替。用于绑定到 Active Directory 的用户的密码。默认为空。由于其潜在的安全影响,bind_password
不会通过 节点信息 API 公开。 -
secure_bind_password
- (安全,可重新加载)用于绑定到 Active Directory 的用户的密码。默认为空。
-
unmapped_groups_as_roles
- (静态)如果设置为
true
,则任何未映射的 Active Directory 组的名称将用作角色名称并分配给用户。当组在任何角色映射文件中均未引用时,则认为该组为未映射。不会考虑基于 API 的角色映射。默认为false
。 -
files.role_mapping
- (静态)YAML 角色映射配置文件的位置。默认为
ES_PATH_CONF/role_mapping.yml
。 -
user_search.base_dn
- (静态)搜索用户的上下文。默认为 Active Directory 域的根目录。
-
user_search.scope
- (静态)指定用户搜索应为
sub_tree
、one_level
还是base
。one_level
仅搜索base_dn
中直接包含的用户。sub_tree
搜索base_dn
下包含的所有对象。base
指定base_dn
是一个用户对象,并且它是唯一考虑的用户。默认为sub_tree
。 -
user_search.filter
- (静态)指定一个过滤器,用于根据用户名查找用户。默认过滤器查找具有
sAMAccountName
或userPrincipalName
的user
对象。如果指定,则必须是有效的 LDAP 用户搜索过滤器。例如(&(objectClass=user)(sAMAccountName={0}))
。有关更多信息,请参阅 搜索过滤器语法。 -
user_search.upn_filter
- (静态)指定一个过滤器,用于根据用户主体名称查找用户。默认过滤器查找具有匹配
userPrincipalName
的user
对象。如果指定,则必须是有效的 LDAP 用户搜索过滤器。例如,(&(objectClass=user)(userPrincipalName={1}))
。{1}
是用户提供的完整用户主体名称。有关更多信息,请参阅 搜索过滤器语法。 -
user_search.down_level_filter
- (静态)指定一个过滤器,用于根据低级别登录名 (DOMAIN\user) 查找用户。默认过滤器在提供的域中查找具有匹配
sAMAccountName
的user
对象。如果指定,则必须是有效的 LDAP 用户搜索过滤器。例如,(&(objectClass=user)(sAMAccountName={0}))
。有关更多信息,请参阅 搜索过滤器语法。 -
user_search.pool.enabled
- (静态)启用或禁用用户搜索的连接池。禁用后,将为每次搜索创建一个新的连接。当提供
bind_dn
时,默认为true
。 -
user_search.pool.size
- (静态)连接池中允许连接到 Active Directory 服务器的最大连接数。默认为
20
。 -
user_search.pool.initial_size
- (静态)启动时创建的连接到 Active Directory 服务器的初始连接数。默认为
0
。如果 LDAP 服务器已关闭,则大于 0 的值可能会导致启动失败。 -
user_search.pool.health_check.enabled
- (静态)启用或禁用对连接池中 Active Directory 连接的运行状况检查。连接将在后台以指定的间隔进行检查。默认为
true
。 -
user_search.pool.health_check.dn
- (静态)作为运行状况检查一部分要检索的区分名称。如果存在该设置,则默认为
bind_dn
的值。否则,默认为user_search.base_dn
设置的值。 -
user_search.pool.health_check.interval
- (静态) 执行池中连接的后台检查的间隔。默认为
60s
。 -
group_search.base_dn
- (静态)搜索用户所属组的上下文。默认为 Active Directory 域的根目录。
-
group_search.scope
- (静态)指定组搜索应为
sub_tree
、one_level
还是base
。one_level
搜索base_dn
中直接包含的组。sub_tree
搜索base_dn
下包含的所有对象。base
指定base_dn
是一个组对象,并且它是唯一考虑的组。默认为sub_tree
。 -
metadata
- (静态) 应从 LDAP 服务器加载并存储在已认证用户的元数据字段中的其他 LDAP 属性列表。
-
timeout.tcp_connect
- (静态) 建立 LDAP 连接的 TCP 连接超时时间。末尾的
s
表示秒,ms
表示毫秒。默认为5s
(5 秒)。 -
timeout.tcp_read
- (静态) [7.7] 已在 7.7 中弃用。 建立 LDAP 连接后的 TCP 读取超时时间段。这等效于并已弃用,取而代之的是
timeout.response
,并且它们不能同时使用。末尾的s
表示秒,或ms
表示毫秒。默认为timeout.ldap_search
的值。 -
timeout.response
- (静态)等待来自 AD 服务器的响应的时间间隔。末尾的
s
表示秒,或ms
表示毫秒。默认为timeout.ldap_search
的值。 -
timeout.ldap_search
- (静态) LDAP 搜索的超时时间。该值在请求中指定,并由接收 LDAP 服务器执行。末尾的
s
表示秒,ms
表示毫秒。默认为5s
(5 秒)。 -
ssl.certificate
-
(静态) 指定与密钥关联的 PEM 编码证书(或证书链)的路径。
仅当设置了
ssl.key
时才能使用此设置。当客户端连接时,此证书将显示给客户端。
-
ssl.certificate_authorities
-
(静态) 应信任的 PEM 编码证书文件的路径列表。
此设置和
ssl.truststore.path
不能同时使用。您不能同时使用此设置和
ssl.truststore.path
。 -
ssl.key
-
(静态) 包含私钥的 PEM 编码文件的路径。
如果需要 HTTP 客户端身份验证,则使用此文件。您不能同时使用此设置和
ssl.keystore.path
。如果 Active Directory 服务器需要客户端身份验证,则使用此文件。您不能同时使用此设置和
ssl.keystore.path
。 -
ssl.key_passphrase
-
(静态) 用于解密私钥的密码短语。由于密钥可能未加密,因此此值是可选的。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.secure_key_passphrase
。您不能同时使用此设置和
ssl.secure_key_passphrase
。 -
ssl.secure_key_passphrase
- (安全) 用于解密私钥的密码短语。由于密钥可能未加密,因此此值是可选的。
-
ssl.keystore.key_password
-
(静态) 密钥库中密钥的密码。默认为密钥库密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.keystore.secure_key_password
。您不能同时使用此设置和
ssl.keystore.secure_password
。 -
ssl.keystore.secure_key_password
- (安全)密钥库中密钥的密码。默认为密钥库密码。
-
ssl.keystore.password
- (静态) 密钥库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.keystore.secure_password
。 -
ssl.secure_keystore.password
- (安全) 密钥库的密码。
-
ssl.keystore.path
-
(静态) 包含私钥和证书的密钥库文件的路径。
它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和
ssl.key
。您不能同时使用此设置和
ssl.key
。 -
ssl.keystore.type
- (静态) 密钥库文件的格式。它必须是
jks
或PKCS12
。如果密钥库路径以“.p12”、“.pfx”或“.pkcs12”结尾,则此设置默认为PKCS12
。否则,默认为jks
。 -
ssl.truststore.password
-
(静态) 信任库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.truststore.secure_password
。您不能同时使用此设置和
ssl.truststore.secure_password
。 -
ssl.truststore.secure_password
- (安全) 信任库的密码。
-
ssl.truststore.path
-
(静态) 包含要信任的证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。
您不能同时使用此设置和
ssl.certificate_authorities
。您不能同时使用此设置和
ssl.certificate_authorities
。 -
ssl.truststore.type
- (静态) 信任库文件的格式。它必须是
jks
或PKCS12
。如果文件名以“.p12”、“.pfx”或“pkcs12”结尾,则默认为PKCS12
。否则,默认为jks
。 -
ssl.verification_mode
-
(静态) 使用
ldaps
防止中间人攻击和证书伪造时指示验证类型。有效值
-
full
- 验证提供的证书:其发行日期在
not_before
和not_after
日期范围内;链接到受信任的证书颁发机构 (CA);其hostname
或 IP 地址与证书中的名称匹配。 -
certificate
- 验证提供的证书并验证它是否由受信任的颁发机构 (CA) 签名,但不检查证书
hostname
。 -
none
-
不执行证书验证。
将证书验证设置为
none
会禁用 SSL/TLS 的许多安全优势,这非常危险。仅当 Elastic 支持人员指示您将其作为临时诊断机制用于解决 TLS 错误时,才设置此值。
默认为
full
。 -
-
ssl.supported_protocols
-
(静态) 支持的协议及其版本。有效协议:
SSLv2Hello
、SSLv3
、TLSv1
、TLSv1.1
、TLSv1.2
、TLSv1.3
。如果 JVM 的 SSL 提供程序支持 TLSv1.3,则默认为TLSv1.3,TLSv1.2,TLSv1.1
。否则,默认为TLSv1.2,TLSv1.1
。Elasticsearch 依赖于您的 JDK 的 SSL 和 TLS 实现。查看 JDK 版本支持的 SSL/TLS 版本 以获取更多信息。
如果
xpack.security.fips_mode.enabled
为true
,则无法使用SSLv2Hello
或SSLv3
。请参阅 FIPS 140-2。 -
ssl.cipher_suites
-
(静态)指定与 Active Directory 服务器通信时应支持的密码套件。支持的密码套件因您使用的 Java 版本而异。例如,对于版本 12,默认值为
TLS_AES_256_GCM_SHA384
、TLS_AES_128_GCM_SHA256
、TLS_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
、TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
、TLS_RSA_WITH_AES_256_GCM_SHA384
、TLS_RSA_WITH_AES_128_GCM_SHA256
、TLS_RSA_WITH_AES_256_CBC_SHA256
、TLS_RSA_WITH_AES_128_CBC_SHA256
、TLS_RSA_WITH_AES_256_CBC_SHA
、TLS_RSA_WITH_AES_128_CBC_SHA
。有关更多信息,请参阅 Oracle 的 Java 密码体系结构文档。
-
cache.ttl
- (静态) 指定缓存的用户条目生存时间。用户及其凭据的哈希值将缓存在此配置的时间段内。使用标准的 Elasticsearch 时间单位)。默认为
20m
。 -
cache.max_users
- (静态)指定缓存可以包含的最大用户条目数。默认为
100000
。 -
cache.hash_algo
- (静态,专家)指定用于内存中缓存的用户凭据的哈希算法。请参阅 表 1,“缓存哈希算法”。默认为
ssha256
。 -
authentication.enabled
- (静态)如果设置为
false
,则禁用此 Realm 中的身份验证支持,以便它仅支持用户查找。(请参阅 以其他用户身份提交请求和 授权 Realm功能)。默认为true
。 -
follow_referrals
- (静态) 如果设置为
true
,Elasticsearch 将遵循 LDAP 服务器返回的引用。引用是服务器返回的 URL,用于继续 LDAP 操作(例如search
)。默认为true
。
PKI 领域设置
编辑除了 对所有 Realm 有效的设置之外,您还可以指定以下设置
-
username_pattern
- (静态) 用于从证书 DN 中提取用户名正则表达式模式。用户名用于审计和日志记录。用户名还可以与 角色映射 API 和 授权委托 一起使用。第一个匹配组用作用户名。默认为
CN=(.*?)(?:,|$)
。 -
certificate_authorities
- (静态) 要用于将用户的证书认证为受信任的 PEM 证书文件的路径列表。默认为为 SSL 配置的受信任证书。此设置不能与
truststore.path
一起使用。 -
truststore.algorithm
- (静态) 密钥库的算法。默认为
SunX509
。 -
truststore.password
-
(静态) 信任库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.truststore.secure_password
。您不能同时使用此设置和
ssl.truststore.secure_password
。
如果设置了 truststore.path
,则需要此设置。
-
truststore.secure_password
- (安全) 信任库的密码。
-
truststore.path
- (静态) 要使用的密钥库的路径。默认为为 SSL 配置的受信任证书。此设置不能与
certificate_authorities
一起使用。 -
files.role_mapping
- (静态) 指定 位置 的 YAML 角色映射配置文件。默认为
ES_PATH_CONF/role_mapping.yml
。 -
authorization_realms
- (静态) 应查询以进行委托授权的领域的名称。如果使用此设置,则 PKI 领域不执行角色映射,而是从列出的领域加载用户。请参阅 将授权委托给另一个领域。
-
cache.ttl
- (静态) 指定缓存的用户条目生存时间。用户及其凭据的哈希值将缓存在此时间段内。使用标准的 Elasticsearch 时间单位)。默认为
20m
。 -
cache.max_users
- (静态)指定缓存可以包含的最大用户条目数。默认为
100000
。 -
delegation.enabled
- (静态) 通常,为了让客户端通过 PKI 领域进行身份验证,它们必须直接连接到 Elasticsearch。也就是说,它们不得通过终止 TLS 连接的代理。为了允许一个 受信任的 和 智能的 代理(如 Kibana)位于 Elasticsearch 之前并终止 TLS 连接,但仍然允许客户端通过此领域在 Elasticsearch 上进行身份验证,您需要将其切换为
true
。默认为false
。如果启用了委托,则必须定义truststore.path
或certificate_authorities
设置。有关更多详细信息,请参阅 为 PKI 领域配置授权委托。
SAML 领域设置
编辑除了 对所有领域有效的设置 之外,您还可以指定以下设置。
-
idp.entity_id
- (静态) SAML 身份提供者的实体 ID。实体 ID 是一个 URI,最大长度为 1024 个字符。它可以是 URL (https://idp.example.com/) 或 URN (
urn:example.com:idp
),并且可以在身份提供者的配置或 SAML 元数据中找到。
-
idp.metadata.path
-
(静态) 描述身份提供者功能和配置的 SAML 2.0 元数据文件的路径(推荐)或 URL。如果提供了路径,则相对于 Elasticsearch 配置目录解析该路径。如果提供了 URL,则它必须是
file
URL 或https
URL。Elasticsearch 会自动轮询此元数据资源,并在检测到更改时重新加载 IdP 配置。基于文件的资源的轮询频率由全局 Elasticsearch
resource.reload.interval.high
设置确定,默认为 5 秒。HTTPS 资源的轮询频率由领域的idp.metadata.http.refresh
和idp.metadata.http.minimum_refresh
设置确定。如果从文件加载元数据资源,则该文件必须在节点启动时存在,如果不存在,则节点将无法启动。如果通过 HTTPS 加载资源,则(默认情况下)节点将容忍加载资源失败 - 节点将启动并将继续轮询 URL 以获取更新。受影响的 SAML 领域将无法对用户进行身份验证,直到问题得到解决。要强制节点在元数据不可用时失败,请将
idp.metadata.http.fail_on_error
设置为true
。
-
idp.metadata.http.fail_on_error
- (静态) 如果设置为
true
,如果领域尝试通过 HTTPS 加载元数据并且该元数据不可用,则领域将在启动时失败(并阻止节点启动)。如果设置为false
(默认值),则节点将启动,但受影响的 SAML 领域将不支持用户身份验证,直到元数据能够成功加载。如果从文件加载元数据,则忽略此设置。
-
idp.metadata.http.refresh
-
(静态) 控制检查
https
元数据是否有更改的频率。默认为1h
(1 小时)。在某些情况下,Elasticsearch 可能会确定需要更频繁地检查元数据。如果先前尝试加载元数据遇到错误,或者元数据指示它将在配置的刷新间隔内过期,则可能会发生这种情况。在这些情况下,Elasticsearch 将更频繁地轮询,但绝不会超过
idp.metadata.http.minimum_refresh
。如果尝试对尚未成功加载元数据的领域进行身份验证,则该领域可能会尝试在配置的轮询频率之外加载元数据。
-
idp.metadata.http.minimum_refresh
- (静态) 控制检查
https
元数据是否有更改的最小频率。在正常操作中,Elasticsearch 将使用idp.metadata.http.refresh
的值作为轮询间隔。但是,在某些情况下,Elasticsearch 可能会确定需要更频繁地轮询。在这些情况下,minimum_refresh
将设置检查元数据的最低频率。默认为5m
(5 分钟),并且不得设置为大于idp.metadata.http.refresh
的值。
-
idp.use_single_logout
- (静态) 指示是否利用身份提供者的单点注销服务(如果 IdP 元数据文件中存在该服务)。默认为
true
。
-
sp.entity_id
- (静态) 要为此 SAML 服务提供商使用的实体 ID。应将其输入为 URI。我们建议您使用 Kibana 实例的基本 URL。例如,
https://kibana.example.com/
。
-
sp.acs
- (静态) Kibana 中断言使用者服务的 URL。通常,这是 Kibana 服务器的“api/security/saml/callback”端点。例如,
https://kibana.example.com/api/security/saml/callback
。
-
sp.logout
- (静态) Kibana 中单点注销服务的 URL。通常,这是 Kibana 服务器的“logout”端点。例如,
https://kibana.example.com/logout
。
-
attributes.principal
- (静态) 包含用户主体(用户名)的 SAML 属性的名称。
-
attributes.groups
- (静态) 包含用户组的 SAML 属性的名称。
-
attributes.name
- (静态) 包含用户全名的 SAML 属性的名称。
-
attributes.mail
- (静态) 包含用户电子邮件地址的 SAML 属性的名称。
-
attributes.dn
- (静态) 包含用户 X.509 区别名称 的 SAML 属性的名称。
-
attribute_patterns.principal
- (静态) 与由
attributes.principal
指定的 SAML 属性匹配的 Java 正则表达式,在将其应用于用户的 principal 属性之前。属性值必须与模式匹配,并且第一个捕获组的值用作 principal。例如,^([^@]+)@example\\.com$
匹配来自“example.com”域的电子邮件地址,并使用本地部分作为 principal。
-
attribute_patterns.groups
- (静态) 与
attribute_patterns.principal
相同,但用于 group 属性。
-
attribute_patterns.name
- (静态) 与
attribute_patterns.principal
相同,但用于 name 属性。
-
attribute_patterns.mail
- (静态) 与
attribute_patterns.principal
相同,但用于 mail 属性。
-
attribute_patterns.dn
- (静态) 与
attribute_patterns.principal
相同,但用于 dn 属性。
-
attribute_delimiters.groups
- (静态) 用作分隔符的普通字符串,用于在将由
attributes.groups
指定的单值 SAML 属性应用于用户的 groups 属性之前对其进行拆分。例如,在分隔符值为,
的情况下拆分 SAML 属性值engineering,elasticsearch-admins,employees
将导致engineering
、elasticsearch-admins
和employees
作为用户的组列表。无论输入字符串中是否存在转义,都将始终在此处进行拆分。此设置不支持多值 SAML 属性。它不能与attribute_patterns
设置一起使用。您只能为此设置配置 groups 属性。
-
nameid_format
- (静态) 请求 IdP 认证当前用户时应请求的 NameID 格式。默认情况下不包含
nameid_format
属性。
-
nameid.allow_create
- (静态) 身份验证请求中
NameIdPolicy
元素的AllowCreate
属性的值。默认值为 false。
-
nameid.sp_qualifier
- (静态) 身份验证请求中
NameIdPolicy
元素的SPNameQualifier
属性的值。默认情况下不包含SPNameQualifier
属性。
-
force_authn
- (静态) 指定在请求 IdP 认证当前用户时是否设置
ForceAuthn
属性。如果设置为true
,则 IdP 必须验证用户的身份,而不管他们可能具有的任何现有会话。默认为false
。
-
populate_user_metadata
- (静态) 指定是否使用 SAML 属性提供的值填充 Elasticsearch 用户的元数据。默认为
true
。 -
authorization_realms
- (静态) 应查询以进行委托授权的领域的名称。如果使用此设置,则 SAML 领域不执行角色映射,而是从列出的领域加载用户。请参阅 将授权委托给另一个领域。
-
allowed_clock_skew
- (静态) IdP 的时钟和 Elasticsearch 节点的时钟之间可以容忍的最大偏差量。默认为
3m
(3 分钟)。
-
req_authn_context_class_ref
-
(静态) 请求 IdP 认证当前用户时,要在请求的身份验证上下文中包含的身份验证上下文类引用值的逗号分隔列表。相应身份验证响应的身份验证上下文应包含至少一个请求值。
有关更多信息,请参阅 请求特定身份验证方法。
SAML 领域签名设置
编辑如果配置了签名密钥(即,设置了 signing.key
或 signing.keystore.path
),则 Elasticsearch 将对传出的 SAML 消息进行签名。可以使用以下设置配置签名
-
signing.saml_messages
- (静态) 应签名的 SAML 消息类型的列表或
*
以签名所有消息。列表中的每个元素都应是 SAML XML 元素的本地名称。支持的元素类型为AuthnRequest
、LogoutRequest
和LogoutResponse
。仅当还指定了signing.key
或signing.keystore.path
时才有效。默认为*
。
-
signing.certificate
- (静态) 指定与
signing.key
对应的 PEM 编码证书(或证书链)的路径。此证书还必须包含在服务提供商元数据中或在 IdP 中手动配置,以允许进行签名验证。仅当设置了signing.key
时才能使用此设置。
-
signing.keystore.path
- (静态) 包含私钥和证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和
signing.key
。
-
signing.keystore.type
- (静态)
signing.keystore.path
中密钥库的类型。必须为jks
或PKCS12
。如果密钥库路径以“.p12”、“.pfx”或“pkcs12”结尾,则此设置默认为PKCS12
。否则,默认为jks
。
SAML 领域加密设置
编辑如果配置了加密密钥(即,设置了 encryption.key
或 encryption.keystore.path
),则 Elasticsearch 在生成元数据时会发布加密证书,并尝试解密传入的 SAML 内容。可以使用以下设置配置加密
-
encryption.certificate
- (静态) 指定与
encryption.key
关联的 PEM 编码证书(或证书链)的路径。此证书还必须包含在服务提供商元数据中,或在 IdP 中手动配置以启用消息加密。仅当设置了encryption.key
时才能使用此设置。
-
encryption.keystore.path
- (静态) 包含私钥和证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和
encryption.key
。
-
encryption.keystore.type
- (静态) 密钥库 (
encryption.keystore.path
) 的类型。必须为jks
或PKCS12
。如果密钥库路径以“.p12”、“.pfx”或“pkcs12”结尾,则此设置默认为PKCS12
。否则,默认为jks
。
-
encryption.keystore.alias
- (静态) 指定密钥库 (
encryption.keystore.path
) 中用于 SAML 消息解密的密钥的别名。如果未指定,则密钥库中的所有兼容密钥对都将被视为解密候选密钥。 -
encryption.keystore.secure_password
- (安全) 密钥库 (
encryption.keystore.path
) 的密码。 -
encryption.keystore.secure_key_password
- (安全) 密钥库 (
encryption.keystore.path
) 中密钥的密码。仅支持单个密码。如果您使用多个解密密钥,则它们不能具有单独的密码。
SAML 领域 SSL 设置
编辑如果您通过 SSL/TLS 加载 IdP 元数据(即,idp.metadata.path
是使用 https
协议的 URL),则可以使用以下设置配置 SSL。
这些设置仅用于通过 https 加载元数据,不应用于其他任何目的。
-
ssl.key
-
(静态) 包含私钥的 PEM 编码文件的路径。
如果需要 HTTP 客户端身份验证,则使用此文件。您不能同时使用此设置和
ssl.keystore.path
。
-
ssl.key_passphrase
-
(静态) 用于解密私钥的密码短语。由于密钥可能未加密,因此此值是可选的。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.secure_key_passphrase
。您不能同时使用此设置和
ssl.secure_key_passphrase
。
-
ssl.secure_key_passphrase
-
(安全) 用于解密私钥的密码短语。由于密钥可能未加密,因此此值是可选的。
您不能同时使用此设置和
ssl.key_passphrase
。
-
ssl.certificate
-
(静态) 指定与密钥关联的 PEM 编码证书(或证书链)的路径。
仅当设置了
ssl.key
时才能使用此设置。
-
ssl.certificate_authorities
-
(静态) 应信任的 PEM 编码证书文件的路径列表。
此设置和
ssl.truststore.path
不能同时使用。
-
ssl.keystore.path
-
(静态) 包含私钥和证书的密钥库文件的路径。
它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和
ssl.key
。
-
ssl.keystore.type
- (静态) 密钥库文件的格式。它必须是
jks
或PKCS12
。如果密钥库路径以“.p12”、“.pfx”或“.pkcs12”结尾,则此设置默认为PKCS12
。否则,默认为jks
。
-
ssl.keystore.password
- (静态) 密钥库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.keystore.secure_password
。
-
ssl.keystore.secure_password
-
(安全) 密钥库的密码。
您不能同时使用此设置和
ssl.keystore.password
。 -
ssl.keystore.key_password
-
(静态) 密钥库中密钥的密码。默认为密钥库密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.keystore.secure_key_password
。您不能同时使用此设置和
ssl.keystore.secure_password
。您不能同时使用此设置和
ssl.keystore.secure_key_password
。 -
ssl.keystore.secure_key_password
- (安全)密钥库中密钥的密码。默认为密钥库密码。
您不能同时使用此设置和 ssl.keystore.key_password
。
-
ssl.truststore.path
-
(静态) 包含要信任的证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。
您不能同时使用此设置和
ssl.certificate_authorities
。
-
ssl.truststore.type
- (静态) 信任库文件的格式。它必须是
jks
或PKCS12
。如果文件名以“.p12”、“.pfx”或“pkcs12”结尾,则默认为PKCS12
。否则,默认为jks
。
-
ssl.truststore.password
-
(静态) 信任库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.truststore.secure_password
。您不能同时使用此设置和
ssl.truststore.secure_password
。
-
ssl.truststore.secure_password
-
(安全) 信任库的密码。
此设置不能与
ssl.truststore.password
一起使用。
-
ssl.verification_mode
-
(静态) 控制证书的验证。
有效值
-
full
- 验证提供的证书:其发行日期在
not_before
和not_after
日期范围内;链接到受信任的证书颁发机构 (CA);其hostname
或 IP 地址与证书中的名称匹配。 -
certificate
- 验证提供的证书并验证它是否由受信任的颁发机构 (CA) 签名,但不检查证书
hostname
。 -
none
-
不执行证书验证。
将证书验证设置为
none
会禁用 SSL/TLS 的许多安全优势,这非常危险。仅当 Elastic 支持人员指示您将其作为临时诊断机制用于解决 TLS 错误时,才设置此值。
默认为
full
。 -
-
ssl.supported_protocols
-
(静态) 支持的协议及其版本。有效协议:
SSLv2Hello
、SSLv3
、TLSv1
、TLSv1.1
、TLSv1.2
、TLSv1.3
。如果 JVM 的 SSL 提供程序支持 TLSv1.3,则默认为TLSv1.3,TLSv1.2,TLSv1.1
。否则,默认为TLSv1.2,TLSv1.1
。Elasticsearch 依赖于您的 JDK 的 SSL 和 TLS 实现。查看 JDK 版本支持的 SSL/TLS 版本 以获取更多信息。
如果
xpack.security.fips_mode.enabled
为true
,则无法使用SSLv2Hello
或SSLv3
。请参阅 FIPS 140-2。
-
ssl.cipher_suites
-
(静态) 支持的密码套件因您使用的 Java 版本而异。例如,对于版本 12,默认值为
TLS_AES_256_GCM_SHA384
、TLS_AES_128_GCM_SHA256
、TLS_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
、TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
、TLS_RSA_WITH_AES_256_GCM_SHA384
、TLS_RSA_WITH_AES_128_GCM_SHA256
、TLS_RSA_WITH_AES_256_CBC_SHA256
、TLS_RSA_WITH_AES_128_CBC_SHA256
、TLS_RSA_WITH_AES_256_CBC_SHA
、TLS_RSA_WITH_AES_128_CBC_SHA
。有关更多信息,请参阅 Oracle 的 Java 密码体系结构文档。
Kerberos 领域设置
编辑除了 对所有 Realm 有效的设置之外,您还可以指定以下设置
-
keytab.path
- (静态) 指定包含此 Elasticsearch 节点使用的服务主体 的 Kerberos 密钥表文件的路径。这必须是 Elasticsearch 配置目录中的某个位置,并且该文件必须具有读取权限。必需。
-
cache.max_users
- (静态)在任何给定时间,缓存中可以容纳的最大用户条目数。默认为 100,000。
-
authorization_realms
- (静态) 应查询以进行委托授权的领域的名称。如果使用此设置,则 Kerberos 领域不执行角色映射,而是从列出的领域加载用户。请参阅 将授权委托给另一个领域。
OpenID Connect 领域设置
编辑除了 对所有领域有效的设置 之外,您还可以指定以下设置。
-
op.issuer
- (静态) 可验证的 OpenID Connect 提供程序标识符。颁发者标识符通常是一个区分大小写的 URL,使用 https 方案,其中包含方案、主机,以及可选的端口号和路径组件,但不包含查询或片段组件。此设置的值应由您的 OpenID Connect 提供程序提供。
-
op.authorization_endpoint
- (静态) OpenID Connect 提供程序中授权端点的 URL。此设置的值应由您的 OpenID Connect 提供程序提供。
-
op.token_endpoint
- (静态) OpenID Connect 提供程序中令牌端点的 URL。此设置的值应由您的 OpenID Connect 提供程序提供。
-
op.userinfo_endpoint
- (静态) OpenID Connect 提供程序中用户信息端点的 URL。此设置的值应由您的 OpenID Connect 提供程序提供。
-
op.endsession_endpoint
- (静态) OpenID Connect 提供程序中结束会话端点的 URL。此设置的值应由您的 OpenID Connect 提供程序提供。
-
op.jwkset_path
- (静态)
包含用于验证由 OpenID Connect 提供程序签名的令牌和声明响应的公钥材料的 JSON Web 密钥集 (JWKS) 的文件名或 URL。如果值不以 https
或 http
开头,则被视为文件名。文件名相对于 Elasticsearch 配置目录解析。对文件的更改会根据全局 Elasticsearch resource.reload.interval.high
设置确定的频率轮询,默认为 5 秒。
+ 如果提供了 URL,则它必须以 https://
或 http://
开头。Elasticsearch 会自动缓存检索到的 JWK,并在签名验证失败时尝试刷新 JWK,因为这可能表示 OpenID Connect 提供程序已轮换签名密钥。
-
authorization_realms
- (静态) 应查询以进行委托授权的领域的名称。如果使用此设置,则 OpenID Connect 领域不执行角色映射,而是从列出的领域加载用户。请参阅 将授权委托给另一个领域。
-
rp.client_auth_method
- (静态) Elasticsearch 用于向 OpenID Connect 提供程序进行身份验证的客户端身份验证方法。可以是
client_secret_basic
、client_secret_post
或client_secret_jwt
。默认为client_secret_basic
。
-
rp.client_auth_jwt_signature_algorithm
- (静态) Elasticsearch 用于签署 JWT 的签名算法,当为
rp.client_auth_method
选择client_secret_jwt
时,它将作为客户端向 OpenID Connect 提供程序进行身份验证。可以是HS256
、HS384
或HS512
。默认为HS384
。
-
rp.redirect_uri
- (静态) Kibana 中的重定向 URI。如果要使用授权代码流,则为 Kibana 服务器的
api/security/oidc/callback
端点。如果要使用隐式流,则为api/security/oidc/implicit
端点。例如,https://kibana.example.com/api/security/oidc/callback
。
-
rp.response_type
- (静态) OAuth 2.0 响应类型值,用于确定要使用的授权处理流程。可以是
code
用于授权代码授予流,或id_token
、id_token token
用于隐式流。
-
rp.signature_algorithm
- (静态) Elasticsearch 将用于验证从 OpenID Connect 提供程序接收到的 id 令牌签名的签名算法。允许的值为
HS256
、HS384
、HS512
、ES256
、ES384
、ES512
、RS256
、RS384
、RS512
、PS256
、PS384
、PS512
。默认为RS256
。
-
rp.requested_scopes
- (静态) 将由 OpenID Connect 提供程序作为身份验证请求的一部分请求的范围值。可选,默认为
openid
-
rp.post_logout_redirect_uri
- (静态) 成功单点注销后,OpenID Connect 提供程序应将浏览器重定向到的重定向 URI(通常在 Kibana 中)。
-
claims.principal
- (静态) 包含用户主体(用户名)的 OpenID Connect 声明的名称。
-
claims.groups
- (静态) 包含用户组的 OpenID Connect 声明的名称。
-
claims.name
- (静态) 包含用户全名的 OpenID Connect 声明的名称。
-
claims.mail
- (静态) 包含用户电子邮件地址的 OpenID Connect 声明的名称。
-
claims.dn
- (静态) 包含用户 X.509 区分名称 的 OpenID Connect 声明的名称。
-
claim_patterns.principal
- (静态) 与由
claims.principal
指定的 OpenID Connect 声明匹配的 Java 正则表达式,在将其应用于用户的 principal 属性之前。属性值必须与模式匹配,并且第一个 捕获组 的值用作主体。例如,^([^@]+)@example\\.com$
与来自“example.com”域的电子邮件地址匹配,并使用本地部分作为主体。
-
claim_patterns.groups
- (静态) 与
claim_patterns.principal
相同,但适用于 group 属性。
-
claim_patterns.name
- (静态) 与
claim_patterns.principal
相同,但用于 name 属性。
-
claim_patterns.mail
- (静态) 与
claim_patterns.principal
相同,但用于 mail 属性。
-
claim_patterns.dn
- (静态) 与
claim_patterns.principal
相同,但用于 dn 属性。
-
allowed_clock_skew
- (静态) 验证 id 令牌时,在考虑其创建时间和过期时间时,允许的最大时钟偏差。默认为
60s
。
-
populate_user_metadata
- (静态) 指定是否使用 OpenID Connect 声明提供的值填充 Elasticsearch 用户的元数据。默认为
true
。 -
http.proxy.host
- (静态) 指定内部 http 客户端将用于所有与 OpenID Connect 提供程序端点进行后端通信的代理服务器的地址。这包括对令牌端点、用户信息端点的请求,以及如果
op.jwkset_path
设置为 URL,则请求从 OP 获取 JSON Web 密钥集。 -
http.proxy.scheme
- (静态) 指定用于连接到 http 客户端将用于所有与 OpenID Connect 提供程序端点进行后端通信的代理服务器的协议。默认为
http
。允许的值为http
或https
。 -
http.proxy.port
- (静态) 指定 http 客户端将用于所有与 OpenID Connect 提供程序端点进行后端通信的代理服务器的端口。默认为
80
。
-
http.connect_timeout
- (静态) 控制用于与 OpenID Connect 提供程序端点进行后端通信的 http 客户端的行为。指定建立连接之前的超时时间。值为零表示不使用超时。默认为
5s
。
-
http.connection_read_timeout
- (静态) 控制用于与 OpenID Connect 提供程序端点进行后端通信的 http 客户端的行为。指定从连接管理器请求连接时使用的超时时间。默认为
5s
-
http.socket_timeout
- (静态) 控制用于与 OpenID Connect 提供程序端点进行后端通信的 http 客户端的行为。指定套接字超时时间 (SO_TIMEOUT)(以毫秒为单位),即等待数据或换句话说,两个连续数据包之间最大空闲时间。默认为
5s
。
-
http.max_connections
- (静态) 控制用于与 OpenID Connect 提供程序端点进行后端通信的 http 客户端的行为。指定所有端点允许的最大连接数。默认为
200
。
-
http.max_endpoint_connections
- (静态) 控制用于与 OpenID Connect 提供程序端点进行后端通信的 http 客户端的行为。指定每个端点允许的最大连接数。默认为
200
。
-
http.tcp.keep_alive
- (静态) 是否在用于与 OpenID Connect 提供程序端点进行后端通信的 HTTP 连接上启用 TCP 保活。默认为
true
。
-
http.connection_pool_ttl
- (静态) 控制用于与 OpenID Connect 提供程序端点进行后端通信的 http 客户端的行为。指定连接池中连接的生存时间(默认为 3 分钟)。如果连接空闲时间超过指定超时时间,则将其关闭。
服务器还可以设置 Keep-Alive
HTTP 响应标头。有效的生存时间值是此设置和 Keep-Alive
响应标头中的较小值。将此设置配置为 -1
以让服务器决定该值。如果服务器未设置标头且设置值为 -1
,则生存时间为无限长,连接永远不会过期。
OpenID Connect 领域 SSL 设置
编辑以下设置可用于配置对 OpenID Connect 提供程序端点的所有传出 http 连接的 SSL。
这些设置 *仅* 用于 Elasticsearch 和 OpenID Connect 提供程序之间的后端通信
-
ssl.key
-
(静态) 包含私钥的 PEM 编码文件的路径。
如果需要 HTTP 客户端身份验证,则使用此文件。您不能同时使用此设置和
ssl.keystore.path
。
-
ssl.key_passphrase
-
(静态) 用于解密私钥的密码短语。由于密钥可能未加密,因此此值是可选的。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.secure_key_passphrase
。您不能同时使用此设置和
ssl.secure_key_passphrase
。
-
ssl.secure_key_passphrase
-
(安全) 用于解密私钥的密码短语。由于密钥可能未加密,因此此值是可选的。
您不能同时使用此设置和
ssl.key_passphrase
。
-
ssl.certificate
-
(静态) 指定与密钥关联的 PEM 编码证书(或证书链)的路径。
仅当设置了
ssl.key
时才能使用此设置。
-
ssl.certificate_authorities
-
(静态) 应信任的 PEM 编码证书文件的路径列表。
此设置和
ssl.truststore.path
不能同时使用。
-
ssl.keystore.path
-
(静态) 包含私钥和证书的密钥库文件的路径。
它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和
ssl.key
。
-
ssl.keystore.type
- (静态) 密钥库文件的格式。它必须是
jks
或PKCS12
。如果密钥库路径以“.p12”、“.pfx”或“.pkcs12”结尾,则此设置默认为PKCS12
。否则,默认为jks
。
-
ssl.keystore.password
- (静态) 密钥库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.keystore.secure_password
。
-
ssl.keystore.secure_password
-
(安全) 密钥库的密码。
您不能同时使用此设置和
ssl.keystore.password
。 -
ssl.keystore.key_password
-
(静态) 密钥库中密钥的密码。默认为密钥库密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.keystore.secure_key_password
。您不能同时使用此设置和
ssl.keystore.secure_password
。您不能同时使用此设置和
ssl.keystore.secure_key_password
。 -
ssl.keystore.secure_key_password
-
(安全)密钥库中密钥的密码。默认为密钥库密码。
您不能同时使用此设置和
ssl.keystore.key_password
。
-
ssl.truststore.path
-
(静态) 包含要信任的证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。
您不能同时使用此设置和
ssl.certificate_authorities
。
-
ssl.truststore.type
- (静态) 信任库文件的格式。它必须是
jks
或PKCS12
。如果文件名以“.p12”、“.pfx”或“pkcs12”结尾,则默认为PKCS12
。否则,默认为jks
。
-
ssl.truststore.password
-
(静态) 信任库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.truststore.secure_password
。您不能同时使用此设置和
ssl.truststore.secure_password
。
-
ssl.truststore.secure_password
-
(安全) 信任库的密码。
您不能同时使用此设置和
ssl.truststore.password
。
-
ssl.verification_mode
-
(静态) 控制证书的验证。
有效值
-
full
- 验证提供的证书:其发行日期在
not_before
和not_after
日期范围内;链接到受信任的证书颁发机构 (CA);其hostname
或 IP 地址与证书中的名称匹配。 -
certificate
- 验证提供的证书并验证它是否由受信任的颁发机构 (CA) 签名,但不检查证书
hostname
。 -
none
-
不执行证书验证。
将证书验证设置为
none
会禁用 SSL/TLS 的许多安全优势,这非常危险。仅当 Elastic 支持人员指示您将其作为临时诊断机制用于解决 TLS 错误时,才设置此值。
默认为
full
。 -
-
ssl.supported_protocols
-
(静态) 支持的协议及其版本。有效协议:
SSLv2Hello
、SSLv3
、TLSv1
、TLSv1.1
、TLSv1.2
、TLSv1.3
。如果 JVM 的 SSL 提供程序支持 TLSv1.3,则默认为TLSv1.3,TLSv1.2,TLSv1.1
。否则,默认为TLSv1.2,TLSv1.1
。Elasticsearch 依赖于您的 JDK 的 SSL 和 TLS 实现。查看 JDK 版本支持的 SSL/TLS 版本 以获取更多信息。
如果
xpack.security.fips_mode.enabled
为true
,则无法使用SSLv2Hello
或SSLv3
。请参阅 FIPS 140-2。
-
ssl.cipher_suites
-
(静态) 支持的密码套件因您使用的 Java 版本而异。例如,对于版本 12,默认值为
TLS_AES_256_GCM_SHA384
、TLS_AES_128_GCM_SHA256
、TLS_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
、TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
、TLS_RSA_WITH_AES_256_GCM_SHA384
、TLS_RSA_WITH_AES_128_GCM_SHA256
、TLS_RSA_WITH_AES_256_CBC_SHA256
、TLS_RSA_WITH_AES_128_CBC_SHA256
、TLS_RSA_WITH_AES_256_CBC_SHA
、TLS_RSA_WITH_AES_128_CBC_SHA
。有关更多信息,请参阅 Oracle 的 Java 密码体系结构文档。
JWT 领域设置
编辑除了 对所有领域有效的设置 之外,您还可以指定以下设置。
-
token_type
- (静态) JWT 领域用于验证传入 JWT 的令牌类型,
id_token
或access_token
。默认为id_token
。
-
allowed_audiences
- (静态) Elasticsearch 应验证的允许的 JWT 受众列表。Elasticsearch 将仅使用针对这些受众中的任何一个(如 JWT 中的
aud
声明所示)的 JWT。受众与精确字符串匹配进行比较,不支持通配符或正则表达式。aud
声明的示例为https://example.com/client1
和other_service,elasticsearch
。当token_type
为access_token
时,如果不存在aud
,则 JWT 中的另一个声明可以选择性地表示受众。另请参见fallback_claims.aud
。
-
allowed_clock_skew
- (静态) 验证 JWT 时,在考虑其创建、不可早于和过期时间时,允许的最大时钟偏差。
-
allowed_issuer
- (静态) JWT 发行者的可验证标识符。发行者标识符通常是使用 https 方案区分大小写的 URL,其中包含方案、主机以及可选的端口号和路径组件,不包含查询或片段组件。但是,它可以是任何字符串。此设置的值应由 JWT 发行者提供。发行者与精确字符串匹配进行比较,不支持通配符或正则表达式。
iss
声明的示例为https://example.com:8443/jwt
和issuer123
。
-
allowed_subjects
- (静态) Elasticsearch 应验证的允许的 JWT 主题列表。Elasticsearch 将仅使用为这些主题中的任何一个(如 JWT 中的
sub
声明所示)发行的 JWT。主题与精确字符串匹配进行比较,不支持通配符或正则表达式。sub
声明的示例为https://example.com/user1
和user_1,user2
。当token_type
为access_token
时,此设置是必需的,如果不存在sub
,则 JWT 中的另一个声明可以选择性地表示主题。另请参见fallback_claims.sub
。
-
fallback_claims.sub
- (静态) 如果不存在
sub
声明,则查找主题信息的备用声明。仅当token_type
为access_token
时,才能对其进行配置。回退应用于使用sub
声明的所有位置。
-
fallback_claims.aud
- (静态) 如果
aud
声明不存在,则查找用户身份信息备用声明。仅当token_type
为access_token
时可配置。回退应用于所有使用aud
声明的地方。
-
required_claims
- (静态) Elasticsearch 应验证的其他声明及其关联值。这是一个采用键值对的组设置,其中键为字符串,值必须为字符串或字符串数组。这些值与精确的字符串匹配进行比较,不支持通配符或正则表达式。
例如
xpack.security.authc.realms.jwt.jwt1: required_claims: token_use: "id" versions: ["1.0", "2.0"]
-
allowed_signature_algorithms
- (静态) Elasticsearch 将用于验证从 JWT Issuer 接收到的 JWT 签名的签名算法列表。默认为
RS256
。例如HS512,RS512,ES512
和ES384
。允许的值为HS256
、HS384
、HS512
、ES256
、ES384
、ES512
、RS256
、RS384
、RS512
、PS256
、PS384
、PS512
。 -
authorization_realms
- (静态) 应查询以进行委托授权的领域的名称。如果使用此设置,则 JWT 领域不执行角色映射,而是从列出的领域加载用户。请参阅 将授权委托给另一个领域。
-
claims.dn
- (静态) 包含用户可分辨名称 (DN) 的 JWT 声明的名称,该名称唯一标识用户或组。
-
claim_patterns.dn
- (静态) 接受与
claim_patterns.principal
相同的 Java 正则表达式,但用于dn
属性。
-
claims.groups
- (静态) 包含用户组的 JWT 声明的名称,例如
groups
和roles
。
-
claim_patterns.group
- (静态) 接受与
claim_patterns.principal
相同的 Java 正则表达式,但用于group
属性。
-
claims.mail
- (静态) 包含用户电子邮件地址的 JWT 声明的名称。
-
claim_patterns.mail
- (静态) 接受与
claim_patterns.principal
相同的 Java 正则表达式,但用于mail
属性。
-
claims.name
- (静态) 包含用户用户名(user name)的 JWT 声明的名称。
-
claim_patterns.name
- (静态) 接受与
claim_patterns.principal
相同的 Java 正则表达式,但用于name
属性。
-
claims.principal
- (静态) 包含用户主体(用户名)的 JWT 声明的名称,例如
sub
、name
、email
和dn
。
-
claim_patterns.principal
- (静态) 一个可选的 Java 正则表达式,在将其应用于用户的
principal
属性之前,会将其与claims.principal
指定的 JWT 声明进行匹配。该值必须与模式匹配,并且第一个捕获组的值用作主体。例如,^([^@]+)@example\\.com$
匹配来自example.com
域的电子邮件地址,并将本地部分用作主体。另一个示例是sub
,它可能不需要模式设置。
-
client_authentication.type
-
(静态) 指定是使用
shared_secret
还是none
来验证传入的客户端请求。如果此值为shared_secret
,则使用必须与预配置的密钥值匹配的 HTTP 请求标头对客户端进行身份验证。客户端必须在ES-Client-Authentication
标头中提供每个请求的此共享密钥。如果此值为none
,则忽略请求标头ES-Client-Authentication
。默认为shared_secret
。建议启用客户端身份验证。如果 JWT 持有者令牌与其他客户端或服务共享,则客户端身份验证会限制允许哪些客户端或服务将这些 JWT 提交到 Elasticsearch。
-
http.connect_timeout
- (静态) 设置用于从远程 URL 获取 JSON Web 密钥集的 HTTP 客户端的超时时间。值为零表示不使用超时。默认为
5s
。
-
http.connection_read_timeout
- (静态) 指定从连接管理器请求连接时使用的 HTTP 超时时间。默认为
5s
。
-
http.socket_timeout
- (静态) 指定 HTTP 客户端在两个连续数据包之间等待空闲的最大套接字超时时间 (SO_TIMEOUT)。默认为
5s
。
-
http.max_connections
- (静态) 指定所有端点允许的最大连接数。
-
pkc_jwkset_path
- (静态) 包含 JWT 领域用于验证令牌签名的公钥材料的 JSON Web 密钥集 (JWKS) 的文件名或 URL。如果值不以
https
开头,则将其视为文件名。文件名相对于 Elasticsearch 配置目录解析。如果提供了 URL,则它必须以https://
开头(不支持http://
)。Elasticsearch 自动缓存 JWK 集,并在签名验证失败时尝试刷新 JWK 集,因为这可能表示 JWT 提供程序已轮换签名密钥。
-
hmac_jwkset
- (安全) JSON Web 密钥集 (JWKS) 的内容,包括 JWT 领域用于验证令牌签名的密钥。此格式支持多个密钥和可选属性,并且优于
hmac_key
设置。不能与hmac_key
设置一起使用。请参阅 配置 Elasticsearch 以使用 JWT 领域。
-
hmac_key
- (安全) 单个 JSON Web 密钥 (JWK) 的内容,包括 JWT 领域用于验证令牌签名的密钥。此格式仅支持不带属性的单个密钥,不能与
hmac_jwkset
设置一起使用。此格式与 OIDC 兼容。HMAC 密钥必须是 UNICODE 字符串,其中密钥字节是 UNICODE 字符串的 UTF-8 编码。hmac_jwkset
设置是首选。请参阅 配置 Elasticsearch 以使用 JWT 领域。
-
populate_user_metadata
- (静态) 指定是否使用 JWT 声明提供的值填充 Elasticsearch 用户的元数据。默认为
true
。
JWT 领域 SSL 设置
编辑以下设置可用于配置从远程 URL 获取 JSON Web 密钥集的 SSL。
这些设置**仅**用于 Elasticsearch 和 JWT 发行者之间的后端通信。
-
ssl.key
-
(静态) 包含私钥的 PEM 编码文件的路径。
如果需要 HTTP 客户端身份验证,则使用此文件。您不能同时使用此设置和
ssl.keystore.path
。
-
ssl.key_passphrase
-
(静态) 用于解密私钥的密码短语。由于密钥可能未加密,因此此值是可选的。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.secure_key_passphrase
。您不能同时使用此设置和
ssl.secure_key_passphrase
。
-
ssl.secure_key_passphrase
-
(安全) 用于解密私钥的密码短语。由于密钥可能未加密,因此此值是可选的。
您不能同时使用此设置和
ssl.key_passphrase
。
-
ssl.certificate
-
(静态) 指定与密钥关联的 PEM 编码证书(或证书链)的路径。
仅当设置了
ssl.key
时才能使用此设置。
-
ssl.certificate_authorities
-
(静态) 应信任的 PEM 编码证书文件的路径列表。
此设置和
ssl.truststore.path
不能同时使用。
-
ssl.keystore.path
-
(静态) 包含私钥和证书的密钥库文件的路径。
它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和
ssl.key
。
-
ssl.keystore.type
- (静态) 密钥库文件的格式。它必须是
jks
或PKCS12
。如果密钥库路径以“.p12”、“.pfx”或“.pkcs12”结尾,则此设置默认为PKCS12
。否则,默认为jks
。
-
ssl.keystore.password
- (静态) 密钥库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.keystore.secure_password
。
-
ssl.keystore.secure_password
-
(安全) 密钥库的密码。
您不能同时使用此设置和
ssl.keystore.password
。 -
ssl.keystore.key_password
-
(静态) 密钥库中密钥的密码。默认为密钥库密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.keystore.secure_key_password
。您不能同时使用此设置和
ssl.keystore.secure_password
。您不能同时使用此设置和
ssl.keystore.secure_key_password
。 -
ssl.keystore.secure_key_password
-
(安全)密钥库中密钥的密码。默认为密钥库密码。
您不能同时使用此设置和
ssl.keystore.key_password
。
-
ssl.truststore.path
-
(静态) 包含要信任的证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。
您不能同时使用此设置和
ssl.certificate_authorities
。
-
ssl.truststore.type
- (静态) 信任库文件的格式。它必须是
jks
或PKCS12
。如果文件名以“.p12”、“.pfx”或“pkcs12”结尾,则默认为PKCS12
。否则,默认为jks
。
-
ssl.truststore.password
-
(静态) 信任库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.truststore.secure_password
。您不能同时使用此设置和
ssl.truststore.secure_password
。
-
ssl.truststore.secure_password
-
(安全) 信任库的密码。
您不能同时使用此设置和
ssl.truststore.password
。
-
ssl.verification_mode
-
(静态) 控制证书的验证。
有效值
-
full
- 验证提供的证书:其发行日期在
not_before
和not_after
日期范围内;链接到受信任的证书颁发机构 (CA);其hostname
或 IP 地址与证书中的名称匹配。 -
certificate
- 验证提供的证书并验证它是否由受信任的颁发机构 (CA) 签名,但不检查证书
hostname
。 -
none
-
不执行证书验证。
将证书验证设置为
none
会禁用 SSL/TLS 的许多安全优势,这非常危险。仅当 Elastic 支持人员指示您将其作为临时诊断机制用于解决 TLS 错误时,才设置此值。
默认为
full
。 -
-
ssl.supported_protocols
-
(静态) 支持的协议及其版本。有效协议:
SSLv2Hello
、SSLv3
、TLSv1
、TLSv1.1
、TLSv1.2
、TLSv1.3
。如果 JVM 的 SSL 提供程序支持 TLSv1.3,则默认为TLSv1.3,TLSv1.2,TLSv1.1
。否则,默认为TLSv1.2,TLSv1.1
。Elasticsearch 依赖于您的 JDK 的 SSL 和 TLS 实现。查看 JDK 版本支持的 SSL/TLS 版本 以获取更多信息。
如果
xpack.security.fips_mode.enabled
为true
,则无法使用SSLv2Hello
或SSLv3
。请参阅 FIPS 140-2。
-
ssl.cipher_suites
-
(静态) 支持的密码套件因您使用的 Java 版本而异。例如,对于版本 12,默认值为
TLS_AES_256_GCM_SHA384
、TLS_AES_128_GCM_SHA256
、TLS_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
、TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
、TLS_RSA_WITH_AES_256_GCM_SHA384
、TLS_RSA_WITH_AES_128_GCM_SHA256
、TLS_RSA_WITH_AES_256_CBC_SHA256
、TLS_RSA_WITH_AES_128_CBC_SHA256
、TLS_RSA_WITH_AES_256_CBC_SHA
、TLS_RSA_WITH_AES_128_CBC_SHA
。有关更多信息,请参阅 Oracle 的 Java 密码体系结构文档。
负载均衡和故障转移
编辑静态 load_balance.type
设置可以具有以下值
-
failover
:按指定的顺序使用指定的 URL。将使用第一个可以连接到的服务器进行所有后续连接。如果与该服务器的连接失败,则将使用可以建立连接的下一个服务器进行后续连接。 -
dns_failover
:在此操作模式下,只能指定一个 URL。此 URL 必须包含 DNS 名称。系统将查询与此 DNS 名称对应的所有 IP 地址。到 Active Directory 或 LDAP 服务器的连接将始终按检索到的顺序尝试。这与failover
不同,因为列表没有重新排序,并且如果列表开头的服务器已失败,它仍将针对每个后续连接进行尝试。 -
round_robin
:连接将连续遍历提供的 URL 列表。如果服务器不可用,则将继续遍历 URL 列表,直到建立成功的连接。 -
dns_round_robin
:在此操作模式下,只能指定一个 URL。此 URL 必须包含 DNS 名称。系统将查询与此 DNS 名称对应的所有 IP 地址。连接将连续遍历地址列表。如果服务器不可用,则将继续遍历 URL 列表,直到建立成功的连接。
通用 TLS 设置
编辑-
xpack.security.ssl.diagnose.trust
- (静态)控制是否输出 SSL/TLS 信任失败的诊断消息。如果设置为
true
(默认值),则每当由于无法建立信任而拒绝 SSL 连接(传入或传出)时,都会将消息打印到 Elasticsearch 日志。此诊断消息包含可用于确定失败原因并帮助解决问题的信息。设置为false
以禁用这些消息。
TLS/SSL 密钥和受信任证书设置
编辑以下设置用于指定在通过 SSL/TLS 连接进行通信时应使用的私钥、证书和受信任证书。如果未配置受信任证书,则 JVM 信任的默认证书以及与同一上下文中的密钥关联的证书将被信任。对于需要客户端身份验证或充当启用 SSL 的服务器的连接,密钥和证书必须到位。
尽管受支持,但在实践中,将受信任证书存储在 PKCS#12 文件中并不常见。 elasticsearch-certutil
工具 以及 Java 的 keytool
旨在生成可同时用作密钥库和信任库的 PKCS#12 文件,但这对于使用其他工具创建的容器文件可能并非如此。通常,PKCS#12 文件仅包含秘密和私有条目。要确认 PKCS#12 容器是否包含受信任证书(“锚”)条目,请在 openssl pkcs12 -info
输出中查找 2.16.840.1.113894.746875.1.1: <Unsupported tag 6>
,或在 keytool -list
输出中查找 trustedCertEntry
。
HTTP TLS/SSL 设置
编辑您可以配置以下 TLS/SSL 设置。
-
xpack.security.http.ssl.enabled
- (静态)用于启用或禁用 HTTP 网络层上的 TLS/SSL,Elasticsearch 使用它与其他客户端通信。默认值为
false
。 -
xpack.security.http.ssl.supported_protocols
-
(静态) 支持的协议及其版本。有效协议:
SSLv2Hello
、SSLv3
、TLSv1
、TLSv1.1
、TLSv1.2
、TLSv1.3
。如果 JVM 的 SSL 提供程序支持 TLSv1.3,则默认为TLSv1.3,TLSv1.2,TLSv1.1
。否则,默认为TLSv1.2,TLSv1.1
。Elasticsearch 依赖于您的 JDK 的 SSL 和 TLS 实现。查看 JDK 版本支持的 SSL/TLS 版本 以获取更多信息。
如果
xpack.security.fips_mode.enabled
为true
,则无法使用SSLv2Hello
或SSLv3
。请参阅 FIPS 140-2。 -
xpack.security.http.ssl.client_authentication
- (静态)控制服务器在请求客户端连接证书方面的行为。有效值为
required
、optional
和none
。required
强制客户端提供证书,而optional
请求客户端证书,但不要求客户端提供。默认为none
。 -
xpack.security.http.ssl.verification_mode
-
(静态)
xpack.security.http.ssl
中的 SSL 设置控制 TLS 的**服务器上下文**,该上下文定义 TLS 连接的设置。不建议在 TLS **服务器**中使用verification_mode
。定义如何在 TLS 连接中验证另一方提供的证书有效值
-
full
- 验证提供的证书:其发行日期在
not_before
和not_after
日期范围内;链接到受信任的证书颁发机构 (CA);其hostname
或 IP 地址与证书中的名称匹配。 -
certificate
- 验证提供的证书并验证它是否由受信任的颁发机构 (CA) 签名,但不检查证书
hostname
。 -
none
-
不执行证书验证。
将证书验证设置为
none
会禁用 SSL/TLS 的许多安全优势,这非常危险。仅当 Elastic 支持人员指示您将其作为临时诊断机制用于解决 TLS 错误时,才设置此值。
默认为
full
。 -
-
xpack.security.http.ssl.cipher_suites
-
(静态) 支持的密码套件因您使用的 Java 版本而异。例如,对于版本 12,默认值为
TLS_AES_256_GCM_SHA384
、TLS_AES_128_GCM_SHA256
、TLS_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
、TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
、TLS_RSA_WITH_AES_256_GCM_SHA384
、TLS_RSA_WITH_AES_128_GCM_SHA256
、TLS_RSA_WITH_AES_256_CBC_SHA256
、TLS_RSA_WITH_AES_128_CBC_SHA256
、TLS_RSA_WITH_AES_256_CBC_SHA
、TLS_RSA_WITH_AES_128_CBC_SHA
。有关更多信息,请参阅 Oracle 的 Java 密码体系结构文档。
HTTP TLS/SSL 密钥和受信任证书设置
编辑以下设置用于指定在通过 SSL/TLS 连接进行通信时应使用的私钥、证书和受信任证书。必须配置私钥和证书。
PEM 编码文件
编辑使用 PEM 编码文件时,请使用以下设置
-
xpack.security.http.ssl.key
-
(静态) 包含私钥的 PEM 编码文件的路径。
如果需要 HTTP 客户端身份验证,则使用此文件。您不能同时使用此设置和
ssl.keystore.path
。 -
xpack.security.http.ssl.key_passphrase
-
(静态) 用于解密私钥的密码短语。由于密钥可能未加密,因此此值是可选的。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.secure_key_passphrase
。您不能同时使用此设置和
ssl.secure_key_passphrase
。 -
xpack.security.http.ssl.secure_key_passphrase
- (安全) 用于解密私钥的密码短语。由于密钥可能未加密,因此此值是可选的。
-
xpack.security.http.ssl.certificate
-
(静态) 指定与密钥关联的 PEM 编码证书(或证书链)的路径。
仅当设置了
ssl.key
时才能使用此设置。 -
xpack.security.http.ssl.certificate_authorities
-
(静态) 应信任的 PEM 编码证书文件的路径列表。
此设置和
ssl.truststore.path
不能同时使用。
Java 密钥库文件
编辑使用 Java 密钥库文件 (JKS) 时,其中包含私钥、证书和应信任的证书,请使用以下设置
-
xpack.security.http.ssl.keystore.path
-
(静态) 包含私钥和证书的密钥库文件的路径。
它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和
ssl.key
。 -
xpack.security.http.ssl.keystore.password
- (静态) 密钥库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.keystore.secure_password
。 -
xpack.security.http.ssl.keystore.secure_password
- (安全) 密钥库的密码。
-
xpack.security.http.ssl.keystore.key_password
-
(静态) 密钥库中密钥的密码。默认为密钥库密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.keystore.secure_key_password
。您不能同时使用此设置和
ssl.keystore.secure_password
。 -
xpack.security.http.ssl.keystore.secure_key_password
- (安全)密钥库中密钥的密码。默认为密钥库密码。
-
xpack.security.http.ssl.truststore.path
-
(静态) 包含要信任的证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。
您不能同时使用此设置和
ssl.certificate_authorities
。 -
xpack.security.http.ssl.truststore.password
-
(静态) 信任库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.truststore.secure_password
。您不能同时使用此设置和
ssl.truststore.secure_password
。 -
xpack.security.http.ssl.truststore.secure_password
- (安全) 信任库的密码。
PKCS#12 文件
编辑Elasticsearch 可以配置为使用包含私钥、证书和应信任证书的 PKCS#12 容器文件(.p12
或 .pfx
文件)。
PKCS#12 文件的配置方式与 Java 密钥库文件相同
-
xpack.security.http.ssl.keystore.path
-
(静态) 包含私钥和证书的密钥库文件的路径。
它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和
ssl.key
。 -
xpack.security.http.ssl.keystore.type
- (静态) 密钥库文件的格式。它必须是
jks
或PKCS12
。如果密钥库路径以“.p12”、“.pfx”或“.pkcs12”结尾,则此设置默认为PKCS12
。否则,默认为jks
。 -
xpack.security.http.ssl.keystore.password
- (静态) 密钥库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.keystore.secure_password
。 -
xpack.security.http.ssl.keystore.secure_password
- (安全) 密钥库的密码。
-
xpack.security.http.ssl.keystore.key_password
-
(静态) 密钥库中密钥的密码。默认为密钥库密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.keystore.secure_key_password
。您不能同时使用此设置和
ssl.keystore.secure_password
。 -
xpack.security.http.ssl.keystore.secure_key_password
- (安全)密钥库中密钥的密码。默认为密钥库密码。
-
xpack.security.http.ssl.truststore.path
-
(静态) 包含要信任的证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。
您不能同时使用此设置和
ssl.certificate_authorities
。 -
xpack.security.http.ssl.truststore.type
- (静态)将其设置为
PKCS12
以指示信任库是 PKCS#12 文件。 -
xpack.security.http.ssl.truststore.password
-
(静态) 信任库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.truststore.secure_password
。您不能同时使用此设置和
ssl.truststore.secure_password
。 -
xpack.security.http.ssl.truststore.secure_password
- (安全) 信任库的密码。
传输 TLS/SSL 设置
编辑您可以配置以下 TLS/SSL 设置。
-
xpack.security.transport.ssl.enabled
- (静态)用于启用或禁用传输网络层上的 TLS/SSL,节点使用它相互通信。默认值为
false
。 -
xpack.security.transport.ssl.supported_protocols
-
(静态) 支持的协议及其版本。有效协议:
SSLv2Hello
、SSLv3
、TLSv1
、TLSv1.1
、TLSv1.2
、TLSv1.3
。如果 JVM 的 SSL 提供程序支持 TLSv1.3,则默认为TLSv1.3,TLSv1.2,TLSv1.1
。否则,默认为TLSv1.2,TLSv1.1
。Elasticsearch 依赖于您的 JDK 的 SSL 和 TLS 实现。查看 JDK 版本支持的 SSL/TLS 版本 以获取更多信息。
如果
xpack.security.fips_mode.enabled
为true
,则无法使用SSLv2Hello
或SSLv3
。请参阅 FIPS 140-2。 -
xpack.security.transport.ssl.client_authentication
- (静态)控制服务器在请求客户端连接证书方面的行为。有效值为
required
、optional
和none
。required
强制客户端提供证书,而optional
请求客户端证书,但不要求客户端提供。默认为required
。 -
xpack.security.transport.ssl.verification_mode
-
(静态)定义如何在 TLS 连接中验证另一方提供的证书
有效值
-
full
- 验证提供的证书:其发行日期在
not_before
和not_after
日期范围内;链接到受信任的证书颁发机构 (CA);其hostname
或 IP 地址与证书中的名称匹配。 -
certificate
- 验证提供的证书并验证它是否由受信任的颁发机构 (CA) 签名,但不检查证书
hostname
。 -
none
-
不执行证书验证。
将证书验证设置为
none
会禁用 SSL/TLS 的许多安全优势,这非常危险。仅当 Elastic 支持人员指示您将其作为临时诊断机制用于解决 TLS 错误时,才设置此值。
默认为
full
。 -
-
xpack.security.transport.ssl.cipher_suites
-
(静态) 支持的密码套件因您使用的 Java 版本而异。例如,对于版本 12,默认值为
TLS_AES_256_GCM_SHA384
、TLS_AES_128_GCM_SHA256
、TLS_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
、TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
、TLS_RSA_WITH_AES_256_GCM_SHA384
、TLS_RSA_WITH_AES_128_GCM_SHA256
、TLS_RSA_WITH_AES_256_CBC_SHA256
、TLS_RSA_WITH_AES_128_CBC_SHA256
、TLS_RSA_WITH_AES_256_CBC_SHA
、TLS_RSA_WITH_AES_128_CBC_SHA
。有关更多信息,请参阅 Oracle 的 Java 密码体系结构文档。
传输 TLS/SSL 密钥和受信任证书设置
编辑以下设置用于指定在通过 SSL/TLS 连接进行通信时应使用的私钥、证书和受信任证书。必须配置私钥和证书。
PEM 编码文件
编辑使用 PEM 编码文件时,请使用以下设置
-
xpack.security.transport.ssl.key
-
(静态) 包含私钥的 PEM 编码文件的路径。
如果需要 HTTP 客户端身份验证,则使用此文件。您不能同时使用此设置和
ssl.keystore.path
。 -
xpack.security.transport.ssl.key_passphrase
-
(静态) 用于解密私钥的密码短语。由于密钥可能未加密,因此此值是可选的。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.secure_key_passphrase
。您不能同时使用此设置和
ssl.secure_key_passphrase
。 -
xpack.security.transport.ssl.secure_key_passphrase
- (安全) 用于解密私钥的密码短语。由于密钥可能未加密,因此此值是可选的。
-
xpack.security.transport.ssl.certificate
-
(静态) 指定与密钥关联的 PEM 编码证书(或证书链)的路径。
仅当设置了
ssl.key
时才能使用此设置。 -
xpack.security.transport.ssl.certificate_authorities
-
(静态) 应信任的 PEM 编码证书文件的路径列表。
此设置和
ssl.truststore.path
不能同时使用。
Java 密钥库文件
编辑使用 Java 密钥库文件 (JKS) 时,其中包含私钥、证书和应信任的证书,请使用以下设置
-
xpack.security.transport.ssl.keystore.path
-
(静态) 包含私钥和证书的密钥库文件的路径。
它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和
ssl.key
。 -
xpack.security.transport.ssl.keystore.password
- (静态) 密钥库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.keystore.secure_password
。 -
xpack.security.transport.ssl.keystore.secure_password
- (安全) 密钥库的密码。
-
xpack.security.transport.ssl.keystore.key_password
-
(静态) 密钥库中密钥的密码。默认为密钥库密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.keystore.secure_key_password
。您不能同时使用此设置和
ssl.keystore.secure_password
。 -
xpack.security.transport.ssl.keystore.secure_key_password
- (安全)密钥库中密钥的密码。默认为密钥库密码。
-
xpack.security.transport.ssl.truststore.path
-
(静态) 包含要信任的证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。
您不能同时使用此设置和
ssl.certificate_authorities
。 -
xpack.security.transport.ssl.truststore.password
-
(静态) 信任库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.truststore.secure_password
。您不能同时使用此设置和
ssl.truststore.secure_password
。 -
xpack.security.transport.ssl.truststore.secure_password
- (安全) 信任库的密码。
PKCS#12 文件
编辑Elasticsearch 可以配置为使用包含私钥、证书和应信任证书的 PKCS#12 容器文件(.p12
或 .pfx
文件)。
PKCS#12 文件的配置方式与 Java 密钥库文件相同
-
xpack.security.transport.ssl.keystore.path
-
(静态) 包含私钥和证书的密钥库文件的路径。
它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和
ssl.key
。 -
xpack.security.transport.ssl.keystore.type
- (静态) 密钥库文件的格式。它必须是
jks
或PKCS12
。如果密钥库路径以“.p12”、“.pfx”或“.pkcs12”结尾,则此设置默认为PKCS12
。否则,默认为jks
。 -
xpack.security.transport.ssl.keystore.password
- (静态) 密钥库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.keystore.secure_password
。 -
xpack.security.transport.ssl.keystore.secure_password
- (安全) 密钥库的密码。
-
xpack.security.transport.ssl.keystore.key_password
-
(静态) 密钥库中密钥的密码。默认为密钥库密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.keystore.secure_key_password
。您不能同时使用此设置和
ssl.keystore.secure_password
。 -
xpack.security.transport.ssl.keystore.secure_key_password
- (安全)密钥库中密钥的密码。默认为密钥库密码。
-
xpack.security.transport.ssl.truststore.path
-
(静态) 包含要信任的证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。
您不能同时使用此设置和
ssl.certificate_authorities
。 -
xpack.security.transport.ssl.truststore.type
- (静态)将其设置为
PKCS12
以指示信任库是 PKCS#12 文件。 -
xpack.security.transport.ssl.truststore.password
-
(静态) 信任库的密码。 [7.17.0] 已在 7.17.0 中弃用。 请改用
ssl.truststore.secure_password
。您不能同时使用此设置和
ssl.truststore.secure_password
。 -
xpack.security.transport.ssl.truststore.secure_password
- (安全) 信任库的密码。
远程集群服务器(基于 API 密钥的模型)TLS/SSL 设置
编辑您可以配置以下 TLS/SSL 设置。
-
xpack.security.remote_cluster_server.ssl.enabled
- (静态)用于启用或禁用远程集群服务器网络层上的 TLS/SSL,Elasticsearch 使用它与远程集群客户端通信。默认值为
true
。 -
xpack.security.remote_cluster_server.ssl.supported_protocols
-
(静态) 支持的协议及其版本。有效协议:
SSLv2Hello
、SSLv3
、TLSv1
、TLSv1.1
、TLSv1.2
、TLSv1.3
。如果 JVM 的 SSL 提供程序支持 TLSv1.3,则默认为TLSv1.3,TLSv1.2,TLSv1.1
。否则,默认为TLSv1.2,TLSv1.1
。Elasticsearch 依赖于您的 JDK 的 SSL 和 TLS 实现。查看 JDK 版本支持的 SSL/TLS 版本 以获取更多信息。
如果
xpack.security.fips_mode.enabled
为true
,则无法使用SSLv2Hello
或SSLv3
。请参阅 FIPS 140-2。 -
xpack.security.remote_cluster_server.ssl.client_authentication
- (静态)控制服务器在请求客户端连接证书方面的行为。有效值为
required
、optional
和none
。required
强制客户端提供证书,而optional
请求客户端证书,但不要求客户端提供。默认为none
。 -
xpack.security.remote_cluster_server.ssl.verification_mode
-
(静态)
xpack.security.remote_cluster_server.ssl
中的 SSL 设置控制 TLS 的**服务器上下文**,该上下文定义 TLS 连接的设置。不建议在 TLS **服务器**中使用verification_mode
。定义如何在 TLS 连接中验证另一方提供的证书有效值
-
full
- 验证提供的证书:其发行日期在
not_before
和not_after
日期范围内;链接到受信任的证书颁发机构 (CA);其hostname
或 IP 地址与证书中的名称匹配。 -
certificate
- 验证提供的证书并验证它是否由受信任的颁发机构 (CA) 签名,但不检查证书
hostname
。 -
none
-
不执行证书验证。
将证书验证设置为
none
会禁用 SSL/TLS 的许多安全优势,这非常危险。仅当 Elastic 支持人员指示您将其作为临时诊断机制用于解决 TLS 错误时,才设置此值。
默认为
full
。 -
-
xpack.security.remote_cluster_server.ssl.cipher_suites
-
(静态) 支持的密码套件因您使用的 Java 版本而异。例如,对于版本 12,默认值为
TLS_AES_256_GCM_SHA384
、TLS_AES_128_GCM_SHA256
、TLS_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
、TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
、TLS_RSA_WITH_AES_256_GCM_SHA384
、TLS_RSA_WITH_AES_128_GCM_SHA256
、TLS_RSA_WITH_AES_256_CBC_SHA256
、TLS_RSA_WITH_AES_128_CBC_SHA256
、TLS_RSA_WITH_AES_256_CBC_SHA
、TLS_RSA_WITH_AES_128_CBC_SHA
。有关更多信息,请参阅 Oracle 的 Java 密码体系结构文档。
远程集群服务器(基于 API 密钥的模型)TLS/SSL 密钥和受信任证书设置
编辑以下设置用于指定在通过 SSL/TLS 连接进行通信时应使用的私钥、证书和受信任证书。必须配置私钥和证书。
PEM 编码文件
编辑使用 PEM 编码文件时,请使用以下设置
-
xpack.security.remote_cluster_server.ssl.key
-
(静态) 包含私钥的 PEM 编码文件的路径。
如果需要 HTTP 客户端身份验证,则使用此文件。您不能同时使用此设置和
ssl.keystore.path
。 -
xpack.security.remote_cluster_server.ssl.secure_key_passphrase
- (安全) 用于解密私钥的密码短语。由于密钥可能未加密,因此此值是可选的。
-
xpack.security.remote_cluster_server.ssl.certificate
-
(静态) 指定与密钥关联的 PEM 编码证书(或证书链)的路径。
仅当设置了
ssl.key
时才能使用此设置。 -
xpack.security.remote_cluster_server.ssl.certificate_authorities
-
(静态) 应信任的 PEM 编码证书文件的路径列表。
此设置和
ssl.truststore.path
不能同时使用。
Java 密钥库文件
编辑使用 Java 密钥库文件 (JKS) 时,其中包含私钥、证书和应信任的证书,请使用以下设置
-
xpack.security.remote_cluster_server.ssl.keystore.path
-
(静态) 包含私钥和证书的密钥库文件的路径。
它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和
ssl.key
。 -
xpack.security.remote_cluster_server.ssl.keystore.secure_password
- (安全) 密钥库的密码。
-
xpack.security.remote_cluster_server.ssl.keystore.secure_key_password
- (安全)密钥库中密钥的密码。默认为密钥库密码。
-
xpack.security.remote_cluster_server.ssl.truststore.path
-
(静态) 包含要信任的证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。
您不能同时使用此设置和
ssl.certificate_authorities
。 -
xpack.security.remote_cluster_server.ssl.truststore.secure_password
- (安全) 信任库的密码。
PKCS#12 文件
编辑Elasticsearch 可以配置为使用包含私钥、证书和应信任证书的 PKCS#12 容器文件(.p12
或 .pfx
文件)。
PKCS#12 文件的配置方式与 Java 密钥库文件相同
-
xpack.security.remote_cluster_server.ssl.keystore.path
-
(静态) 包含私钥和证书的密钥库文件的路径。
它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和
ssl.key
。 -
xpack.security.remote_cluster_server.ssl.keystore.type
- (静态) 密钥库文件的格式。它必须是
jks
或PKCS12
。如果密钥库路径以“.p12”、“.pfx”或“.pkcs12”结尾,则此设置默认为PKCS12
。否则,默认为jks
。 -
xpack.security.remote_cluster_server.ssl.keystore.secure_password
- (安全) 密钥库的密码。
-
xpack.security.remote_cluster_server.ssl.keystore.secure_key_password
- (安全)密钥库中密钥的密码。默认为密钥库密码。
-
xpack.security.remote_cluster_server.ssl.truststore.path
-
(静态) 包含要信任的证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。
您不能同时使用此设置和
ssl.certificate_authorities
。 -
xpack.security.remote_cluster_server.ssl.truststore.type
- (静态)将其设置为
PKCS12
以指示信任库是 PKCS#12 文件。 -
xpack.security.remote_cluster_server.ssl.truststore.secure_password
- (安全) 信任库的密码。
远程集群客户端(基于 API 密钥的模型)TLS/SSL 设置
编辑您可以配置以下 TLS/SSL 设置。
-
xpack.security.remote_cluster_client.ssl.enabled
- (静态) 用于启用或禁用远程集群客户端网络层的 TLS/SSL,Elasticsearch 使用它与远程集群服务器通信。默认值为
true
。 -
xpack.security.remote_cluster_client.ssl.supported_protocols
-
(静态) 支持的协议及其版本。有效协议:
SSLv2Hello
、SSLv3
、TLSv1
、TLSv1.1
、TLSv1.2
、TLSv1.3
。如果 JVM 的 SSL 提供程序支持 TLSv1.3,则默认为TLSv1.3,TLSv1.2,TLSv1.1
。否则,默认为TLSv1.2,TLSv1.1
。Elasticsearch 依赖于您的 JDK 的 SSL 和 TLS 实现。查看 JDK 版本支持的 SSL/TLS 版本 以获取更多信息。
如果
xpack.security.fips_mode.enabled
为true
,则无法使用SSLv2Hello
或SSLv3
。请参阅 FIPS 140-2。 -
xpack.security.remote_cluster_client.ssl.verification_mode
-
(静态)定义如何在 TLS 连接中验证另一方提供的证书
有效值
-
full
- 验证提供的证书:其发行日期在
not_before
和not_after
日期范围内;链接到受信任的证书颁发机构 (CA);其hostname
或 IP 地址与证书中的名称匹配。 -
certificate
- 验证提供的证书并验证它是否由受信任的颁发机构 (CA) 签名,但不检查证书
hostname
。 -
none
-
不执行证书验证。
将证书验证设置为
none
会禁用 SSL/TLS 的许多安全优势,这非常危险。仅当 Elastic 支持人员指示您将其作为临时诊断机制用于解决 TLS 错误时,才设置此值。
默认为
full
。 -
-
xpack.security.remote_cluster_client.ssl.cipher_suites
-
(静态) 支持的密码套件因您使用的 Java 版本而异。例如,对于版本 12,默认值为
TLS_AES_256_GCM_SHA384
、TLS_AES_128_GCM_SHA256
、TLS_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
、TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
、TLS_RSA_WITH_AES_256_GCM_SHA384
、TLS_RSA_WITH_AES_128_GCM_SHA256
、TLS_RSA_WITH_AES_256_CBC_SHA256
、TLS_RSA_WITH_AES_128_CBC_SHA256
、TLS_RSA_WITH_AES_256_CBC_SHA
、TLS_RSA_WITH_AES_128_CBC_SHA
。有关更多信息,请参阅 Oracle 的 Java 密码体系结构文档。
远程集群客户端(基于 API 密钥的模型)TLS/SSL 密钥和受信任证书设置
编辑以下设置用于指定私钥、证书和在通过 SSL/TLS 连接通信时应使用的受信任证书。私钥和证书是可选的,如果服务器需要客户端身份验证进行 PKI 身份验证,则可以使用它们。
PEM 编码文件
编辑使用 PEM 编码文件时,请使用以下设置
-
xpack.security.remote_cluster_client.ssl.key
-
(静态) 包含私钥的 PEM 编码文件的路径。
如果需要 HTTP 客户端身份验证,则使用此文件。您不能同时使用此设置和
ssl.keystore.path
。 -
xpack.security.remote_cluster_client.ssl.secure_key_passphrase
- (安全) 用于解密私钥的密码短语。由于密钥可能未加密,因此此值是可选的。
-
xpack.security.remote_cluster_client.ssl.certificate
-
(静态) 指定与密钥关联的 PEM 编码证书(或证书链)的路径。
仅当设置了
ssl.key
时才能使用此设置。 -
xpack.security.remote_cluster_client.ssl.certificate_authorities
-
(静态) 应信任的 PEM 编码证书文件的路径列表。
此设置和
ssl.truststore.path
不能同时使用。
Java 密钥库文件
编辑使用 Java 密钥库文件 (JKS) 时,其中包含私钥、证书和应信任的证书,请使用以下设置
-
xpack.security.remote_cluster_client.ssl.keystore.path
-
(静态) 包含私钥和证书的密钥库文件的路径。
它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和
ssl.key
。 -
xpack.security.remote_cluster_client.ssl.keystore.secure_password
- (安全) 密钥库的密码。
-
xpack.security.remote_cluster_client.ssl.keystore.secure_key_password
- (安全)密钥库中密钥的密码。默认为密钥库密码。
-
xpack.security.remote_cluster_client.ssl.truststore.path
-
(静态) 包含要信任的证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。
您不能同时使用此设置和
ssl.certificate_authorities
。 -
xpack.security.remote_cluster_client.ssl.truststore.secure_password
- (安全) 信任库的密码。
PKCS#12 文件
编辑Elasticsearch 可以配置为使用包含私钥、证书和应信任证书的 PKCS#12 容器文件(.p12
或 .pfx
文件)。
PKCS#12 文件的配置方式与 Java 密钥库文件相同
-
xpack.security.remote_cluster_client.ssl.keystore.path
-
(静态) 包含私钥和证书的密钥库文件的路径。
它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和
ssl.key
。 -
xpack.security.remote_cluster_client.ssl.keystore.type
- (静态) 密钥库文件的格式。它必须是
jks
或PKCS12
。如果密钥库路径以“.p12”、“.pfx”或“.pkcs12”结尾,则此设置默认为PKCS12
。否则,默认为jks
。 -
xpack.security.remote_cluster_client.ssl.keystore.secure_password
- (安全) 密钥库的密码。
-
xpack.security.remote_cluster_client.ssl.keystore.secure_key_password
- (安全)密钥库中密钥的密码。默认为密钥库密码。
-
xpack.security.remote_cluster_client.ssl.truststore.path
-
(静态) 包含要信任的证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。
您不能同时使用此设置和
ssl.certificate_authorities
。 -
xpack.security.remote_cluster_client.ssl.truststore.type
- (静态)将其设置为
PKCS12
以指示信任库是 PKCS#12 文件。 -
xpack.security.remote_cluster_client.ssl.truststore.secure_password
- (安全) 信任库的密码。
传输配置文件 TLS/SSL 设置
编辑与 默认传输 可用的相同设置也适用于每个传输配置文件。默认情况下,传输配置文件的设置将与默认传输相同,除非它们被指定。
例如,让我们看一下密钥设置。对于默认传输,它是 xpack.security.transport.ssl.key
。为了在传输配置文件中使用此设置,请使用前缀 transport.profiles.$PROFILE.xpack.security.
并追加 xpack.security.transport.
之后设置的部分。对于密钥设置,这将是 transport.profiles.$PROFILE.xpack.security.ssl.key
。
IP 过滤设置
编辑您可以为 IP 过滤 配置以下设置。
-
xpack.security.transport.filter.allow
- (动态) 要允许的 IP 地址列表。
-
xpack.security.transport.filter.deny
- (动态) 要拒绝的 IP 地址列表。
-
xpack.security.http.filter.allow
- (动态) 仅允许 HTTP 使用的 IP 地址列表。
-
xpack.security.http.filter.deny
- (动态) 仅拒绝 HTTP 使用的 IP 地址列表。
-
transport.profiles.$PROFILE.xpack.security.filter.allow
- (动态) 要允许此配置文件使用的 IP 地址列表。
-
transport.profiles.$PROFILE.xpack.security.filter.deny
- (动态) 要拒绝此配置文件使用的 IP 地址列表。
-
xpack.security.remote_cluster.filter.allow
- (动态) 仅允许 使用基于 API 密钥的模型配置的远程集群服务器 使用的 IP 地址列表。
-
xpack.security.remote_cluster.filter.deny
- (动态) 仅拒绝 使用基于 API 密钥的模型配置的远程集群服务器 使用的 IP 地址列表。
用户缓存和密码哈希算法
编辑某些领域在内存中存储用户凭据。为了限制对凭据盗窃的暴露并减轻凭据泄露的影响,缓存仅在内存中存储用户凭据的哈希版本。默认情况下,用户缓存使用带盐的 sha-256
哈希算法进行哈希。您可以通过将 静态 cache.hash_algo
领域设置更改为以下任何值来使用不同的哈希算法
表 1. 缓存哈希算法
算法 |
描述 |
||
|
使用带盐的 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
不哈希凭据,并将其以明文形式保存在内存中。注意:保留明文被认为是不安全的,并且可以在操作系统级别受到攻击(例如,通过内存转储和使用 |
同样,存储密码的领域使用密码学上强大的且特定于密码的盐值对它们进行哈希处理。您可以通过将 静态 xpack.security.authc.password_hashing.algorithm
设置更改为以下之一来配置密码哈希的算法
表 2. 密码哈希算法
算法 | 描述 | ||
---|---|---|---|
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |