如何在 Elastic 搜索中不包含敏感数据?
How not to have sensitive data in Elastic search?
我正在为我的公司安装 ELK stack,我堂兄也在他的公司使用它,他是一名程序员所以我问他是否购买了 Xpack,他说没有因为他处理的 mysql 日志没有价值。我知道我可以购买 XPack 或使用 Nginx 来添加身份验证,但假设我不会进行任何身份验证,就像许多 elastic 用户一样,我对这种情况有几个问题。
所以我有 filebeat 将 MySQL 日志发送到 logstash,后者将它们提供给 Elastic 搜索,分析在 Kibana 中完成。
- 如何确保没有有价值的信息最终出现在日志中,同时仍然具有有意义的分析。我公司是做ERP的,有很多公司的客户,所以最起码,你在日志里会有公司ID和用户ID,这样才有有意义的数据,这不是敏感数据吗?
- 如何确保没有未经授权的用户向弹性搜索或访问 Kibana 发送 Post 请求?你 运行 他们在本地,而不是在互联网上?
- 您是否在将任何敏感的日志发送到 Filebeat 之前对其进行过滤?
我只是想了解有多少用户在没有身份验证的情况下设法 运行 ELK,同时仍然能够获得有意义的数据。
.
How to make sure that no information of value end up in the logs while still having meaningful analytics. My company develops an ERP, and has many companies as customers, so at the very least, you'll have the company ID and the user ID in the logs in order to have any meaningful data, isn't this considered sensitive data?
如果您不想在 elasticsearch 中存储敏感数据,则需要将其过滤掉或匿名化,例如,您可以使用 logstash 过滤器创建结合公司 ID 和用户 ID 字段的指纹,或者您可以从邮件中删除任何包含敏感数据的字段。
How to make sure that no unauthorized user send a Post request to elastic search or access Kibana? Do you run them locally, not on the internet?
如果没有身份验证,这几乎是不可能的,您将需要完全控制谁知道您的 elasticsearch 实例以及谁可以访问它,如果您以外的其他人可以访问您的实例,他们可以向您的实例发送请求,以避免您可以在您的服务器上使用防火墙,只允许访问特定的 IP。
即使您采取了一些预防措施,运行 不建议在生产环境中使用没有任何类型的访问控制的 Elasticsearch 实例,这非常危险。
你应该使用访问控制方法,它可以是 X-Pack、NGINX 或类似 Search Guard 的插件。
请查看 Search Guard (https://search-guard.com/)。基本版本(对于大多数用例来说已经足够,绝对比没有好)是免费和开源的(Apache 2 许可证)。
免责声明:我在 Search Guard/floragunn GmbH
工作
如果你需要授予一些访问/权限,你可以免费使用grafana而不是kibana。
对于 ES 访问,这就像任何数据库安全性一样。配置您的服务器以仅允许 9200 和 9300 上的某些 IP。
您还可以查看:https://github.com/sscarduzio/elasticsearch-readonlyrest-plugin 安全删除查询(仍然免费)。
我正在为我的公司安装 ELK stack,我堂兄也在他的公司使用它,他是一名程序员所以我问他是否购买了 Xpack,他说没有因为他处理的 mysql 日志没有价值。我知道我可以购买 XPack 或使用 Nginx 来添加身份验证,但假设我不会进行任何身份验证,就像许多 elastic 用户一样,我对这种情况有几个问题。
所以我有 filebeat 将 MySQL 日志发送到 logstash,后者将它们提供给 Elastic 搜索,分析在 Kibana 中完成。
- 如何确保没有有价值的信息最终出现在日志中,同时仍然具有有意义的分析。我公司是做ERP的,有很多公司的客户,所以最起码,你在日志里会有公司ID和用户ID,这样才有有意义的数据,这不是敏感数据吗?
- 如何确保没有未经授权的用户向弹性搜索或访问 Kibana 发送 Post 请求?你 运行 他们在本地,而不是在互联网上?
- 您是否在将任何敏感的日志发送到 Filebeat 之前对其进行过滤?
我只是想了解有多少用户在没有身份验证的情况下设法 运行 ELK,同时仍然能够获得有意义的数据。
.
How to make sure that no information of value end up in the logs while still having meaningful analytics. My company develops an ERP, and has many companies as customers, so at the very least, you'll have the company ID and the user ID in the logs in order to have any meaningful data, isn't this considered sensitive data?
如果您不想在 elasticsearch 中存储敏感数据,则需要将其过滤掉或匿名化,例如,您可以使用 logstash 过滤器创建结合公司 ID 和用户 ID 字段的指纹,或者您可以从邮件中删除任何包含敏感数据的字段。
How to make sure that no unauthorized user send a Post request to elastic search or access Kibana? Do you run them locally, not on the internet?
如果没有身份验证,这几乎是不可能的,您将需要完全控制谁知道您的 elasticsearch 实例以及谁可以访问它,如果您以外的其他人可以访问您的实例,他们可以向您的实例发送请求,以避免您可以在您的服务器上使用防火墙,只允许访问特定的 IP。
即使您采取了一些预防措施,运行 不建议在生产环境中使用没有任何类型的访问控制的 Elasticsearch 实例,这非常危险。
你应该使用访问控制方法,它可以是 X-Pack、NGINX 或类似 Search Guard 的插件。
请查看 Search Guard (https://search-guard.com/)。基本版本(对于大多数用例来说已经足够,绝对比没有好)是免费和开源的(Apache 2 许可证)。
免责声明:我在 Search Guard/floragunn GmbH
工作如果你需要授予一些访问/权限,你可以免费使用grafana而不是kibana。
对于 ES 访问,这就像任何数据库安全性一样。配置您的服务器以仅允许 9200 和 9300 上的某些 IP。
您还可以查看:https://github.com/sscarduzio/elasticsearch-readonlyrest-plugin 安全删除查询(仍然免费)。