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
命名空间中配置安全域设置。
例如
领域设置编辑
您可以在 elasticsearch.yml
中的 xpack.security.authc.realms
命名空间中配置领域设置。
例如
xpack.security.authc.realms: native.realm1: order: 0 ... ldap.realm2: order: 1 ... active_directory.realm3: order: 2 ... ...
有效设置会根据领域类型而有所不同。有关更多信息,请参见 用户身份验证。
对所有领域有效的设置编辑
原生领域设置编辑
除了 对所有领域有效的设置 之外,您还可以指定以下可选设置
-
cache.ttl
- (静态) 缓存的用户条目的生存时间。用户及其凭据的哈希值将在此时间段内被缓存。使用标准的 Elasticsearch 时间单位 指定时间段。默认值为
20m
。 -
cache.max_users
- (静态) 任何给定时间可以存在于缓存中的用户条目的最大数量。默认值为 100,000。
-
cache.hash_algo
- (静态,专家) 用于内存缓存的用户凭据的哈希算法。有关可能的值,请参见 表 1,“缓存哈希算法”。默认值为
ssha256
。 -
authentication.enabled
- (静态) 如果设置为
false
,则会禁用此领域中的身份验证支持,因此它只支持用户查找。(请参见 以其他用户身份运行 和 授权领域 功能)。默认值为true
。
文件领域设置编辑
除了 对所有领域有效的设置 之外,您还可以指定以下设置
-
cache.ttl
- (静态) 缓存的用户条目的生存时间。用户及其凭据的哈希值将在此配置的时间段内被缓存。默认值为
20m
。使用标准的 Elasticsearch 时间单位 指定值。默认值为20m
。 -
cache.max_users
- (静态) 任何给定时间可以存在于缓存中的用户条目的最大数量。默认值为 100,000。
-
cache.hash_algo
- (静态,专家) 用于内存缓存的用户凭据的哈希算法。请参见 表 1,“缓存哈希算法”。默认值为
ssha256
。 -
authentication.enabled
- (静态) 如果设置为
false
,则会禁用此领域中的身份验证支持,因此它只支持用户查找。(请参见 以其他用户身份运行 和 授权领域 功能)。默认值为true
。
LDAP 领域设置编辑
除了 对所有领域有效的设置 之外,您还可以指定以下设置
-
url
-
(静态) 一个或多个 LDAP URL,格式为
ldap[s]://<server>:<port>
。必需的。要提供多个 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。仅适用于用户搜索模式。如果未指定,则会尝试进行匿名绑定。默认值为 Empty。由于其潜在的安全影响,
bind_dn
不会通过 节点信息 API 公开。 -
bind_password
- (静态) [6.3] 在 6.3 中已弃用。 使用
secure_bind_password
代替。用于绑定到 LDAP 目录的用户的密码。默认值为 Empty。由于其潜在的安全影响,bind_password
不会通过 节点信息 API 公开。 -
secure_bind_password
- (安全,可重新加载) 用于绑定到 LDAP 目录的用户的密码。默认值为 Empty。
-
user_dn_templates
- (静态) DN 模板,它将用户名替换为字符串
{0}
。此设置是多值的;您可以指定多个用户上下文。在用户模板模式下操作时必需。如果指定了user_search.base_dn
,则此设置无效。有关不同模式的更多信息,请参见 LDAP 用户身份验证。 -
authorization_realms
-
(静态) 应查询以进行委托授权的领域的名称。如果使用此设置,则 LDAP 领域不会执行角色映射,而是从列出的领域加载用户。引用的领域将按照它们在此列表中定义的顺序进行查询。请参见 将授权委托给另一个领域。
如果指定了任何以
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 将传递到过滤器中。默认值为 Empty。
-
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
会禁用 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
,则会禁用此领域中的身份验证支持,因此它只支持用户查找。(请参见 以其他用户身份运行 和 授权领域 功能)。默认值为true
。
Active Directory 域设置edit
除了 对所有领域有效的设置 之外,您还可以指定以下设置
-
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
会禁用 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
,则会禁用此领域中的身份验证支持,因此它只支持用户查找。(请参见 以其他用户身份运行 和 授权领域 功能)。默认值为true
。 -
follow_referrals
- (静态) 如果设置为
true
,Elasticsearch 将遵循 LDAP 服务器返回的引用。引用是服务器返回的 URL,用于继续 LDAP 操作(例如search
)。默认值为true
。
PKI 领域设置编辑
除了 对所有领域有效的设置 之外,您还可以指定以下设置
-
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
将设置检查 metdata 的最小频率。默认值为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.50 识别名称 的 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
- (静态) 应为委托授权查询的 realm 的名称。如果使用此设置,则 SAML realm 不会执行角色映射,而是从列出的 realm 加载用户。请参阅 将授权委托给另一个 realm。
-
allowed_clock_skew
- (静态) IdP 时钟和 Elasticsearch 节点时钟之间可以容忍的最大时钟偏差。默认为
3m
(3 分钟)。
SAML realm 签名设置编辑
如果配置了签名密钥(即,设置了 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
会禁用 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 领域设置编辑
除了 对所有领域有效的设置 之外,您还可以指定以下设置
-
keytab.path
- (静态) 指定包含此 Elasticsearch 节点使用的服务主体的 Kerberos 密钥表文件的路径。这必须是 Elasticsearch 配置目录中的一个位置,并且该文件必须具有读取权限。必需。
-
cache.max_users
- (静态) 任何给定时间可以存在于缓存中的用户条目的最大数量。默认值为 100,000。
-
authorization_realms
- (静态) 应该查询以进行委托授权的领域的名称。如果使用此设置,则 Kerberos 领域不会执行角色映射,而是从列出的领域加载用户。请参阅 将授权委托给另一个领域。
OpenID Connect 领域设置编辑
除了 对所有领域有效的设置 之外,您还可以指定以下设置。
-
op.issuer
- (静态) OpenID Connect 提供者的可验证标识符。发行者标识符通常是使用 https 方案的区分大小写的 URL,其中包含方案、主机,以及可选的端口号和路径组件,不包含查询或片段组件。此设置的值应由您的 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 的签名算法,它使用该 JWT 作为客户端向 OpenID Connect 提供者进行身份验证,前提是为
rp.client_auth_method
选择了client_secret_jwt
。可以是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
- (静态) 重定向 URI(通常在 Kibana 中),OpenID Connect 提供者应在成功执行单点注销后将浏览器重定向到该 URI。
-
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 正则表达式,在将其应用于用户的 *主体* 属性之前。属性值必须与模式匹配,并且第一个 *捕获组* 的值用作主体。例如,^([^@]+)@example\\.com$
与来自“example.com”域的电子邮件地址匹配,并将本地部分用作主体。
-
claim_patterns.groups
- (静态) 与
claim_patterns.principal
相同,但适用于 *组* 属性。
-
claim_patterns.name
- (静态) 与
claim_patterns.principal
相同,但适用于 *名称* 属性。
-
claim_patterns.mail
- (静态) 与
claim_patterns.principal
相同,但针对的是 mail 属性。
-
claim_patterns.dn
- (静态) 与
claim_patterns.principal
相同,但针对的是 dn 属性。
-
allowed_clock_skew
- (静态) 验证 ID 令牌的创建和过期时间时,要考虑的最大允许时钟偏差。默认值为
60s
。
-
populate_user_metadata
- (静态) 指定是否使用 OpenID Connect 声明提供的 value 来填充 Elasticsearch 用户的元数据。默认值为
true
。 -
http.proxy.host
- (静态) 指定代理服务器的地址,内部 http 客户端将使用该地址与 OpenID Connect Provider 端点进行所有后端通信。这包括对令牌端点、用户信息端点的请求,以及在
op.jwkset_path
设置为 URL 时,从 OP 获取 JSON Web 密钥集的请求。 -
http.proxy.scheme
- (静态) 指定用于连接到代理服务器的协议,http 客户端将使用该协议与 OpenID Connect Provider 端点进行所有后端通信。默认值为
http
。允许的值为http
或https
。 -
http.proxy.port
- (静态) 指定代理服务器的端口,http 客户端将使用该端口与 OpenID Connect Provider 端点进行所有后端通信。默认值为
80
。
-
http.connect_timeout
- (静态) 控制用于与 OpenID Connect Provider 端点进行后端通信的 http 客户端的行为。指定建立连接之前的超时时间。值为零表示不使用超时时间。默认值为
5s
。
-
http.connection_read_timeout
- (静态) 控制用于与 OpenID Connect Provider 端点进行后端通信的 http 客户端的行为。指定从连接管理器请求连接时使用的超时时间。默认值为
5s
-
http.socket_timeout
- (静态) 控制用于与 OpenID Connect Provider 端点进行后端通信的 http 客户端的行为。指定套接字超时时间 (SO_TIMEOUT),以毫秒为单位,表示等待数据的超时时间,或者换句话说,两个连续数据包之间最大允许的空闲时间。默认值为
5s
。
-
http.max_connections
- (静态) 控制用于与 OpenID Connect Provider 端点进行后端通信的 http 客户端的行为。指定所有端点允许的最大连接数。默认值为
200
。
-
http.max_endpoint_connections
- (静态) 控制用于与 OpenID Connect Provider 端点进行后端通信的 http 客户端的行为。指定每个端点允许的最大连接数。默认值为
200
。
-
http.tcp.keep_alive
- (静态) 是否在用于与 OpenID Connect Provider 端点进行后端通信的 HTTP 连接上启用 TCP 保持活动。默认值为
true
。
-
http.connection_pool_ttl
- (静态) 控制用于与 OpenID Connect Provider 端点进行后端通信的 http 客户端的行为。指定连接池中连接的生存时间 (默认值为 3 分钟)。如果连接空闲时间超过指定超时时间,则会关闭该连接。
服务器还可以设置 Keep-Alive
HTTP 响应标头。有效的生存时间值为该设置和 Keep-Alive
响应标头中的较小值。将此设置配置为 -1
,以让服务器决定该值。如果服务器未设置标头,并且该设置的值为 -1
,则生存时间为无限,连接永远不会过期。
OpenID Connect 领域 SSL 设置编辑
以下设置可用于为所有传出 http 连接到 OpenID Connect Provider 端点配置 SSL。
这些设置仅用于 Elasticsearch 与 OpenID Connect Provider 之间的后端通信
-
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
会禁用 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,如 JWT 中的
aud
声明所示。受众与精确字符串匹配进行比较,不支持通配符或正则表达式。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,如 JWT 中的
sub
声明所示。主题与精确字符串匹配进行比较,不支持通配符或正则表达式。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 发行者接收的 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
- (静态) 包含用户用户名 的 JWT 声明的名称。
-
claim_patterns.name
- (静态) 接受与
claim_patterns.principal
相同的 Java 正则表达式,但用于name
属性。
-
claims.principal
- (静态) 包含用户主体(用户名)的 JWT 声明的名称,例如
sub
、name
、email
和dn
。
-
claim_patterns.principal
- (静态) 一个可选的 Java 正则表达式,它在将
claims.principal
指定的 JWT 声明应用于用户的principal
属性之前与该声明匹配。该值必须与模式匹配,并且第一个捕获组的值用作主体。例如,^([^@]+)@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 声明提供的 value 来填充 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
会禁用 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
会禁用 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
会禁用 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
会禁用 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
会禁用 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. 密码哈希算法
算法 | 描述 | ||
---|---|---|---|
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |
||
|
使用 |