全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 ET大脑 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件

yml配置

更新时间:2018-07-30 10:56:04

自定义CORS访问(跨域)

如果需了解更多设置,请参见Elasticsearch 官方网站,查看 HTTP 相关信息。

配置信息

  • 表格内的设置信息,是阿里云Elasticsearch 为支持 HTTP 协议,开放的自定义配置。
  • 以下字段配置仅支持静态配置,不支持热部署。如您想生效以下某项配置,请将配置信息写入 elasticsearch.yml 文件。
  • 以下配置依赖于集群网络设定。( Network settings
配置项 描述
http.cors.enabled 跨域资源共享配置项。可 启用禁用 跨域资源访问。即Elasticsearch允许接收其他域资源下的浏览器向其发送请求. 设置为 true 即可使Elasticsearch处理 OPTIONS CORS请求 。
如果发送请求中的域信息已在http.cors.allow-origin 中声明,那Elasticsearch将会在头信息中附加 Access-Control-Allow-Origin 以响应跨域请求。设置为false (默认缺省值为false)即可使Elasticsearch忽略请求头中的域信息,Elasticsearch将不会以Access-Control-Allow-Origin信息头应答,以达到禁用CORS目的。
如果客户端不支持发送附加域信息头的 pre-flight 请求,或者不校验从服务端返回的报文的头信息中的Access-Control-Allow-Origin 信息,那跨域安全访问将受到影响。
如果Elasticsearch关闭CORS支持, 则客户端只能尝试通过发送 OPTIONS请求,以了解此响应信息是否存在。
http.cors.allow-origin 域资源配置项。可设置接受来自哪些域名的请求。默认不允许且无配置。
如果在该配置值前后添加 / ,则此配置信息将被识别为正则表达式。允许您使用正则方式兼容支持HTTPHTTPs 类域请求信息。比如 /https?:\/\/localhost(:[0-9]+)?/ ,则可响应符合此正则的请求信息。 * 被认定为合法配置,可被识别为使集群支持来自 任意域名 的跨域请求,这将给Elasticsearch 集群带来 安全风险
http.cors.max-age 浏览器可发送OPTIONS 请求以获取CORS配置信息。 max-age 设置可设定浏览器对输出结果缓存保持时间。缺省设置为 1728000 秒 (20 天)。
http.cors.allow-methods 请求方法配置项。默认设置值为: OPTIONSHEADGETPOSTPUTDELETE
http.cors.allow-headers 请求头信息配置项。默认设置值为: X-Requested-With, Content-Type, Content-Length
http.cors.allow-credentials 凭证信息配置项目。是否允许响应头中返回Access-Control-Allow-Credentials 信息。设置为 true 即可返回此信息。默认设定值为 false

自定义远程索引重建(白名单)

索引重建组件支持用户在远端 Elasticsearch集群,进行重建数据索引。此特性在您所能找到的任意远程Elasticsearch版本的服务中均可工作。此设置将允许您通过从陈旧的版本服务中索引数据到当前发布版本。

  1. POST _reindex
  2. {
  3. "source": {
  4. "remote": {
  5. "host": "http://otherhost:9200",
  6. "username": "user",
  7. "password": "pass"
  8. },
  9. "index": "source",
  10. "query": {
  11. "match": {
  12. "test": "data"
  13. }
  14. }
  15. },
  16. "dest": {
  17. "index": "dest"
  18. }
  19. }
  • host必须包含 支持协议域名端口 等信息,例如https://otherhost:9200

  • usernamepassword 为可选参数,如您所请求的远端Elasticsearch服务需使用 Basic Authorization,请在请求中一并提供此参数信息。使用Basic Authorization 鉴权,请使用https 协议,否则密码信息将以文本形式进行传输。

  • 远程主机地址需在 elasticsearch.yaml中使用 reindex.remote.whitelist 属性进行声明,方可在远程使用此API功能。允许以 hostport 组合,并使用逗号分隔多个主机配置(例如:otherhost:9200, another:9200, 127.0.10.**:9200, localhost:**)。白名单不识别协议信息,只使用主机和端口信息用于实现安全策略设定。

  • 如果机器地址信息,已在白名单中设定,将不会验证和修改query,而是直接发送请求至远端服务。

注意

  • 从远端集群索引数据,不支持 手动切片自动切片。详情请参见 手动切片自动切片

批量设定

远端服务使用堆缓存索引数据,默认最大设定值为 100mb。如果远端索引中包含大文档,请您将批量设定值设置为较小参数。

以下示例批量数值为10,此为最小值:

  1. POST _reindex
  2. {
  3. "source": {
  4. "remote": {
  5. "host": "http://otherhost:9200"
  6. },
  7. "index": "source",
  8. "size": 10,
  9. "query": {
  10. "match": {
  11. "test": "data"
  12. }
  13. }
  14. },
  15. "dest": {
  16. "index": "dest"
  17. }
  18. }

超时时间

  • 使用socket_timeout ,设定socket 读取超时时间,默认超时为 30s
  • 使用connect_timeout ,设定连接超时时间,默认超时为 1s

以下示例socket 读取超时为1分钟,连接超时时间为10秒:

  1. POST _reindex
  2. {
  3. "source": {
  4. "remote": {
  5. "host": "http://otherhost:9200",
  6. "socket_timeout": "1m",
  7. "connect_timeout": "10s"
  8. },
  9. "index": "source",
  10. "query": {
  11. "match": {
  12. "test": "data"
  13. }
  14. }
  15. },
  16. "dest": {
  17. "index": "dest"
  18. }
  19. }

自定义Accesslog

开启审计

审计索引配置项目如下。

  1. xpack.security.audit.index.bulk_size: 5000
  2. xpack.security.audit.index.events.emit_request_body: false
  3. xpack.security.audit.index.events.exclude: run_as_denied,anonymous_access_denied,realm_authentication_failed,access_denied,connection_denied
  4. xpack.security.audit.index.events.include: authentication_failed,access_granted,tampered_request,connection_granted,run_as_granted
  5. xpack.security.audit.index.flush_interval: 180s
  6. xpack.security.audit.index.rollover: hourly
  7. xpack.security.audit.index.settings.index.number_of_replicas: 1
  8. xpack.security.audit.index.settings.index.number_of_shards: 10

索引审计输出

阿里云ES实例不支持查看存盘的请求相关log文件,因此如果您想了解阿里云ES实例请求相关信息(例如access_log),您需要在控制台中开启阿里云ES实例对应accesslog索引功能。

修改生效后, accesslog将输出到阿里云ES实例中以.security_audit_log-*开头的索引名称中供您查看。

yml参数配置accesslog

审计日志索引配置详析

注意:

  • 您无法实现对审计过程中的信息进行过滤,当您的审计事件中包含request body信息时,有可能在文本中暴露敏感信息。

  • 当设置将审计日志计入索引中,将占用您的阿里云ES实例存储空间,因无自动过期清除策略,需要您手动触发清除陈旧审计日志索引。

特性 默认设置 描述
xpack.security.audit.index.bulk_size 1000 控制审计事件完成一次写入动作并归档到文件的文档数量。
xpack.security.audit.index.flush_interval 1s 控制缓冲事件刷新到索引的频率。
xpack.security.audit.index.rollover daily 控制滚动构建到新索引的频率: hourlydailyweekly, 或者 monthly
xpack.security.audit.index.events.include anonymous_access_deniedauthentication_failedrealm_authentication_failedaccess_grantedaccess_deniedtampered_requestconnection_grantedconnection_deniedrun_as_grantedrun_as_denied 控制何种审计事件可以被计入到索引中。完整列单请参 审计事件类型
xpack.security.audit.index.events.exclude 构建索引过程中排除的审计事件。
xpack.security.audit.index.events.emit_request_body false 当触发明确的事件类型(比如 authentication_failed),是否忽略或包含以REST发送的请求体。

审计索引设置

您也可以对存储审计日志的索引进行配置,将以 xpack.security.audit.index.settings 为命名空间,配置在elasticsearch.yml 文件中。

以下设置构建审计索引的分片副本均为1

  1. xpack.security.audit.index.settings:
  2. index:
  3. number_of_shards: 1
  4. number_of_replicas: 1

注意:

如过您希望通过传入参数配置生成审计索引,请在开启审计索引的同时传入此配置,在阿里云ES实例完成变更后,审计索引将会出现在您的阿里云ES实例中。否则阿里云ES实例审计日志将以默认number_of_shards: 5,number_of_replicas: 1进行设置。

审计日志索引至远端集群

该配置暂不开放。

自定义线程池大小

可以通过自定义thread_pool.bulk.queue_sizethread_pool.search.queue_size配置,分别调整写入文档和搜索线程池大小。

以下设置写入文档和搜索线程池大小为200

  1. thread_pool.bulk.queue_size: 200
  2. thread_pool.search.queue_size: 200
本文导读目录