ES 数据太敏感不让看,怎么办?
2023/7/18 21:22:10
本文主要是介绍ES 数据太敏感不让看,怎么办?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在使用 ES 的过程中,如果 ES 集群中存放的是敏感数据,是不能够随便供人查看的。什么?在排查故障?那也不行,合规高于一切。
不知道大家有没有遇到过上面描述的情景,或者如果是你遇到了,你会怎么办呢?
我们常常讲,解决问题要抓住问题的本质。人类的本质是复读机,上述问题的本质是"敏感"。
既然问题的本质是数据敏感,那就把敏感数据变成普通数据。这样既符合了合规要求,也促进大家工作。
话不多说,我们 demo。
在下面的 demo 过程中,我们主要用到 easysearch,不为别的,因为它自带脱敏功能。
准备敏感数据
下面的数据中,字段 description 和 country 是敏感的。受限用户查看时,敏感数据显示脱敏后的内容。
POST movies/_doc/1 { "year": 2023, "title": "This is a movie", "description":"我是敏感数据" } POST movies/_doc/2 { "year": 2023, "title": "What r u looking at", "description":"我是敏感数据", "country":"我是敏感数据" }
建立 hash 脱敏角色并赋给用户
默认情况下,easysearch 安全模块使用 BLAKE2b 算法,但你可以使用 JVM 提供的任何哈希算法。此列表通常包括 MD5、SHA-1、SHA-384 和 SHA-512。
此次测试,我们就用默认的算法,建立一个 masked_movie 角色。该角色只能查看 movies 索引,且 description 和 country 字段会被脱敏查看,脱敏方式是默认的 BLAKE2b 算法。
PUT _security/role/masked_movie { "cluster": [], "indices": [{ "names": ["movies"], "field_mask": ["description","country"], "privileges": ["read"] }] } PUT _security/user/movie-user { "password": "password", "roles": ["masked_movie"] }
Hash 脱敏效果
受限用户查看效果
高权用户查看效果
像这样切换用户的操作,在生产环境中其实也没这么简单。生产的密码不能随便告知他人,甚至不能通过口头、通讯软件来传递。针对这种情况,easysearch 有个身份模拟功能,可配置一个用户能模拟其他用户来访问 ES。
配置好后,我就能用 admin 直接模拟 movie-user 用户了(-H “security_run_as:movie-user”)。
效果如下:
相关链接
https://www.infinilabs.com/docs/latest/easysearch/references/security/access-control/run-as/
正则脱敏
除了使用哈希,还可以使用一个或多个正则表达式来替换字符串从而达到字段脱敏的效果。语法是 :://:: 。如果使用多个正则表达式,则结果将从左向右传递,就像 shell 中的管道操作一样。
我们再建立一个正则脱敏的角色和用户,让敏感数据只显示第一个汉字。
PUT _security/role/masked_movie_re { "cluster": [], "indices": [{ "names": ["movies"], "field_mask": [ "description::/(.)(.*)/::$1******", "country::/(.)(.*)/::$1******" ], "privileges": ["read"] }] } PUT _security/user/movie-user-re { "password": "password", "roles": ["masked_movie_re"] }
正则脱敏效果
受限用户查看效果
流量分析与脱敏
大家知道我们还有个产品叫 Infini Gateway,它可做 ES 流量分析。在进行流量分析时,会抓取请求的内容和返回。由于"脱敏"是在 easysearch 里完成的,所以 Gateway 记录的数据,已经是脱敏后的了。
我们来看一下,把访问的 url 换成网关的端口。
curl -ku movie-user-re:password http://localhost:8000/movies/_search?pretty
查看 Gateway 记录的数据
嗯,香!
好了,这次 demo 到这里就结束了。大家有什么好的想法、需要解决的场景,欢迎交流。
这篇关于ES 数据太敏感不让看,怎么办?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14使用AWS Lambda和S3打造智能文件整理器 - (动手搭建系列)
- 2024-11-14Netflix简化营收基础设施中的合同管理工具
- 2024-11-142024年必备的6款开源Terraform神器
- 2024-11-14Spin 3.0来啦:全新功能让你的无服务器Wasm应用开发更上一层楼
- 2024-11-14如何高效管理项目?小团队到大企业的多功能项目管理工具推荐
- 2024-11-1333 张高清大图,带你玩转 KubeSphere 4.1.2 部署与扩展组件安装
- 2024-11-11Spark 新作《循序渐进 Spark 大数据应用开发》简介
- 2024-11-11KubeSphere 社区双周报| 2024.10.25-11.07
- 2024-11-11云原生周刊:Istio 1.24.0 正式发布
- 2024-11-10一个故事,为你理清云开发服务的选择思路