您现在的位置是:系统运维 >>正文
如何为分布式系统设计一种安全架构
系统运维57174人已围观
简介译者 | 布加迪审校 | 重楼由于涉及多种多样的大规模组件,保护分布式系统是一项复杂的挑战。鉴于多个服务在可能不安全的网络上交互,未经授权的访问和数据泄露的风险显著增加。本文探讨了一种使用开源项目保护 ...
译者 | 布加迪
审校 | 重楼
由于涉及多种多样的分布大规模组件,保护分布式系统是式系一项复杂的挑战 。鉴于多个服务在可能不安全的统设网络上交互,未经授权的计种架构访问和数据泄露的风险显著增加。本文探讨了一种使用开源项目保护分布式系统的安全实用方法,该项目演示了如何集成几种安全机制和技术来应对常见的分布安全挑战,比如身份验证 、式系授权和安全通信 。统设

理解分布式系统中的高防服务器计种架构安全挑战
分布式系统涉及多个服务或微服务,这些服务或微服务必须通过网络安全地通信。安全这类架构中的分布主要安全挑战包括:
1. 安全通信 :确保服务之间传输的数据经过加密 、安全可靠 ,式系以免被窃听或篡改 。统设
2. 身份验证 :验证用户和服务的计种架构身份 ,防止未授权访问。安全
3. 授权:根据身份已验证的用户和服务的角色和权限,控制允许用户和服务执行的操作。
4. 策略执行 :实施管理服务到服务和用户交互的服务器租用细粒度访问控制和策略 。
5. 证书管理:管理用于加密数据 、建立服务之间信任的数字证书 。
这个开源项目使用几种集成的技术和解决方案来克服这些挑战。

项目设置和配置
该项目先使用shell脚本和Docker建立一个安全的环境 。设置需要提供数字证书和启动必要的服务,以确保所有组件都准备好进行安全通信。
设置环境的步骤
1. 提供证书该项目使用shell脚本(provisioning.sh)以模拟证书颁发机构(CA) ,并为服务生成必要的证书 。
复制./provisioning.sh1. 2. 启动服务Docker Compose用于启动项目中定义的源码下载所有服务 ,确保它们被正确配置以实现安全运行。
复制docker-compose up1. 3. 测试服务到服务通信为了使用证书和JWT令牌验证服务到服务通信 ,提供test_services.sh脚本 。该脚本演示了不同的服务如何使用分配给它们的证书安全地交互 。
解决分布式系统中的安全挑战
该项目集成了几项关键技术来解决前面提到的主要安全挑战。以下是应对每个挑战的方法 :
1. 使用相互TLS(mTLS)的安全通信
挑战在分布式系统中,服务必须安全地通信,以防止未经授权的亿华云访问和数据泄露 。
解决方案该项目使用相互TLS(mTLS)来保护服务之间的通信。mTLS确保客户端和服务器都使用各自的证书对彼此进行身份验证 。这种相互验证可以防止未经授权的服务与合法服务进行通信。
实施Nginx被配置为反向代理来处理mTLS。它需要客户端证书和服务器证书来建立安全连接 ,确保服务之间传输的数据保持机密和防篡改。
2. 使用Keycloak的身份验证
挑战正确地验证用户和服务的身份对于防止未经授权的访问至关重要 。
解决方案该项目利用开源身份和访问管理解决方案Keycloak来管理身份验证。源码库Keycloak支持多种身份验证方法 ,包括OpenID Connect和客户端凭据 ,既适合用户身份验证,又适合服务身份验证 。
用户身份验证 :使用OpenID Connect对用户进行身份验证。Keycloak配置了客户端(appTest-login-client),该客户端处理用户身份验证流 ,包括登录 、令牌颁发和回调处理。
服务身份验证 :针对服务到服务的身份验证 ,项目使用为客户端凭据授予类型配置的Keycloak客户端(client_credentials-test)。这种方法非常适合在没有用户干预的情况下对服务进行身份验证。
身份验证流示例用户导航到登录页面 。云计算成功登录后 ,Keycloak将用户重定向到带有授权码的回调页面 。然后将授权码交换为JWT令牌,用于后续请求 。nginx/njs目录中的authn.js文件提供了该流程的详细实施。使用客户端凭据的服务身份验证示例 复制curl -X POST "http://localhost:9000/realms/tenantA/protocol/openid-connect/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials" \ -d "client_id=client_credentials-test" \ -d "client_secret=your-client-secret-here"1.2.3.4.5.3. 使用开放策略代理(OPA)和JWT的用户授权
挑战实施细粒度的访问控制 ,以确保身份已验证的用户和服务只能访问授权的资源。
解决方案该项目结合使用开放策略代理(OPA)和JWT令牌来执行授权策略。该项目演示了三种不同的JWT验证策略,以确保可靠的安全性 :
从Keycloak获取证书:从Keycloak动态获取证书以验证令牌。使用x5t(拇指纹):使用令牌中嵌入的拇指纹,从本地信任存储中检索公钥 。嵌入式证书验证:使用嵌入式证书验证令牌,确保对照受信任的证书颁发机构(CA)验证证书。有关这些策略的详细实施 ,请参阅nginx/njs/token.js文件 :https://github.com/apssouza22/security-architecture/blob/main/nginx/njs/token.js。
4. 使用开放策略代理(OPA)的策略执行
挑战为服务和用户实施动态灵活的访问控制策略。
解决方案OPA用于实施细粒度的访问控制策略。策略用声明性语言(Rego)加以编写,存储在opa/目录中 。这些策略规定了服务可以通信、用户可以访问资源的条件 ,确保在整个系统中一致地运用访问控制。
5. 证书管理
挑战管理服务的数字证书,以建立信任和安全通信。
解决方案:该项目包括一个强大的证书管理系统 。shell脚本(provisioning.sh)用于模拟证书颁发机构(CA) ,并为每个服务生成证书 。这种方法简化了证书管理,并确保所有服务都拥有安全通信所需的凭据 。
我们还添加了一个端点来更新服务证书 ,不需要重启nginx。
复制curl --insecure https://localhost/certs --cert certificates/gen/serviceA/client.crt --key certificates/gen/serviceA/client.key -F cert=@certificates/gen/serviceA/client.crt -F key=@certificates/gen/serviceA/client.key1.结论
构建安全的分布式系统需要仔细考虑各个安全方面,包括安全通信 、身份验证 、授权 、策略执行和证书管理 。这个开源项目提供了一个全面的示例,表明如何集成多种安全机制来有效地应对这些挑战 。
如果遵循本项目中演示的设置和配置 ,开发人员就可以利用相互TLS、Keycloak 、Open Policy Agent和Nginx来构建一套稳健的安全架构。这些技术结合在一起 ,就可以为保护分布式系统免受各种威胁提供坚实的基础 ,确保数据保护和安全访问控制。
原文标题 :Designing a Secure Architecture for Distributed Systems,作者:Alexsandro Souza
Tags:
转载:欢迎各位朋友分享到网络,但转载请说明文章出处“算法与编程”。http://www.bzli.cn/html/922a399074.html
相关文章
十二大数据安全态势管理(DSPM)工具点评
系统运维数据安全形势日益严峻,企业如何有效管理海量数据尤其是“影子数据”)成为一大挑战。数据安全姿势管理(DSPM)工具应运而生,旨在帮助企业发现、追踪并保护所有数据,无论这些数据位于何处,处于何种状态。数据 ...
【系统运维】
阅读更多微软:云服务大规模宕机因DDoS“防卫过当”
系统运维微软本周三晚间宣布,本周二全球范围内多个Microsoft 365和Azure云服务大规模长时间宕机事件的原因,是一次DDoS攻击触发了微软DDoS防护机制的“过激反应”。此次宕机影响了多个微软服务, ...
【系统运维】
阅读更多拒绝支付! 2024 年第一季度勒索赎金支付比例降至历史新低
系统运维网络安全公司 Coveware 发现,越来越多受到勒索软件团伙攻击的组织开始意识到支付赎金完全没有用,因此选择拒绝支付,从而使 2024 年第一季度,选择支付赎金的勒索软件受害者比例仅仅为 28% 的 ...
【系统运维】
阅读更多
热门文章
最新文章
友情链接
- 小米膜的优点和特点(为你的手机屏幕保驾护航)
- 央广银河(金融增值与财富管理的领先机构)
- 烈焰战神1050ti(探索烈焰战神1050ti的卓越性能与多功能特性)
- 华为Mate9拍摄视频全方位评测(华为Mate9拍视频功能强大,画质出色,满足各类拍摄需求)
- 尼康D700(探索尼康D700的出色性能和多功能特点)
- 昇腾AI异构计算架构CANN 6.0全新开放升级,全面释放AI生产力
- 小辣椒JDPlus全方位解读,值得购买吗?(便宜好用的小辣椒JDPlus手机,性价比之王!)
- AMDA87410处理器的性能及特点分析(探索AMDA87410处理器的优势和应用领域)
- HP系统重装教程(详解HP系统重装步骤,让你的电脑焕然一新)
- 最好的Mac解压工具推荐(选择一个适合你的Mac解压工具是多么重要) 香港物理机b2b信息平台亿华云网站建设企业服务器源码库云服务器