更新安全配置 API
1.0 版引入
更新安全配置 API 直接通过 REST API 创建或更新安全插件的配置。此配置管理核心安全设置,包括身份验证方法、授权规则和访问控制。
此操作很容易破坏您现有的安全配置。我们强烈建议使用 securityadmin.sh
脚本,该脚本包含验证和安全措施,以防止配置错误。
端点
PUT /_plugins/_security/api/securityconfig/config
请求正文字段
请求正文是必需的。它是一个包含以下字段的 JSON 对象。
属性 | 必需 | 数据类型 | 描述 |
---|---|---|---|
dynamic | 必需 | 对象 | 包含所有安全配置设置的主要配置对象。 |
请求正文字段:dynamic
dynamic
是一个包含以下字段的 JSON 对象。
属性 | 数据类型 | 描述 |
---|---|---|
auth_failure_listeners | 对象 | 处理身份验证失败的配置,包括阈值和操作。 |
authc | 对象 | 定义用户身份验证方式的身份验证配置域。更多信息请参见 authc。 |
authz | 对象 | 定义在使用 LDAP 进行身份验证时如何提取后端角色的授权配置。更多信息请参见 authz。 |
do_not_fail_on_forbidden | 布尔型 | 当 true 时,返回空结果而不是禁止错误。此时,失败信息会存储在应用程序日志中。 |
do_not_fail_on_forbidden_empty | 布尔型 | 与 do_not_fail_on_forbidden 类似,但针对空结果有特定的行为。 |
filtered_alias_mode | 字符串 | 控制文档字段过滤如何应用于别名。 |
hosts_resolver_mode | 字符串 | 确定如何为安全操作执行主机名解析。 |
http | 对象 | HTTP 特定的安全配置。 |
on_behalf_of | 对象 | 为用户会话期间配置临时访问令牌(高级)。 |
kibana | 对象 | OpenSearch Dashboards 集成的配置。 |
respect_request_indices_options | 布尔型 | 当 true 时,尊重请求中指定的索引选项。 |
请求示例
以下示例更新安全配置,以配置基本身份验证和内部用户数据库
PUT /_plugins/_security/api/securityconfig/config
{
"dynamic": {
"filtered_alias_mode": "warn",
"disable_rest_auth": false,
"disable_intertransport_auth": false,
"respect_request_indices_options": false,
"opensearch-dashboards": {
"multitenancy_enabled": true,
"server_username": "kibanaserver",
"index": ".opensearch-dashboards"
},
"http": {
"anonymous_auth_enabled": false
},
"authc": {
"basic_internal_auth_domain": {
"http_enabled": true,
"transport_enabled": true,
"order": 0,
"http_authenticator": {
"challenge": true,
"type": "basic",
"config": {}
},
"authentication_backend": {
"type": "intern",
"config": {}
},
"description": "Authenticate via HTTP Basic against internal users database"
}
},
"auth_failure_listeners": {},
"do_not_fail_on_forbidden": false,
"multi_rolespan_enabled": true,
"hosts_resolver_mode": "ip-only",
"do_not_fail_on_forbidden_empty": false
}
}
示例响应
{
"status": "OK",
"message": "Configuration updated."
}
响应正文字段
响应正文是一个包含以下字段的 JSON 对象。
属性 | 数据类型 | 描述 |
---|---|---|
status | 字符串 | 请求的状态。成功请求返回“OK”。 |
message | 字符串 | 描述操作结果的消息。 |
使用注意事项
更新配置 API 允许您直接修改安全插件的核心配置,但这伴随着潜在的风险
-
首选
securityadmin.sh
:在大多数情况下,您应该使用securityadmin.sh
脚本,该脚本包含验证和安全措施,以防止配置错误。 -
备份配置:在进行更改之前,请务必备份您当前的安全配置。
-
访问控制:仅允许受信任的管理员访问此 API,因为它可能会禁用整个集群的安全配置。
-
测试:在将安全配置更改部署到生产环境之前,请在开发环境中进行测试。
-
完整配置:更新时必须提供完整的配置,因为部分更新会替换整个配置。
-
验证:此 API 的验证功能有限,因此错误的配置可能直到引起操作问题时才能被发现。
启用此 API
默认情况下,出于安全原因,此 API 已禁用。要启用它,您需要
- 更新安全插件的
config.yml
文件。 - 添加设置
plugins.security.restapi.endpoints_disabled.securityconfig: "false"
。 - 重启您的 OpenSearch 集群。
由于潜在的安全隐患,通常不建议在生产环境中启用此 API。