Link Search Menu Expand Document Documentation Menu

更新安全配置 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 已禁用。要启用它,您需要

  1. 更新安全插件的 config.yml 文件。
  2. 添加设置 plugins.security.restapi.endpoints_disabled.securityconfig: "false"
  3. 重启您的 OpenSearch 集群。

由于潜在的安全隐患,通常不建议在生产环境中启用此 API。

剩余 350 字符

有问题?

想贡献吗?