INFINI Gateway——为 Elasticsearch 无缝添加代理和基础安全

110 阅读2分钟

为 Elasticsearch 无缝添加代理和基础安全#

INFINI Gateway——为 Elasticsearch 无缝添加代理和基础安全

如果你的 Elasticsearch 版本比较多或者比较旧,或者没有设置 TLS 和身份信息,那么任何人都有可能直接访问 Elasticsearch,而使用极限网关可以快速的进行修复。

使用 Elasticsearch 过滤器来转发请求#

首先定义一个 Elasticsearch 的资源,如下:

elasticsearch:
- name: prod
  enabled: true
  endpoint: http://192.168.3.201:9200
复制代码

然后可以使用如下的过滤器来转发请求到上面定义的 Elasticsearch 资源,名称为 prod:

  - elasticsearch:
      elasticsearch: prod  
复制代码

有关该过滤器的更多详情,请参考文档: elasticsearch filter

添加一个简单的身份验证#

我们进行添加一个基础的身份验证,来限制目标集群的访问

  - basic_auth:
      valid_users:
        medcl: passwd
复制代码

开启 TLS#

如果设置了身份,但是没有设置 TLS 也是不行的,因为 HTTP 是明文传输协议,可以非常容易泄露密码,配置如下:

  - name: my_es_entry
    enabled: true
    router: my_router
    max_concurrency: 10000
    network:
      binding: 0.0.0.0:8000
    tls:
      enabled: true
复制代码

通过地址 https://localhost:8000 就可以访问到 prod 的 Elasticsearch 集群。

注意的是,这里监听的地址是 0.0.0.0,代表本机所有网卡上的 IP 都进行了监听, 为了安全起见,你可能需要修改为只监听本地地址或者指定的网卡 IP 地址。

兼容 HTTP 访问#

如果存在遗留的系统没有办法切换到新集群的,可以提供一个新的端口来进行 HTTP 的访问:

  - name: my_unsecure_es_entry
    enabled: true
    router: my_router
    max_concurrency: 10000
    network:
      binding: 0.0.0.0:8001
    tls:
      enabled: false
复制代码

通过地址 http://localhost:8001 就可以访问到 prod 的 Elasticsearch 集群。

完整配置如下#

elasticsearch:
- name: prod
  enabled: true
  endpoint: http://192.168.3.201:9200

entry:
  - name: my_es_entry
    enabled: true
    router: my_router
    max_concurrency: 10000
    network:
      binding: 0.0.0.0:8000
    tls:
      enabled: true
  - name: my_unsecure_es_entry
    enabled: true
    router: my_router
    max_concurrency: 10000
    network:
      binding: 0.0.0.0:8001
    tls:
      enabled: false

flow:
  - name: default_flow
    filter:
      - basic_auth:
          valid_users:
            medcl: passwd
      - elasticsearch:
          elasticsearch: prod  
router:
  - name: my_router
    default_flow: default_flow
复制代码

效果如下#

现在使用网关来访问 Elasticsearch 就需要登陆了,如下:

INFINI Gateway——为 Elasticsearch 无缝添加代理和基础安全

INFINI Gateway——为 Elasticsearch 无缝添加代理和基础安全


作者:极限实验室
链接:juejin.cn/post/710083… 来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。