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.<provider-type>.<provider-name>.enabled
- 确定是否应启用身份验证提供程序。默认情况下,Kibana 会在您配置其任何属性后立即启用该提供程序。
- xpack.security.authc.providers.<provider-type>.<provider-name>.order
- 提供程序在身份验证链和登录选择器 UI 中的顺序。
- xpack.security.authc.providers.<provider-type>.<provider-name>.description
- 登录选择器 UI 上显示的提供程序条目的自定义描述。
- xpack.security.authc.providers.<provider-type>.<provider-name>.hint
- 登录选择器 UI 上显示的提供程序条目的自定义提示。
- xpack.security.authc.providers.<provider-type>.<provider-name>.icon
- 登录选择器 UI 上显示的提供程序条目的自定义图标。
- xpack.security.authc.providers.<provider-type>.<provider-name>.showInSelector
-
指示提供程序是否应在登录选择器 UI 上具有条目的标志。将其设置为
false
不会从身份验证链中删除该提供程序。您无法将此设置设置为
false
用于basic
和token
身份验证提供程序。 - xpack.security.authc.providers.<provider-type>.<provider-name>.accessAgreement.message
- 以 Markdown 格式表示的访问协议文本。有关更多信息,请参阅 访问协议。
- xpack.security.authc.providers.<provider-type>.<provider-name>.session.idleTimeout
-
确保用户会话在一段时间不活动后过期。将其设置为
0
将阻止会话因不活动而过期。默认情况下,此设置等于xpack.security.session.idleTimeout
。使用
<count>[ms\|s\|m\|h\|d\|w\|M\|Y]
的字符串(例如 20m、24h、7d、1w)。 - xpack.security.authc.providers.<provider-type>.<provider-name>.session.lifespan
-
确保用户会话在定义的时间段后过期。此行为也称为“绝对超时”。如果将其设置为
0
,用户会话可能会无限期地保持活动状态。默认情况下,此设置等于xpack.security.session.lifespan
。使用
<count>[ms\|s\|m\|h\|d\|w\|M\|Y]
的字符串(例如 20m、24h、7d、1w)。
SAML 身份验证提供程序设置编辑
除了 对所有提供程序有效的设置 之外,您还可以指定以下设置
- xpack.security.authc.providers.saml.<provider-name>.realm
- 提供程序应使用的 Elasticsearch 中的 SAML 领域。
- xpack.security.authc.providers.saml.<provider-name>.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.<provider-type>.<provider-name>.accessAgreement.message
指定值的提供程序的默认访问协议。有关更多信息,请参阅 访问协议。
会话和 cookie 安全设置编辑
您可以在 kibana.yml
文件中配置以下设置。
- xpack.security.cookieName
- 设置用于会话的 cookie 的名称。默认值为
"sid"
。 - xpack.security.encryptionKey
- 用于加密会话信息的至少 32 个字符的任意字符串。请不要将此密钥公开给 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 天。使用
<count>[ms\|s\|m\|h\|d\|w\|M\|Y]
的字符串(例如 20m、24h、7d、1w)。 - xpack.security.session.lifespan
-
确保用户会话在定义的时间段后过期。此行为也称为“绝对超时”。如果将其设置为
0
,用户会话可能会无限期地保持活动状态。强烈建议使用此设置和xpack.security.session.idleTimeout
。您也可以为每个提供者分别指定此设置。默认情况下,此值为 30 天。使用
<count>[ms\|s\|m\|h\|d\|w\|M\|Y]
的字符串(例如 20m、24h、7d、1w)。 - xpack.security.session.cleanupInterval
-
设置 Kibana 尝试从会话索引中删除过期和无效会话的间隔。默认情况下,此值为 1 小时。最小值为 10 秒。
使用
<count>[ms\|s\|m\|h\|d\|w\|M\|Y]
的字符串(例如 20m、24h、7d、1w)。 - xpack.security.session.concurrentSessions.maxSessions
- 设置每个用户在任何给定时间允许具有的活动会话的最大数量。默认情况下,不应用任何限制。如果设置,此选项的值应为
1
和1000
之间的整数。当超过限制时,最旧的会话将自动失效。
加密的已保存对象设置edit
这些设置控制包含敏感数据的已保存对象的加密。有关更多详细信息,请参阅安全已保存对象。
- xpack.encryptedSavedObjects.encryptionKey
- 至少 32 个字符的任意字符串,用于在将已保存对象的敏感属性存储在 Elasticsearch 中之前对其进行加密。如果未设置,Kibana 将在启动时生成一个随机密钥,但某些功能将不可用,直到您显式设置加密密钥。
- xpack.encryptedSavedObjects.keyRotation.decryptionOnlyKeys
- 以前使用过的加密密钥的可选列表。与
xpack.encryptedSavedObjects.encryptionKey
一样,这些密钥的长度必须至少为 32 个字符。Kibana 不使用这些密钥进行加密,但可能仍然需要它们来解密一些现有的已保存对象。如果您希望更改加密密钥,但不想丢失以前使用不同密钥加密的已保存对象的访问权限,请使用此设置。
审计日志记录设置edit
您可以启用审计日志记录以支持合规性、问责制和安全性。启用后,Kibana 将捕获
- 谁执行了操作
- 执行了什么操作
- 操作发生的时间
有关更多详细信息和审计事件的参考,请参阅审计日志。
- xpack.security.audit.enabled
-
设置为
true
以启用审计日志记录`。默认值:false
例如
- xpack.security.audit.appender
- 可选。指定审计日志应写入的位置以及应如何格式化它们。如果未指定追加器,将使用默认追加器(见上文)。
- xpack.security.audit.appender.type
-
必需。指定审计日志应写入的位置。允许的值为
console
、file
或rolling-file
。 - xpack.security.audit.appender.layout.type
-
必需。指定审计日志应如何格式化。允许的值为
json
或pattern
。有关布局特定设置,请参阅模式布局。
我们建议使用
json
格式,以便使用 Filebeat 将 Kibana 审计日志摄取到 Elasticsearch 中。
文件追加器edit
file
追加器写入文件,可以使用以下设置进行配置
- xpack.security.audit.appender.fileName
- 必需。日志文件应写入的完整文件路径。
滚动文件追加器edit
rolling-file
追加器写入文件,并使用滚动策略对其进行轮换,当触发特定策略时
大小限制触发策略edit
size-limit
触发策略将在文件达到一定大小后对其进行轮换
- xpack.security.audit.appender.policy.size
- 日志文件在执行滚动之前应达到的最大大小。默认值:
100mb
时间间隔触发策略edit
time-interval
触发策略将在给定的时间间隔内对文件进行轮换
- xpack.security.audit.appender.policy.interval
- 滚动应发生的频率。默认值:
24h
- xpack.security.audit.appender.policy.modulate
- 是否应调整间隔以使下一次滚动发生在间隔边界上。默认值:
true
数字滚动策略edit
numeric
滚动策略将在滚动时使用给定模式为日志文件添加后缀,并将保留固定数量的滚动文件
- xpack.security.audit.appender.strategy.pattern
- 滚动时要追加到文件名上的后缀。必须包含
%i
。默认值:-%i
- xpack.security.audit.appender.strategy.max
- 要保留的最大文件数。达到此数量后,将删除最旧的文件。默认值:
7
模式布局edit
pattern
布局输出一个字符串,使用带有特殊占位符的模式进行格式化,这些占位符将被实际日志消息中的数据替换
- xpack.security.audit.appender.layout.pattern
- 可选。指定日志行应如何格式化。默认值:
[%date][%level][%logger]%meta %message
- xpack.security.audit.appender.layout.highlight
- 可选。设置为
true
以启用使用颜色突出显示日志消息。
忽略过滤器edit
- 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[].types[]
- 列出与审计事件的
event.type
字段匹配的值。有关允许值的列表,请参阅 ECS 类型字段。 - xpack.security.audit.ignore_filters[].outcomes[]
- 列出与审计事件的
event.outcome
字段匹配的值。有关允许值的列表,请参阅 ECS 结果字段。