采用信任体系结构创建可信的软件产品
云原生SaaS产品通过保护客户数据和提供不间断服务赢得了客户的信任。在当今日益分布式和复杂的软件产品体系结构中,采用零信任将有助于实现信任结果。
从根本上说,在软件产品中采用零信任意味着消除来自可信边界的预先授权访问,并在不牺牲软件产品的性能和可用性的情况下验证每个访问请求。
下面是一个在云原生软件产品中嵌入零信任的步骤。
创建阶段
微分割是零信任网络接入(ZTNA)的一个核心概念。它将一个段围起来,并创建粒度控制。产品架构应该是创建细分的第一个参考。体系结构如果做得正确,应该已经反映了业务流和指定的关键部分。根据产品体系结构的不同,可以采用以下一种或多种方法。
a)以层为中心–如果产品有多层体系结构,那么每一层都是开始的默认段。
b)以参与者为中心–人类用户(租户、管理、支持、开发人员等)、设备、外部系统访问产品功能的部分。参与者群体的需求提供了划分产品部分的关键指标。
c)以微服务为中心–如果软件产品被分解成微服务,它们就可以成为分段的构建块。面向用户的微服务必须与其他分段分开。
d)容器中心–当部署在容器中并由Kubernetes、swarm、OpenShift等组织时,微服务。
在阶段中应用零信任
零信任网络访问(ZTNA)原则可以实现为网络中心控制或身份中心控制。在云原生软件产品的上下文中,这两者都同样重要。
a)以层为中心的云服务提供商的网关、防火墙、负载均衡器和代理服务在层的网络边界之间的南北网络流量中发挥作用,服务的选择考虑性能影响和日志的可用性进行分析。
b)在联邦标识系统上实现的以参与者为中心的基于身份的控制优先考虑。在边缘段(向外部用户公开),需要额外的因素和自适应访问控制来证明身份(MFA)和围绕参与者行为的上下文(数据丢失防止服务、云访问服务代理、基于上下文的限制)。
c)每次都要建立以微服务为中心的服务到服务通信信任,微服务之间的通信主要使用请求-响应(HTTP,gRPC)和发布-子(Kafka,RabbitMQ),相互TLS(Mutual TLS)是对调用微服务的同步和异步通信进行认证和授权的一种方式,如果使用服务网格(istio,linkerd),则利用sidecar代理(特使,linkerd2)来处理mTLS认证。
d)以容器为中心的网络分割策略和公共IP的入口/出口网络策略是限制容器到容器和容器到吊舱通信的首要因素。如果使用服务网格,sidecar代理可以帮助在吊舱之间应用基于身份的访问。要应用零信任,其他重要的事情是为段使用命名空间,使用可信注册表中最小的基本映像,以及安装最小的秘密。
默认为最小权限访问控制
“全部拒绝”是所有区段中所有访问控制策略的默认和起点。
加密
加密对一切都很重要。不仅对数据和网络流量进行加密,而且对从一个服务传递到另一个服务的控制平面、用户上下文进行加密。
把数据放在中心
云原生SaaS产品严重依赖数据。数据的民主化使得许多用户访问数据。在创建分段时,必须将数据标记为最关键的资产。围绕数据的零信任原则遵循类似的分割和策略控制方法。
应用统一的自适应策略控制
零信任原则之一是建立一个持续监控和政策变更的过程。云原生软件产品是一个复杂的环境,可能会导致一个支离破碎的指挥中心。统一的策略控制器很重要。SPIFFE、Open Policy Agent是针对这一点的开源倡议。
利用可见度
零信任带来了大量的粒度可见性。需要将可见性转化为洞察力和行动,以积极主动地改变政策。
使自动化
自动化在多个领域带来了效率。其中一个领域是DevSecOps管道,用于编码基于容器的部署的零信任网络策略和零信任云基础配置。收集日志、通过威胁情报服务和采取行动是自动化加快速度的另一个领域。
- 点赞
- 收藏
- 关注作者
评论(0)