大家好,我是G探险者!
因为最近我们的分布式项目上,一直在讨论设计,服务之间如何鉴权?鉴权发生在什么样的场景里?同一个租户内的服务之间需不需要鉴权?不通租户之间的服务访问该如何鉴权?如果是在跨机房,跨集群,甚至跨区域的时候服务间的访问又该如何实现鉴权?
这里面涉及到了一些概念,比如防火墙,VPC,网关,鉴权等概念。
我觉得很有必要将这些概念串起来,梳理一下,如果有更总行的高手欢迎给我,评论,留言。
首选先说防火墙的概念,看看防火墙的概念是如何诞生的。
一、防火墙的诞生
防火墙作为网络安全的基石,其诞生背景可以追溯到早期的计算机网络时代。在互联网普及之前,计算机网络主要用于军事和科研领域,而随着互联网的商业化和大众化,网络安全问题变得尤为突出。防火墙的概念最早由数学家、密码学家惠特菲尔德·迪菲(Whitfield Diffie)和马丁·赫尔曼(Martin Hellman)提出,他们提倡通过一个安全的"墙"来隔离内部网络和外部网络,以防止未经授权的访问。防火墙因此诞生,成为保护网络免受不良访问和网络攻击的关键工具。
二、防火墙的主要问题
防火墙的主要问题在于其黑白名单式的访问控制模式,它无法灵活适应不同网络环境和复杂的业务需求。
这里我通过一个例子来说明一下这个弊端在哪?
假设有一家跨国公司,其总部位于美国,分支机构遍布世界各地,包括亚洲、欧洲和南美洲。公司运营着多个业务应用,包括内部沟通平台、文件共享系统和客户关系管理系统。现在,公司决定实施防火墙以确保网络安全。
防火墙的黑白名单问题示例
传统黑白名单设置:
公司设置了防火墙规则,允许总部网络与分支机构网络进行通信。这就是一个白名单规则,允许特定的内部网络进行交互。
然而,公司在某一时刻决定与新的合作伙伴建立业务合作关系,该合作伙伴位于亚洲。由于防火墙采用传统的黑白名单控制,现有的白名单中并未包括新的合作伙伴网络。
缺乏灵活性:
由于防火墙的黑白名单设置缺乏灵活性,公司需要手动更新白名单规则以允许新的业务合作伙伴访问公司网络。
同时,如果公司要调整某些业务应用的网络访问权限或者引入新的服务,就需要频繁更新防火墙规则,这是一项繁琐而容易出错的任务。
复杂业务需求:
随着公司业务的扩展,业务应用之间的交互模式变得复杂。例如,客户关系管理系统需要与总部的文件共享系统进行数据交互,但与其他分支机构的内部通信则需要受到限制。
传统防火墙的黑白名单难以满足这种复杂的业务需求,因为它只能在整体上允许或拒绝网络流量,缺乏对不同业务场景的细粒度控制。
在这个例子中,防火墙的黑白名单控制模式在面对跨国公司多样化的业务需求时显得不够灵活,需要不断手动更新规则以适应变化的网络环境和合作伙伴关系。这凸显了黑白名单模式的局限性,而新一代的网络安全技术,如服务鉴权,正在逐渐填补这一空白,提供更为灵活和细粒度的访问控制。
为了解决这些问题,虚拟私有云(VPC)和虚拟私人网络(VPN)等新技术应运而生。
以上防火墙的技术,主要通过对网络进行物理隔离来实现一定的安全需求,但是不够灵活,于是出现了虚拟网络的逻辑隔离技术,也就是我们下面介绍的VPC。
三、虚拟私有云(VPC)的崛起
VPC作为云计算环境中的网络隔离解决方案,旨在提供一种灵活而可控的网络环境。VPC允许用户在云中创建一个隔离的网络空间,定义自己的IP地址范围、创建子网、配置路由表和网络网关。这为用户提供了更细粒度的网络控制和资源隔离,使得在云中安全地运行资源成为可能。VPC的崛起解决了传统防火墙在面对复杂网络结构和动态业务需求时的局限性。
假设有一家电子商务公司正在将其业务迁移到云平台,以提高灵活性和可扩展性。在这个过程中,使用VPC可以解决传统防火墙在面对复杂网络结构和动态业务需求时的限制。
示例场景:
- 不同业务模块的隔离 :
- 公司拥有多个业务模块,包括在线购物、支付处理、用户管理等。通过创建不同的子网,VPC使得每个业务模块都能运行在独立的网络空间中,实现了业务间的隔离。
- IP地址定制和管理 :
- 公司可以在VPC中定义自己的IP地址范围,确保每个业务模块都有足够的IP地址可用。例如,在线购物子网可以有一个独立的IP地址范围,而支付处理子网可以有另一个独立的范围。
- 创建子网和路由表 :
- 对于在线购物业务,公司可以创建一个子网,将其配置为仅允许来自用户的HTTP请求。同时,支付处理业务可以有一个专门的子网,只允许与支付网关通信。通过配置不同的路由表,实现了对不同子网的流量控制。
- 网络网关的配置 :
- 公司可以配置网络网关以实现对外部网络的连接,例如与供应商的数据交换或者与用户的通信。网络网关的设置可以灵活调整,以适应不同的对外连接需求。
- 动态调整和弹性扩展 :
- 随着业务需求的变化,公司可以动态调整VPC的配置,例如添加新的子网、调整IP地址范围或者更新路由规则。这使得公司能够实现业务的弹性扩展,而无需受限于传统网络结构的约束。
通过这个示例,VPC为电子商务公司提供了灵活而可控的网络环境,使其能够根据不同业务需求划分和管理网络资源,实现了更细粒度的网络控制和资源隔离。这种灵活性和可定制性解决了传统防火墙在复杂网络结构和动态业务需求下的局限性。
顺带提一句VPN,因为和VPC只有一字之差。
四、虚拟私人网络(VPN)的发展
VPN作为一种在不安全网络上建立安全、加密连接的技术,主要应用于远程访问和网络间连接。随着企业业务的国际化和远程办公的普及,VPN的需求急剧增加。VPN通过创建加密通道,确保数据传输的安全性和隐私性,使得远程用户能够安全地访问公司网络。VPN的发展使得企业能够建立安全、跨地域的网络连接,解决了传统网络无法满足的远程访问需求。
五、服务鉴权的引入
然而,随着服务架构的演变和微服务的兴起,传统的网络安全控制已不再足够。服务鉴权作为一种更为细粒度的访问控制方式,逐渐成为网络安全的新趋势。它不再仅仅关注网络层面,而是将焦点放在服务层面,确保每个服务的安全访问。
六、服务鉴权的特点和作用
-
细粒度控制:
- 服务鉴权通过定义服务级别的访问策略,实现对服务间通信的细粒度控制。这远比传统防火墙的端口和协议控制更为灵活。
-
动态适应性:
- 鉴权规则可以根据服务的动态变化进行调整,适应不断变化的业务需求。这与传统网络安全的静态规则相比更为灵活。
-
身份验证和授权:
- 服务鉴权不仅仅关注网络连接的合法性,还强调对服务的身份验证和授权。这确保了只有授权的服务能够相互通信。
-
日志和审计:
- 鉴权过程产生的详细日志可以用于审计和监控,帮助发现潜在的安全威胁和异常行为。
七、技术发展的总结
从防火墙到虚拟私有云、虚拟私人网络,再到如今的服务鉴权,网络安全技术在不断演进。这一循序渐进的过程旨在适应不断变化的业务环境和安全挑战。服务鉴权的引入使得安全控制更加贴近服务层,为现代复杂的服务架构提供了更为全面和有效的安全保障。技术的发展不仅仅是解决问题的过程,更是适应新需求、应对新挑战的不断创新之旅。