当前位置: 首页 > news >正文

基于服务网格的集群访问控制

随着容器化、云原生等概念的火热,越来越多的应用都开始选择支持云原生部署,但是对于大型企业应用来说,各种为服务的拆分会导致集群运维的压力越来越大,尤其是服务之间的安全通信至关重要。

在容器化集群中,传统的基于IP或端口的访问控制方式已经无法满足需求。引入服务网格(如Istio)不仅可以简化服务间的通信,还能通过强大的访问控制策略增强安全性。下面我们将通过一个简单的示例来说明如何利用Istio中的AuthorizationPolicy资源实现细粒度的访问控制。

1. 什么是服务网格?

服务网格是一种轻量级的基础设施层,用于服务间的网络通信。它提供了一种统一的方式来管理服务之间的交互,包括身份验证、授权、监控等。Istio 是一个非常流行的服务网格框架实现,可以帮助我们轻松实现这些功能。

2. 实现细粒度访问控制

对于在集群中服务网格的访问控制主要有以下两种场景:

  • 集群外请求访问集群内应用

  • 集群内应用之间的互相调用

假设我们有一个简单的微服务架构,包含两个服务:frontend 和 backend。我们需要实现两个需求

  • 只有1.2.3.4/16IP段能访问frontend

  • 只有frontend才能访问 backend 应用服务。

3. 示例实现

配置1:只有1.2.3.4/16IP段能访问frontend

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:name: test
spec:action: DENYrules:- from:- source:ipBlocks:- 1.2.3.4/16selector:matchLabels:app: frontend

配置2: 只有default资源池下的frontend才能访问 backend 服务。

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:name: test
spec:action: DENYrules:- from:- source:ipBlocks:- 1.2.3.4/16selector:matchLabels:app: frontend

通过以上的配置1,frontend应用(选择器为app:frontend)只会接受1.2.3.4/16网段的请求访问,而在集群内惊醒服务调用backend时,配置2通过集群RBAC机制的ServiceAccount识别,只允许frontend通过GET或POST访问/api/*接口,由此可实现简易的集群访问控制。

对于集群外访问的应用控制,Heimdall云原生网关系统提供了黑白名单相关功能用以实现对集群外访问的IP(段)地址或域名进行访问权限的控制。通过提供的菜单页面可以快速实现IP(段)以及域名黑白名单,可以为紧急安全事件提供快捷处理的入口。

以上只是istio服务网格在访问控制方面的简单应用。随着其不断迭代升级,现在的istio通过AuthorizationPolicy等诸多资源的配合,可实现鉴权、认证、访问控制、外接三方认证以及自定义扩展等与权限相关的功能,通过这些功能可以实现各种细粒度需求的权限控制。


欢迎大家积极留言共建,期待与各位技术大咖的深入交流!

此外,欢迎大家下载我们的inBuilder低代码平台开源社区版,可免费下载使用,加入我们,开启开发体验之旅!


http://www.mrgr.cn/news/39089.html

相关文章:

  • 扫盲接口测试,有些知识是需要了解和掌握的(建议收藏)
  • Python基础知识
  • C语言:排序(1)
  • 图解C#高级教程(一):委托
  • OPENAI、Python、人工智能--科技风商业计划书(毕设,汇报,模版)
  • 跨境电商新风尚:一键解锁中国电商的全球代购奇迹
  • Unity优质教程分类汇总 【持续更新中】
  • 在线支付系统
  • idea导入jsp项目
  • 【STM32】 TCP/IP通信协议--LwIP介绍
  • 三维立体自然资源“一张图”
  • QT QTimer.start()不生效的解决办法
  • 【go入门】常量
  • 三防手机也能实现双卫星通信?智慧应急再添一员猛将!
  • Springboot项目-实战2-实现
  • The First项目报告:解读跨链互操作性平台Wormhole
  • 【JavaEE初阶】深入解析单例模式中的饿汉模式,懒汉模式的实现以及线程安全问题
  • 爬虫入门之爬虫原理以及请求响应
  • 大厂面试真题-G1是怎么实现的按照设置的停顿时间执行垃圾回收
  • 【Linux】初识进程