微服务中采用开源 NoSQL 的一般怎么监权?

2020-12-03 09:02:36 +08:00
 fyooo
日常工作是做螺丝钉,没有接触过这块,好奇问问。

比如我要用 redis 之类的 NoSQL 存放数据,怎么防止非授权的访问?

我的一个想法是做一个 proxy,即部署了 Redis 的服务器,通过 iptables 之类的技术限制只有 proxy 可以访问其 IP 。把监权的逻辑放到 proxy 中,比如某数据的 Redis 只允许部分白名单的微服务访问之类,又或者校验来源微服务的票据,检查票据对应的 Reids 中的数据是否对应(比如 A 用户不能访问 B 用户的数据之类)

对后台不太熟悉,是否 envoy 就是做这样的事情的?
2921 次点击
所在节点    程序员
22 条回复
no1xsyzy
2020-12-03 13:40:12 +08:00
“A 用户不能访问 B 用户的数据之类”……
你这不是典型的业务逻辑控制么?
除非你上端对端加密,不然几乎都是你写的程序内进行跨用户访问控制的。
至于你写了个 proxy 还是写了个 SDK 就不重要了。
不过如果你做一个后端到数据库的七层代理也不是什么大问题,也确实这东西不叫 proxy (因为 proxy 不应当干预双方交互,不然就叫 mitmproxy 了)。

@whileFalse 除了环境变量还有动态挂载的文件,docker 有 /run/secrets 专门放这类东西。
whileFalse
2020-12-03 13:48:26 +08:00
@no1xsyzy #21 我可没说环境变量是怎么挂进去的……外面看可能是加密的,挂进去内部看全是明文

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/731600

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX