Kibana 中的安全设置
编辑Kibana 中的安全设置
编辑您无需配置任何其他设置即可使用 Kibana 中的安全功能。这些功能默认启用。
在高可用性部署中,请确保对 Kibana 的所有实例使用相同的安全设置。此外,请考虑将敏感的安全设置(如加密和解密密钥)安全地存储在 Kibana 密钥库中,而不是以明文形式保存在 kibana.yml 文件中。
身份验证安全设置
编辑您可以在 kibana.yml
中的 xpack.security.authc
命名空间中配置身份验证设置。
例如:
xpack.security.authc: providers: basic.basic1: order: 0 ... saml.saml1: order: 1 ... saml.saml2: order: 2 ... pki.realm3: order: 3 ... ...
指定身份验证提供程序的类型(例如, |
|
指定提供程序在身份验证链和登录选择器 UI 中的顺序。此设置为必填项。 |
|
指定名称为 |
|
指定名称为 |
所有身份验证提供程序的有效设置
编辑xpack.security.authc.providers
命名空间中的有效设置因身份验证提供程序类型而异。有关详细信息,请参阅身份验证。
- xpack.security.authc.providers.<提供程序类型>.<提供程序名称>.enabled
- 确定是否应启用身份验证提供程序。默认情况下,只要您配置了提供程序的任何属性,Kibana 就会启用该提供程序。
- xpack.security.authc.providers.<提供程序类型>.<提供程序名称>.order
- 提供程序在身份验证链和登录选择器 UI 中的顺序。
- xpack.security.authc.providers.<提供程序类型>.<提供程序名称>.description
- 登录选择器 UI 上显示的提供程序条目的自定义描述。
- xpack.security.authc.providers.<提供程序类型>.<提供程序名称>.hint
- 登录选择器 UI 上显示的提供程序条目的自定义提示。
- xpack.security.authc.providers.<提供程序类型>.<提供程序名称>.icon
- 登录选择器 UI 上显示的提供程序条目的自定义图标。
- xpack.security.authc.providers.<提供程序类型>.<提供程序名称>.showInSelector
-
指示提供程序是否应在登录选择器 UI 上具有条目的标志。 将此项设置为
false
不会从身份验证链中删除提供程序。您无法将
basic
和token
身份验证提供程序的此设置设置为false
。 - xpack.security.authc.providers.<提供程序类型>.<提供程序名称>.accessAgreement.message
- Markdown 格式的访问协议文本。 有关详细信息,请参阅访问协议。
- xpack.security.authc.providers.<提供程序类型>.<提供程序名称>.session.idleTimeout
-
确保用户会话在一段时间不活动后过期。 将此项设置为
0
将阻止会话由于不活动而过期。 默认情况下,此设置等于xpack.security.session.idleTimeout
。使用
<计数>[ms|s|m|h|d|w|M|Y]
字符串(例如,20m、24h、7d、1w)。 - xpack.security.authc.providers.<提供程序类型>.<提供程序名称>.session.lifespan
-
确保用户会话在定义的期限后过期。此行为也称为“绝对超时”。如果将其设置为
0
,则用户会话可能会无限期保持活动状态。默认情况下,此设置等于xpack.security.session.lifespan
。使用
<计数>[ms|s|m|h|d|w|M|Y]
字符串(例如,20m、24h、7d、1w)。
SAML 身份验证提供程序设置
编辑除了对所有提供程序都有效的设置之外,您还可以指定以下设置
- xpack.security.authc.providers.saml.<提供程序名称>.realm
- 提供程序应使用的 Elasticsearch 中的 SAML 领域。
- xpack.security.authc.providers.saml.<提供程序名称>.useRelayStateDeepLink
- 确定提供程序是否应在身份提供程序发起的登录期间将
RelayState
参数视为 Kibana 中的深层链接。默认情况下,此设置设置为false
。RelayState
中指定的链接应为相对的、URL 编码的 Kibana URL。 例如,RelayState
参数中的/app/dashboards#/list
链接应如下所示:RelayState=%2Fapp%2Fdashboards%23%2Flist
。
OpenID Connect 身份验证提供程序设置
编辑除了对所有提供程序都有效的设置之外,您还可以指定以下设置
匿名身份验证提供程序设置
编辑除了对所有提供程序都有效的设置之外,您还可以指定以下设置
每个 Kibana 实例只能配置一个匿名提供程序。
有关详细信息,请参阅匿名身份验证。
HTTP 身份验证设置
编辑在极少数情况下,您可能需要更改这些设置。 有关详细信息,请参阅HTTP 身份验证。
- xpack.security.authc.http.enabled
- 确定是否应启用 HTTP 身份验证。默认情况下,此设置设置为
true
。 - xpack.security.authc.http.autoSchemesEnabled
- 确定在 HTTP 身份验证期间是否应自动支持已启用的身份验证提供程序使用的 HTTP 身份验证方案。默认情况下,此设置设置为
true
。 - xpack.security.authc.http.schemes[]
- Kibana HTTP 身份验证应支持的 HTTP 身份验证方案列表。默认情况下,此设置设置为
['apikey', 'bearer']
,以支持使用ApiKey
和Bearer
方案进行 HTTP 身份验证。
登录用户界面设置
编辑您可以在 kibana.yml
文件中配置以下设置。
配置默认访问协议
编辑您可以在 kibana.yml
文件中配置以下设置。
- xpack.security.accessAgreement.message
- 此设置以 Markdown 格式指定访问协议文本,该文本将用作所有未指定
xpack.security.authc.providers.<提供程序类型>.<提供程序名称>.accessAgreement.message
值的提供程序的默认访问协议。 有关详细信息,请参阅访问协议。
会话和 Cookie 安全设置
编辑您可以在 kibana.yml
文件中配置以下设置。
- xpack.security.cookieName
- 设置用于会话的 Cookie 的名称。默认值为
"sid"
。 - xpack.security.encryptionKey
- 一个任意的、长度为 32 个字符或更长的字符串,用于加密会话信息。 不要 将此密钥暴露给 Kibana 的用户。默认情况下,会在内存中自动生成一个值。如果使用该默认行为,则在 Kibana 重启时所有会话都将失效。此外,如果 Kibana 的高可用性部署中此设置对于所有 Kibana 实例都不相同,则会导致 Kibana 出现意外行为。
- xpack.security.secureCookies
- 设置会话 Cookie 的
secure
标志。默认值为false
。如果server.ssl.enabled
设置为true
,则会自动设置为true
。如果 SSL 在 Kibana 外部配置(例如,您正在通过负载均衡器或代理路由请求),请将其设置为true
。 - xpack.security.sameSiteCookies
- 设置会话 Cookie 的
SameSite
属性。这允许您声明您的 Cookie 应限制为第一方或同站点上下文。有效值为Strict
、Lax
、None
。默认情况下,此值未设置,现代浏览器会将其视为Lax
。如果您在现代浏览器的 iframe 中嵌入了 Kibana,则可能需要将其设置为None
。将此值设置为None
需要通过设置xpack.security.secureCookies
:true
,通过安全连接发送 Cookie。 - xpack.security.session.idleTimeout
-
确保用户会话在不活动一段时间后过期。强烈建议同时使用此设置和
xpack.security.session.lifespan
。您还可以为每个提供程序单独指定此设置。如果将其设置为0
,则会话永远不会因不活动而过期。默认情况下,此值为 3 天。使用
<计数>[ms|s|m|h|d|w|M|Y]
字符串(例如,20m、24h、7d、1w)。 - xpack.security.session.lifespan
-
确保用户会话在定义的时间段后过期。此行为也称为“绝对超时”。如果将其设置为
0
,则用户会话可能会无限期地保持活动状态。强烈建议同时使用此设置和xpack.security.session.idleTimeout
。您还可以为每个提供程序单独指定此设置。默认情况下,本地安装的此值为 30 天,Elastic Cloud 安装的此值为 24 小时。使用
<计数>[ms|s|m|h|d|w|M|Y]
字符串(例如,20m、24h、7d、1w)。 - xpack.security.session.cleanupInterval
-
设置 Kibana 尝试从会话索引中删除过期和无效会话的时间间隔。默认情况下,此值为 1 小时。最小值为 10 秒。
使用
<计数>[ms|s|m|h|d|w|M|Y]
字符串(例如,20m、24h、7d、1w)。 - xpack.security.session.concurrentSessions.maxSessions
- 设置每个用户在任何给定时间允许激活的最大会话数。默认情况下,不应用限制。如果设置,此选项的值应为
1
和1000
之间的整数。当超出限制时,最早的会话将自动失效。
加密的已保存对象设置
编辑这些设置控制包含敏感数据的已保存对象的加密。有关更多详细信息,请参阅保护已保存的对象。
- xpack.encryptedSavedObjects.encryptionKey
- 一个至少 32 个字符的任意字符串,用于加密已保存对象的敏感属性,然后再将它们存储在 Elasticsearch 中。如果未设置,Kibana 将在启动时生成一个随机密钥,但在您显式设置加密密钥之前,某些功能将不可用。
- xpack.encryptedSavedObjects.keyRotation.decryptionOnlyKeys
- 先前使用的加密密钥的可选列表。与
xpack.encryptedSavedObjects.encryptionKey
一样,这些密钥的长度必须至少为 32 个字符。Kibana 不使用这些密钥进行加密,但可能仍然需要它们来解密某些现有的已保存对象。如果您希望更改加密密钥,但不希望失去对先前使用不同密钥加密的已保存对象的访问权限,请使用此设置。
审计日志记录设置
编辑您可以启用审计日志记录以支持合规性、责任性和安全性。启用后,Kibana 将捕获
- 谁执行了操作
- 执行了什么操作
- 操作何时发生
有关更多详细信息和审计事件的参考,请参阅审计日志。
- xpack.security.audit.enabled
-
设置为
true
以启用审计日志记录。 默认值:false
例如:
- xpack.security.audit.appender
- 可选。指定应将审计日志写入何处以及应如何格式化。如果未指定 appender,则将使用默认 appender(请参见上文)。
- xpack.security.audit.appender.type
-
必需。指定应将审计日志写入何处。允许的值为
console
、file
或rolling-file
。有关 appender 的特定设置,请参阅文件 appender 和滚动文件 appender。
- xpack.security.audit.appender.layout.type
-
必需。指定应如何格式化审计日志。允许的值为
json
或pattern
。有关布局的特定设置,请参阅模式布局。
我们建议使用
json
格式,以便使用 Filebeat 将 Kibana 审计日志提取到 Elasticsearch 中。
文件 appender
编辑file
appender 写入文件,可以使用以下设置进行配置
- xpack.security.audit.appender.fileName
- 必需。应将日志文件写入的完整文件路径。
滚动文件 appender
编辑rolling-file
appender 写入文件,并在触发特定策略时使用滚动策略对其进行轮换
大小限制触发策略
编辑当文件达到一定大小时,size-limit
触发策略将轮换文件
- xpack.security.audit.appender.policy.size
- 在执行滚动之前,日志文件应达到的最大大小。默认值:
100mb
时间间隔触发策略
编辑time-interval
触发策略将按照给定的时间间隔轮换文件
- xpack.security.audit.appender.policy.interval
- 应多久执行一次滚动。默认值:
24h
- xpack.security.audit.appender.policy.modulate
- 是否应调整间隔以使下一次滚动发生在间隔边界上。默认值:
true
数字滚动策略
编辑numeric
滚动策略将在滚动时将给定的模式附加到日志文件,并将保留固定数量的滚动文件
- xpack.security.audit.appender.strategy.pattern
- 在滚动时附加到文件名的后缀。必须包括
%i
。默认值:-%i
- xpack.security.audit.appender.strategy.max
- 要保留的最大文件数。达到此数量后,将删除最旧的文件。默认值:
7
模式布局
编辑pattern
布局输出一个字符串,该字符串使用带有特殊占位符的模式进行格式化,这些占位符将替换为实际日志消息中的数据
- xpack.security.audit.appender.layout.pattern
- 可选。指定应如何格式化日志行。默认值:
[%date][%level][%logger]%meta %message
- xpack.security.audit.appender.layout.highlight
- 可选。设置为
true
以启用使用颜色突出显示日志消息。
忽略过滤器
编辑- xpack.security.audit.ignore_filters[]
-
确定应从审计日志中排除哪些事件的过滤器列表。如果至少有一个提供的过滤器匹配,则将过滤掉事件。
例如:
- xpack.security.audit.ignore_filters[].actions[]
- 与审计事件的
event.action
字段匹配的值列表。有关可用事件的列表,请参阅审计日志。 - xpack.security.audit.ignore_filters[].categories[]
- 与审计事件的
event.category
字段匹配的值列表。有关允许的值,请参阅ECS 分类字段。 - xpack.security.audit.ignore_filters[].outcomes[]
- 与审计事件的
event.outcome
字段匹配的值的列表。有关允许的值,请参阅 ECS 结果字段。 - xpack.security.audit.ignore_filters[].spaces[]
- 与审计事件的
kibana.space_id
字段匹配的值的列表。这表示事件发生的空间 ID。 - xpack.security.audit.ignore_filters[].types[]
- 与审计事件的
event.type
字段匹配的值的列表。有关允许的值,请参阅 ECS 类型字段。 - xpack.security.audit.ignore_filters[].users[]
- 与审计事件的
user.name
字段匹配的值的列表。这表示与审计事件关联的username
。