安全设置
安全插件提供了多个 YAML 配置文件,用于存储必要的设置,这些设置定义了安全插件管理集群中的用户、角色和活动的方式。有关安全插件配置文件的完整列表,请参阅修改 YAML 文件。
以下部分描述了 opensearch.yml
中的安全相关设置。您可以在 <OPENSEARCH_HOME>/config/opensearch.yml
中找到 opensearch.yml
。要了解有关静态和动态设置的更多信息,请参阅配置 OpenSearch。
常用设置
安全插件支持以下常用设置
-
plugins.security.nodes_dn
(静态):指定一个 distinguished names (DNs) 列表,表示集群中的其他节点。此设置支持通配符和正则表达式。当plugins.security.nodes_dn_dynamic_config_enabled
为true
时,DNs 列表除了 YAML 配置之外,还会从安全索引中读取。如果此设置配置不正确,集群将无法形成,因为节点将无法相互信任,并导致以下错误:Transport client authentication no longer supported
。 -
plugins.security.nodes_dn_dynamic_config_enabled
(静态):与cross_cluster
用例相关,在此类用例中,需要管理允许列表中的nodes_dn
,而无需在每次配置新的cross_cluster
远程时重启节点。将nodes_dn_dynamic_config_enabled
设置为true
可启用**超级管理员可调用**的 Distinguished Names API,该 API 提供动态更新或检索nodes_dn
的方法。此设置仅在未设置plugins.security.cert.intercluster_request_evaluator_class
时有效。默认为false
。 -
plugins.security.authcz.admin_dn
(静态):定义应分配管理员权限的证书的 DN。必需。 plugins.security.roles_mapping_resolution
(静态):定义后端角色如何映射到安全角色。支持以下值:MAPPING_ONLY
(默认):映射必须在roles_mapping.yml
中明确配置。BACKENDROLES_ONLY
:后端角色直接映射到安全角色。roles_mapping.yml
中的设置无效。BOTH
:后端角色直接和通过roles_mapping.yml
均映射到安全角色。
-
plugins.security.dls.mode
(静态):设置文档级安全性 (DLS) 评估模式。默认为adaptive
。请参阅如何设置 DLS 评估模式。 -
plugins.security.compliance.salt
(静态):用于生成字段掩码哈希值的盐。必须至少包含 32 个字符。只允许 ASCII 字符。可选。 -
plugins.security.compliance.immutable_indices
(静态):标记为不可变索引中的文档遵循一次写入、多次读取的范式。在这些索引中创建的文档无法更改,因此是不可变的。 -
config.dynamic.http.anonymous_auth_enabled
(静态):启用匿名身份验证。这将导致所有 HTTP 身份验证器不进行质询。默认为false
。 http.detailed_errors.enabled
(静态):为针对 OpenSearch 集群执行的 REST 调用启用详细错误消息。如果设置为true
,则提供root_cause
以及错误代码。默认为true
。
REST 管理 API 设置
安全插件支持以下 REST 管理 API 设置
-
plugins.security.restapi.roles_enabled
(静态):为列出的角色启用对 REST 管理 API 的基于角色的访问。角色以逗号分隔。默认为空列表(不允许任何角色访问 REST 管理 API)。请参阅API 的访问控制。 -
plugins.security.restapi.endpoints_disabled.<role>.<endpoint>
(静态):为角色禁用特定的端点及其 HTTP 方法。此设置的值由 HTTP 方法数组组成。例如:plugins.security.restapi.endpoints_disabled.all_access.ACTIONGROUPS: ["PUT","POST","DELETE"]
。默认情况下,允许所有端点和方法。现有端点包括ACTIONGROUPS
、CACHE
、CONFIG
、ROLES
、ROLESMAPPING
、INTERNALUSERS
、SYSTEMINFO
、PERMISSIONSINFO
和LICENSE
。请参阅API 的访问控制。 -
plugins.security.restapi.password_validation_regex
(静态):指定一个正则表达式来设置登录密码的条件。有关更多信息,请参阅密码设置。 -
plugins.security.restapi.password_validation_error_message
(静态):指定当密码未通过验证时加载的错误消息。此设置与plugins.security.restapi.password_validation_regex
结合使用。 -
plugins.security.restapi.password_min_length
(静态):在使用基于分数的密码强度估算器时,设置密码长度的最小字符数。默认值为 8。这也是最小长度。有关更多信息,请参阅密码设置。 -
plugins.security.restapi.password_score_based_validation_strength
(静态):设置一个阈值以确定密码是强还是弱。有效值为fair
、good
、strong
和very_strong
。此设置与plugins.security.restapi.password_min_length
结合使用。 -
plugins.security.unsupported.restapi.allow_securityconfig_modification
(静态):启用配置 API 的 PUT 和 PATCH 方法。
高级设置
安全插件支持以下高级设置
-
plugins.security.authcz.impersonation_dn
(静态):启用传输层模拟。这允许 DN 模拟其他用户。请参阅用户模拟。 -
plugins.security.authcz.rest_impersonation_user
(静态):启用 REST 层模拟。这允许用户模拟其他用户。请参阅用户模拟。 -
plugins.security.allow_default_init_securityindex
(静态):当设置为true
时,如果索引不存在,OpenSearch Security 将自动使用/config
目录中的文件初始化配置索引。这将使用众所周知的默认密码。仅在私有网络/环境中可用。
-
plugins.security.allow_unsafe_democertificates
(静态):当设置为true
时,OpenSearch 将使用演示证书启动。这些证书仅用于演示目的。这些证书是众所周知的,因此对生产环境不安全。仅在私有网络/环境中可用。
-
plugins.security.system_indices.permission.enabled
(静态):启用系统索引权限功能。当设置为true
时,该功能被启用,具有修改角色权限的用户可以创建包含授予系统索引访问权限的角色。当设置为false
时,该权限被禁用,只有具有管理员证书的管理员才能更改系统索引。默认情况下,在新集群中,该权限设置为false
。
专家级设置
专家级设置只能由完全理解该功能的管理员配置和部署。对功能的误解可能导致安全风险、导致安全插件无法正常运行或导致数据丢失。
安全插件支持以下专家级设置
-
plugins.security.config_index_name
(静态):.opendistro_security
存储其配置的索引名称。 -
plugins.security.cert.oid
(静态):定义服务器节点证书的对象标识符 (OID)。 -
plugins.security.cert.intercluster_request_evaluator_class
(静态):指定用于评估集群间请求的org.opensearch.security.transport.InterClusterRequestEvaluator
的实现。org.opensearch.security.transport.InterClusterRequestEvaluator
的实例必须实现一个接受org.opensearch.common.settings.Settings
对象的单参数构造函数。 -
plugins.security.enable_snapshot_restore_privilege
(静态):当设置为false
时,此设置将禁用普通用户的快照恢复。在这种情况下,只接受由管理员 TLS 证书签名的快照恢复请求。当设置为默认值true
时,普通用户如果具有cluster:admin/snapshot/restore
、indices:admin/create
和indices:data/write/index
权限,则可以恢复快照。只有当快照不包含全局状态且不恢复
.opendistro_security
索引时,才能恢复快照。 -
plugins.security.check_snapshot_restore_write_privileges
(静态):当设置为false
时,将省略额外的索引检查。当设置为默认值true
时,将评估恢复快照的尝试是否具有indices:admin/create
和indices:data/write/index
权限。 -
plugins.security.cache.ttl_minutes
(静态):确定身份验证缓存超时的时间。身份验证缓存通过临时存储从后端返回的用户对象来帮助加快身份验证速度,从而使安全插件无需重复请求它们。以分钟为单位设置值。默认值为60
。通过将值设置为0
来禁用缓存。 -
plugins.security.disabled
(静态):禁用 OpenSearch 安全。禁用此插件可能会将您的配置(包括密码)暴露给公众。
-
plugins.security.protected_indices.enabled
(静态):如果设置为true
,则启用受保护索引。受保护索引比普通索引更安全。这些索引需要角色才能像其他任何传统索引一样访问,并且需要额外的角色才能可见。此设置与plugins.security.protected_indices.roles
和plugins.security.protected_indices.indices
设置结合使用。 -
plugins.security.protected_indices.roles
(静态):指定用户必须映射到的角色列表才能访问受保护的索引。 -
plugins.security.protected_indices.indices
(静态):指定要标记为受保护的索引列表。这些索引只对映射到plugins.security.protected_indices.roles
中指定角色的用户可见。满足此要求后,用户仍需映射到用于授予索引访问权限的传统角色。 -
plugins.security.system_indices.enabled
(静态):如果设置为true
,则启用系统索引。系统索引类似于安全索引,但内容未加密。配置为系统索引的索引可以由超级管理员或具有包含系统索引权限的角色的用户访问。有关系统索引的更多信息,请参阅系统索引。 -
plugins.security.system_indices.indices
(静态):用作系统索引的索引列表。此设置由plugins.security.system_indices.enabled
设置控制。 -
plugins.security.allow_default_init_securityindex
(静态):当设置为true
时,如果 OpenSearch 启动时创建安全索引失败,则将安全插件设置为其默认安全设置。默认安全设置存储在opensearch-project/security/config
目录中的 YAML 文件中。默认为false
。 -
plugins.security.cert.intercluster_request_evaluator_class
(静态):用于评估集群间通信的类。 -
plugins.security.enable_snapshot_restore_privilege
(静态):启用授予快照恢复权限。可选。默认为true
。 -
plugins.security.check_snapshot_restore_write_privileges
(静态):在创建快照时强制执行写入权限评估。默认为true
。
如果您更改以下任何密码哈希属性,则必须重新哈希所有内部密码以确保兼容性和安全性。
plugins.security.password.hashing.algorithm
: (静态):指定要使用的密码哈希算法。支持以下值:BCrypt
(默认)PBKDF2
Argon2
-
plugins.security.password.hashing.bcrypt.rounds
(静态): 指定使用BCrypt
进行密码哈希的轮数。有效值介于4
到31
之间(含)。默认值为12
。 plugins.security.password.hashing.bcrypt.minor
(静态): 指定用于密码哈希的BCrypt
算法的次要版本。支持以下值:A
B
Y
(默认)
plugins.security.password.hashing.pbkdf2.function
(静态): 指定应用于密码的伪随机函数。支持以下值:SHA1
SHA224
SHA256
(默认)SHA384
SHA512
-
plugins.security.password.hashing.pbkdf2.iterations
(静态): 指定伪随机函数应用于密码的次数。默认值为600,000
。 -
plugins.security.password.hashing.pbkdf2.length
(静态): 指定最终派生密钥的所需长度。默认值为256
。 -
plugins.security.password.hashing.argon2.iterations
: 指定算法对内存执行的遍历次数。增加此值可提高 CPU 计算时间并增强对暴力攻击的抵抗力。默认值:3
。 -
plugins.security.password.hashing.argon2.memory
: 指定哈希期间使用的内存量(以 kibibyte 为单位)。默认值:65536
(64 MiB)。 -
plugins.security.password.hashing.argon2.parallelism
: 指定用于计算的并行线程数。默认值:1
。 -
plugins.security.password.hashing.argon2.length
: 指定结果哈希输出的长度(以字节为单位)。默认值:32
。 plugins.security.password.hashing.argon2.type
: 指定要使用的 Argon2 变体。支持以下值:Argon2i
Argon2d
Argon2id
(默认)
plugins.security.password.hashing.argon2.version
: 指定要使用的 Argon2 版本。支持以下值:16
19
(默认)
审计日志设置
安全插件支持以下审计日志设置:
-
plugins.security.audit.enable_rest
(动态): 启用或禁用 REST 请求日志记录。默认值为true
(启用)。 -
plugins.security.audit.enable_transport
(动态): 启用或禁用传输层请求日志记录。默认值为false
(禁用)。 -
plugins.security.audit.resolve_bulk_requests
(动态): 启用或禁用批量请求日志记录。启用时,批量请求中的所有子请求也会被记录。默认值为false
(禁用)。 -
plugins.security.audit.config.disabled_categories
(动态): 禁用指定的事件类别。 -
plugins.security.audit.ignore_requests
(动态): 排除指定的请求不被记录。允许包含操作或 REST 请求路径的通配符和正则表达式。 -
plugins.security.audit.threadpool.size
(静态): 确定用于日志记录事件的线程池中的线程数。默认值为10
。将此值设置为0
会禁用线程池,这意味着插件会同步记录事件。 -
plugins.security.audit.threadpool.max_queue_len
(静态): 设置每个线程的最大队列长度。默认值为100000
。 -
plugins.security.audit.ignore_users
(动态): 用户数组。列表中用户的审计请求将不会被记录。 -
plugins.security.audit.type
(静态): 审计日志事件的目标。有效值包括internal_opensearch
、external_opensearch
、debug
和webhook
。 -
plugins.security.audit.config.http_endpoints
(静态):localhost
的端点列表。 -
plugins.security.audit.config.index
(静态): 审计日志索引。默认值为auditlog6
。索引可以是静态的,也可以是包含日期以便每日轮换的索引,例如"'auditlog6-'YYYY.MM.dd"
。无论哪种情况,请务必正确保护索引。 -
plugins.security.audit.config.type
(静态): 将审计日志类型指定为auditlog
。 -
plugins.security.audit.config.username
(静态): 审计日志配置的用户名。 -
plugins.security.audit.config.password
(静态): 审计日志配置的密码。 -
plugins.security.audit.config.enable_ssl
(静态): 启用或禁用审计日志记录的 SSL。 -
plugins.security.audit.config.verify_hostnames
(静态): 启用或禁用 SSL/TLS 证书的主机名验证。默认值为true
(启用)。 -
plugins.security.audit.config.enable_ssl_client_auth
(静态): 启用或禁用 SSL/TLS 客户端认证。默认值为false
(禁用)。 -
plugins.security.audit.config.cert_alias
(静态): 用于审计日志访问的证书别名。 -
plugins.security.audit.config.pemkey_filepath
(静态): 用于审计日志记录的隐私增强邮件 (PEM) 密钥的/config
相对文件路径。 -
plugins.security.audit.config.pemkey_content
(静态): 用于审计日志记录的 PEM 密钥的 base64 编码内容。这是...config.pemkey_filepath
的替代方案。 -
plugins.security.audit.config.pemkey_password
(静态): 客户端使用的 PEM 格式私钥的密码。 -
plugins.security.audit.config.pemcert_filepath
(静态): 用于审计日志记录的 PEM 证书的/config
相对文件路径。 -
plugins.security.audit.config.pemcert_content
(静态): 用于审计日志记录的 PEM 证书的 base64 编码内容。这是通过...config.pemcert_filepath
指定文件路径的替代方案。 -
plugins.security.audit.config.pemtrustedcas_filepath
(静态): 信任的根证书颁发机构的/config
相对文件路径。 -
plugins.security.audit.config.pemtrustedcas_content
(静态): 根证书颁发机构的 base64 编码内容。这是...config.pemtrustedcas_filepath
的替代方案。 -
plugins.security.audit.config.webhook.url
(静态): Webhook URL。 -
plugins.security.audit.config.webhook.format
(静态): Webhook 使用的格式。有效值包括URL_PARAMETER_GET
、URL_PARAMETER_POST
、TEXT
、JSON
和SLACK
。 -
plugins.security.audit.config.webhook.ssl.verify
(静态): 启用或禁用随任何 Webhook 请求发送的任何 SSL/TLS 证书的验证。默认值为true
(启用)。 -
plugins.security.audit.config.webhook.ssl.pemtrustedcas_filepath
(静态): 用于验证 Webhook 请求的信任证书颁发机构的/config
相对文件路径。 -
plugins.security.audit.config.webhook.ssl.pemtrustedcas_content
(静态): 用于验证 Webhook 请求的证书颁发机构的 base64 编码内容。这是...config.pemtrustedcas_filepath
的替代方案。 -
plugins.security.audit.config.log4j.logger_name
(静态): Log4j 记录器的自定义名称。 -
plugins.security.audit.config.log4j.level
(静态): 提供 Log4j 记录器的默认日志级别。有效值包括OFF
、FATAL
、ERROR
、WARN
、INFO
、DEBUG
、TRACE
和ALL
。默认值为INFO
。 -
opendistro_security.audit.config.disabled_rest_categories
(动态): 记录器要忽略的 REST 类别列表。有效值包括AUTHENTICATED
和GRANTED_PRIVILEGES
。 -
opendistro_security.audit.config.disabled_transport_categories
(动态): 记录器要忽略的传输层类别列表。有效值包括AUTHENTICATED
和GRANTED_PRIVILEGES
。
主机名验证和 DNS 查找设置
安全插件支持以下主机名验证和 DNS 查找设置:
-
plugins.security.ssl.transport.enforce_hostname_verification
(静态): 是否在传输层验证主机名。可选。默认值为true
。 -
plugins.security.ssl.transport.resolve_hostname
(静态): 是否在传输层针对 DNS 解析主机名。可选。默认值为true
。仅当启用主机名验证时才有效。
更多信息请参见 主机名验证和 DNS 查找。
客户端认证设置
安全插件支持以下客户端认证设置:
plugins.security.ssl.http.clientauth_mode
(静态): 要使用的 TLS 客户端认证模式。有效值包括OPTIONAL
(默认)、REQUIRE
和NONE
。可选。
更多信息请参见 客户端认证。
启用的密码和协议设置
安全插件支持以下启用的密码和协议设置。每个设置都必须以数组形式表示:
-
plugins.security.ssl.http.enabled_ciphers
(静态): REST 层的启用 TLS 密码套件。仅支持 Java 格式。 -
plugins.security.ssl.http.enabled_protocols
(静态): REST 层的启用 TLS 协议。仅支持 Java 格式。 -
plugins.security.ssl.transport.enabled_ciphers
(静态): 传输层的启用 TLS 密码套件。仅支持 Java 格式。 -
plugins.security.ssl.transport.enabled_protocols
(静态): 传输层的启用 TLS 协议。仅支持 Java 格式。
更多信息请参见 启用的密码和协议。
密钥库和信任库文件 — 传输层 TLS 设置
安全插件支持以下传输层 TLS 密钥库和信任库设置:
-
plugins.security.ssl.transport.keystore_type
(静态): 密钥库文件类型。可选。有效值包括JKS
或PKCS12/PFX
。默认值为JKS
。 -
plugins.security.ssl.transport.keystore_filepath
(静态): 密钥库文件路径,必须位于config
目录下,使用相对路径指定。必需。 -
plugins.security.ssl.transport.keystore_alias
(静态): 密钥库别名。可选。默认为第一个别名。 -
plugins.security.ssl.transport.keystore_password
(静态): 密钥库密码。默认值为changeit
。 -
plugins.security.ssl.transport.truststore_type
(静态): 信任库文件类型。可选。有效值包括JKS
或PKCS12/PFX
。默认值为JKS
。 -
plugins.security.ssl.transport.truststore_filepath
(静态): 信任库文件路径,必须位于config
目录下,使用相对路径指定。必需。 -
plugins.security.ssl.transport.truststore_alias
(静态): 信任库别名。可选。默认为所有证书。 -
plugins.security.ssl.transport.truststore_password
(静态): 信任库密码。默认值为changeit
。
更多关于密钥库和信任库文件的信息,请参见 传输层 TLS。
密钥库和信任库文件 — REST 层 TLS 设置
安全插件支持以下 REST 层 TLS 密钥库和信任库设置:
-
plugins.security.ssl.http.enabled
(静态): 是否在 REST 层启用 TLS。如果启用,则仅允许 HTTPS。可选。默认值为false
。 -
plugins.security.ssl.http.keystore_type
(静态): 密钥库文件类型。可选。有效值包括JKS
或PKCS12/PFX
。默认值为JKS
。 -
plugins.security.ssl.http.keystore_filepath
(静态): 密钥库文件路径,必须位于config
目录下,使用相对路径指定。必需。 -
plugins.security.ssl.http.keystore_alias
(静态): 密钥库别名。可选。默认为第一个别名。 -
plugins.security.ssl.http.keystore_password
: 密钥库密码。默认值为changeit
。 -
plugins.security.ssl.http.truststore_type
: 信任库文件类型。可选。有效值包括JKS
或PKCS12/PFX
。默认值为JKS
。 -
plugins.security.ssl.http.truststore_filepath
: 信任库文件路径,必须位于config
目录下,使用相对路径指定。必需。 -
plugins.security.ssl.http.truststore_alias
(静态): 信任库别名。可选。默认为所有证书。 -
plugins.security.ssl.http.truststore_password
(静态): 信任库密码。默认值为changeit
。
更多信息请参见 REST 层 TLS。
X.509 PEM 证书和 PKCS #8 密钥 — 传输层 TLS 设置
安全插件支持以下与 X.509 PEM 证书和 PKCS #8 密钥相关的传输层 TLS 设置:
-
plugins.security.ssl.transport.pemkey_filepath
(静态): 证书密钥文件 (PKCS #8) 的路径,必须位于config
目录下,使用相对路径指定。必需。 -
plugins.security.ssl.transport.pemkey_password
(静态): 密钥密码。如果密钥没有密码,则省略此设置。可选。 -
plugins.security.ssl.transport.pemcert_filepath
(静态): X.509 节点证书链 (PEM 格式) 的路径,必须位于config
目录下,使用相对路径指定。必需。 -
plugins.security.ssl.transport.pemtrustedcas_filepath
(静态): 根证书颁发机构 (PEM 格式) 的路径,必须位于config
目录下,使用相对路径指定。必需。
更多信息请参见 REST 层 TLS。
X.509 PEM 证书和 PKCS #8 密钥 — REST 层 TLS 设置
安全插件支持以下与 X.509 PEM 证书和 PKCS #8 密钥相关的 REST 层 TLS 设置:
-
plugins.security.ssl.http.enabled
(静态): 是否在 REST 层启用 TLS。如果启用,则仅允许 HTTPS。可选。默认值为false
。 -
plugins.security.ssl.http.pemkey_filepath
(静态): 证书密钥文件 (PKCS #8) 的路径,必须位于config
目录下,使用相对路径指定。必需。 -
plugins.security.ssl.http.pemkey_password
(静态): 密钥密码。如果密钥没有密码,则省略此设置。可选。 -
plugins.security.ssl.http.pemcert_filepath
(静态): X.509 节点证书链 (PEM 格式) 的路径,必须位于config
目录下,使用相对路径指定。必需。 -
plugins.security.ssl.http.pemtrustedcas_filepath
: 根证书颁发机构 (PEM 格式) 的路径,必须位于 config 目录下,使用相对路径指定。必需。
更多信息请参见 REST 层 TLS。
传输层安全设置
安全插件支持以下传输层安全设置:
-
plugins.security.ssl.transport.enabled
(静态): 是否在 REST 层启用 TLS。 -
plugins.security.ssl.transport.client.pemkey_password
(静态): 传输客户端使用的 PEM 格式私钥的密码。 -
plugins.security.ssl.transport.keystore_keypassword
(静态): 密钥库内密钥的密码。 -
plugins.security.ssl.transport.server.keystore_keypassword
(静态): 服务器密钥库内密钥的密码。 -
plugins.sercurity.ssl.transport.server.keystore_alias
(静态): 服务器密钥库的别名。 -
plugins.sercurity.ssl.transport.client.keystore_alias
(静态): 客户端密钥库的别名。 -
plugins.sercurity.ssl.transport.server.truststore_alias
(静态): 服务器信任库的别名。 -
plugins.sercurity.ssl.transport.client.truststore_alias
(静态): 客户端信任库的别名。 -
plugins.security.ssl.client.external_context_id
(静态): 为传输客户端提供一个 ID,以用于外部 SSL 上下文。 -
plugins.secuirty.ssl.transport.principal_extractor_class
(静态): 指定一个实现提取器的类,以便将证书的自定义部分用作主体。 -
plugins.security.ssl.http.crl.file_path
(静态): 证书吊销列表文件的文件路径。 -
plugins.security.ssl.http.crl.validate
(静态): 启用证书吊销列表 (CRL) 验证。默认值为false
(禁用)。 -
plugins.security.ssl.http.crl.prefer_crlfile_over_ocsp
(静态): 如果证书同时包含 CRL 条目和在线证书状态协议 (OCSP) 条目,是否优先选择 CRL 证书条目。可选。默认值为false
。 -
plugins.security.ssl.http.crl.check_only_end_entitites
(静态): 当设置为true
时,仅验证叶证书。默认值为true
。 -
plugins.security.ssl.http.crl.disable_ocsp
(静态): 禁用 OCSP。默认值为false
(OCSP 已启用)。 -
plugins.security.ssl.http.crl.disable_crldp
(静态): 禁用证书中的 CRL 端点。默认值为false
(CRL 端点已启用)。 -
plugins.security.ssl.allow_client_initiated_renegotiation
(静态): 启用或禁用客户端重新协商。默认值为false
(不允许客户端发起的重新协商)。
安全插件设置示例
# Common configuration settings
plugins.security.nodes_dn:
- "CN=*.example.com, OU=SSL, O=Test, L=Test, C=DE"
- "CN=node.other.com, OU=SSL, O=Test, L=Test, C=DE"
- "CN=node.example.com, OU=SSL\\, Inc., L=Test, C=DE" # escape additional comma with `\\`
plugins.security.authcz.admin_dn:
- CN=kirk,OU=client,O=client,L=test, C=de
plugins.security.roles_mapping_resolution: MAPPING_ONLY
plugins.security.ssl.transport.pemcert_filepath: esnode.pem
plugins.security.ssl.transport.pemkey_filepath: esnode-key.pem
plugins.security.ssl.transport.pemtrustedcas_filepath: root-ca.pem
plugins.security.ssl.transport.enforce_hostname_verification: false
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: esnode.pem
plugins.security.ssl.http.pemkey_filepath: esnode-key.pem
plugins.security.ssl.http.pemtrustedcas_filepath: root-ca.pem
plugins.security.allow_unsafe_democertificates: true
plugins.security.allow_default_init_securityindex: true
plugins.security.nodes_dn_dynamic_config_enabled: false
plugins.security.cert.intercluster_request_evaluator_class: # need example value for this.
plugins.security.audit.type: internal_opensearch
plugins.security.enable_snapshot_restore_privilege: true
plugins.security.check_snapshot_restore_write_privileges: true
plugins.security.cache.ttl_minutes: 60
plugins.security.restapi.roles_enabled: ["all_access", "security_rest_api_access"]
plugins.security.system_indices.enabled: true
plugins.security.system_indices.indices: [".opendistro-alerting-config", ".opendistro-alerting-alert*", ".opendistro-anomaly-results*", ".opendistro-anomaly-detector*", ".opendistro-anomaly-checkpoints", ".opendistro-anomaly-detection-state", ".opendistro-reports-*", ".opendistro-notifications-*", ".opendistro-notebooks", ".opendistro-asynchronous-search-response*"]
node.max_local_storage_nodes: 3
plugins.security.restapi.password_validation_regex: '(?=.*[A-Z])(?=.*[^a-zA-Z\d])(?=.*[0-9])(?=.*[a-z]).{8,}'
plugins.security.restapi.password_validation_error_message: "Password must be minimum 8 characters long and must contain at least one uppercase letter, one lowercase letter, one digit, and one special character."
plugins.security.allow_default_init_securityindex: true
plugins.security.cache.ttl_minutes: 60
#
# REST Management API configuration settings
plugins.security.restapi.roles_enabled: ["all_access","xyz_role"]
plugins.security.restapi.endpoints_disabled.all_access.ACTIONGROUPS: ["PUT","POST","DELETE"] # Alternative example: plugins.security.restapi.endpoints_disabled.xyz_role.LICENSE: ["DELETE"] #
# Audit log configuration settings
plugins.security.audit.enable_rest: true
plugins.security.audit.enable_transport: false
plugins.security.audit.resolve_bulk_requests: false
plugins.security.audit.config.disabled_categories: ["AUTHENTICATED","GRANTED_PRIVILEGES"]
plugins.security.audit.ignore_requests: ["indices:data/read/*","*_bulk"]
plugins.security.audit.threadpool.size: 10
plugins.security.audit.threadpool.max_queue_len: 100000
plugins.security.audit.ignore_users: ['kibanaserver','some*user','/also.*regex possible/']
plugins.security.audit.type: internal_opensearch
#
# external_opensearch settings
plugins.security.audit.config.http_endpoints: ['localhost:9200','localhost:9201','localhost:9202']
plugins.security.audit.config.index: "'auditlog6-'2023.06.15"
plugins.security.audit.config.type: auditlog
plugins.security.audit.config.username: auditloguser
plugins.security.audit.config.password: auditlogpassword
plugins.security.audit.config.enable_ssl: false
plugins.security.audit.config.verify_hostnames: false
plugins.security.audit.config.enable_ssl_client_auth: false
plugins.security.audit.config.cert_alias: mycert
plugins.security.audit.config.pemkey_filepath: key.pem
plugins.security.audit.config.pemkey_content: <...pem base 64 content>
plugins.security.audit.config.pemkey_password: secret
plugins.security.audit.config.pemcert_filepath: cert.pem
plugins.security.audit.config.pemcert_content: <...pem base 64 content>
plugins.security.audit.config.pemtrustedcas_filepath: ca.pem
plugins.security.audit.config.pemtrustedcas_content: <...pem base 64 content>
#
# Webhook settings
plugins.security.audit.config.webhook.url: "http://mywebhook/endpoint"
plugins.security.audit.config.webhook.format: JSON
plugins.security.audit.config.webhook.ssl.verify: false
plugins.security.audit.config.webhook.ssl.pemtrustedcas_filepath: ca.pem
plugins.security.audit.config.webhook.ssl.pemtrustedcas_content: <...pem base 64 content>
#
# log4j settings
plugins.security.audit.config.log4j.logger_name: auditlogger
plugins.security.audit.config.log4j.level: INFO
#
# Advanced configuration settings
plugins.security.authcz.impersonation_dn:
"CN=spock,OU=client,O=client,L=Test,C=DE":
- worf
"cn=webuser,ou=IT,ou=IT,dc=company,dc=com":
- user2
- user1
plugins.security.authcz.rest_impersonation_user:
"picard":
- worf
"john":
- steve
- martin
plugins.security.allow_default_init_securityindex: false
plugins.security.allow_unsafe_democertificates: false
plugins.security.cache.ttl_minutes: 60
plugins.security.restapi.password_validation_regex: '(?=.*[A-Z])(?=.*[^a-zA-Z\d])(?=.*[0-9])(?=.*[a-z]).{8,}'
plugins.security.restapi.password_validation_error_message: "A password must be at least 8 characters long and contain at least one uppercase letter, one lowercase letter, one digit, and one special character."
plugins.security.restapi.password_min_length: 8
plugins.security.restapi.password_score_based_validation_strength: very_strong
#
# Advanced SSL settings - use only if you understand SSL ins and outs
plugins.security.ssl.transport.client.pemkey_password: superSecurePassword1
plugins.security.ssl.transport.keystore_keypassword: superSecurePassword2
plugins.security.ssl.transport.server.keystore_keypassword: superSecurePassword3
plugins.security.ssl.http.keystore_keypassword: superSecurePassword4
plugins.security.ssl.http.clientauth_mode: REQUIRE
plugins.security.ssl.transport.enabled: true
plugins.security.ssl.transport.server.keystore_alias: my_alias
plugins.security.ssl.transport.client.keystore_alias: my_other_alias
plugins.security.ssl.transport.server.truststore_alias: trustore_alias_1
plugins.security.ssl.transport.client.truststore_alias: trustore_alias_2
plugins.security.ssl.client.external_context_id: my_context_id
plugins.security.ssl.transport.principal_extractor_class: org.opensearch.security.ssl.ExampleExtractor
plugins.security.ssl.http.crl.file_path: ssl/crl/revoked.crl
plugins.security.ssl.http.crl.validate: true
plugins.security.ssl.http.crl.prefer_crlfile_over_ocsp: true
plugins.security.ssl.http.crl.check_only_end_entitites: false
plugins.security.ssl.http.crl.disable_ocsp: true
plugins.security.ssl.http.crl.disable_crldp: true
plugins.security.ssl.allow_client_initiated_renegotiation: true
#
# Expert settings - use only if you understand their use completely: accidental values can potentially cause security risks or failures to OpenSearch Security.
plugins.security.config_index_name: .opendistro_security
plugins.security.cert.oid: '1.2.3.4.5.5'
plugins.security.cert.intercluster_request_evaluator_class: org.opensearch.security.transport.DefaultInterClusterRequestEvaluator
plugins.security.enable_snapshot_restore_privilege: true
plugins.security.check_snapshot_restore_write_privileges: true
plugins.security.cache.ttl_minutes: 60
plugins.security.disabled: false
plugins.security.protected_indices.enabled: true
plugins.security.protected_indices.roles: ['all_access']
plugins.security.protected_indices.indices: []
plugins.security.system_indices.enabled: true
plugins.security.system_indices.indices: ['.opendistro-alerting-config', '.opendistro-ism-*', '.opendistro-reports-*', '.opensearch-notifications-*', '.opensearch-notebooks', '.opensearch-observability', '.opendistro-asynchronous-search-response*', '.replication-metadata-store']