云计算设计模式(十)——守门员模式

简介: 云计算设计模式(十)——守门员模式 通过使用充当客户端和应用程序或服务之间的代理,验证和进行消毒的请求,并将它们之间的请求和数据的专用主机实例保护的应用程序和服务。

云计算设计模式(十)——守门员模式


通过使用充当客户端应用程序或服务之间的代理验证进行消毒的请求并将它们之间的请求数据的专用主机实例保护的应用程序和服务。可以提供一个额外的安全并限制了系统的攻击面。

背景和问题


应用程序通过接受处理请求揭露它们的功能提供给客户。云托管方案应用程序暴露终端客户机连接,一般包括代码来处理来自客户端请求。代码可以执行认证和验证,一些或所有请求的处理并有可能访问存储等服务代表客户端

如果恶意用户能够危及系统访问应用程序的托管环境,它使用安全机制,诸如凭证存储密钥,并且服务访问数据被暴露。因此,恶意用户可能能够获得无节制访问敏感信息和其他服务。

解决方案


为了尽量减少接触到敏感信息和服务客户的风险去耦,揭露出处理请求并访问存储代码公共端点的主机或任务这可以通过使用一个立面或专用任务,与客户端进行交互,然后手拿开请求(可能通过一个去耦接口)连接到主机或任务将要处理请求来实现。图1示出了这种方法的一个高层视图

图1 - 这种模式的高级概述


守门员模式可以简单地用来保护存储或者它可被用作一个更全面的立面,以保护所有应用程序的功能。重要因素是:
•控制验证。守门员验证所有请求并拒绝那些不符合验证要求
有限的风险和曝光。守门员不具有访问所使用的可信主机访问存储和服务凭证密钥。如果关守被攻破攻击者无法获得访问这些凭据或密钥。
•适当的安全性。守门员运行在一个有限的特权模式应用程序的其余部分访问存储和服务所需要的完全信任模式下运行如果关守被破坏,它不能直接访问应用程序的服务数据

图案有效地作用就像一个防火墙在一个典型的网络拓扑它允许关守来检查请求并做出关于是否将请求传递可信主机决定(有时也被称为钥匙之王,执行所需的任务。这一决定通常需要守门员来验证并将其传递受信任主机消毒要求的内容。

问题和注意事项


在决定如何实现这个模式时,请考虑以下几点
•确保受信任主机网守请求通过暴露内部或保护端点,只有连接到守门员受信任主机不应该暴露任何外部端点或接口。
关守必须在有限的特权模式下运行通常,这意味着运行守门员独立的托管服务或虚拟机可信主机
关守不应该执行相关的应用程序或服务或访问任何数据的任何处理它的功能是纯粹的验证和消毒要求受信任的主机可能需要执行的请求额外的验证,但核心的验证应该由守门员进行。
•使用守门员信任的主机或任务,如果这是可能的之间的安全通信通道HTTPS,SSL或TLS然而,一些托管环境可能不支持HTTPS内部端点。
•添加额外的层,以实现守门员模式的应用有可能应用程序的性能造成一定影响,由于它需要额外的处理和网络通信
关守实例可能是一个单点故障为了最大限度地减少故障影响考虑部署其他实例,并使用自动缩放机制,以确保有足够的能力来保持可用性


何时使用这个模式


这种模式非常适合于
应用程序,处理敏感信息揭露必须具有高一定程度的保护免受恶意攻击或执行不得破坏关键业务服务
•分布式应用中,有必要主要任务分别执行请求验证集中此验证,以简化维护和管理

例子


一个云托管的情况下,该模式可以通过使用一个内部端点一个队列存储作为中间通信机制解耦从受信任的角色和服务应用程序中的关守角色虚拟来实现。图2示出了使用内部的端点的基本原则。

图2 - 模式使用云服务的网络和辅助角色的一个例子

本文翻译自MSDN:http://msdn.microsoft.com/en-us/library/dn589793.aspx

相关文章
设计模式:工厂方法模式(Factory Method)
工厂方法模式是一种创建型设计模式,通过将对象的创建延迟到子类实现解耦。其核心是抽象工厂声明工厂方法返回抽象产品,具体工厂重写该方法返回具体产品实例。适用于动态扩展产品类型、复杂创建逻辑和框架设计等场景,如日志记录器、数据库连接池等。优点包括符合开闭原则、解耦客户端与具体产品;缺点是可能增加类数量和复杂度。典型应用如Java集合框架、Spring BeanFactory等。
「全网最细 + 实战源码案例」设计模式——生成器模式
生成器模式(Builder Pattern)是一种创建型设计模式,用于分步骤构建复杂对象。它允许用户通过控制对象构造的过程,定制对象的组成部分,而无需直接实例化细节。该模式特别适合构建具有多种配置的复杂对象。其结构包括抽象建造者、具体建造者、指挥者和产品角色。适用于需要创建复杂对象且对象由多个部分组成、构造过程需对外隐藏或分离表示与构造的场景。优点在于更好的控制、代码复用和解耦性;缺点是增加复杂性和不适合简单对象。实现时需定义建造者接口、具体建造者类、指挥者类及产品类。链式调用是常见应用方式之一。
59 12
|
2月前
|
「全网最细 + 实战源码案例」设计模式——模式扩展(配置工厂)
该设计通过配置文件和反射机制动态选择具体工厂,减少硬编码依赖,提升系统灵活性和扩展性。配置文件解耦、反射创建对象,新增产品族无需修改客户端代码。示例中,`CoffeeFactory`类加载配置文件并使用反射生成咖啡对象,客户端调用时只需指定名称即可获取对应产品实例。
90 40
「全网最细 + 实战源码案例」设计模式——工厂方法模式
简单工厂模式是一种创建型设计模式,通过一个工厂类根据传入参数创建不同类型的产品对象,也称“静态工厂方法”模式。其结构包括工厂类、产品接口和具体产品类。适用于创建对象种类较少且调用者无需关心创建细节的场景。优点是封装性强、代码复用性好;缺点是扩展性差,增加新产品时需修改工厂类代码,违反开闭原则。
56 15
「全网最细 + 实战源码案例」设计模式——简单工厂模式
简单工厂模式是一种创建型设计模式,通过工厂类根据传入参数创建不同类型的对象,也称“静态工厂方法”模式。其结构包括工厂类、产品接口和具体产品类。优点是封装性强、代码复用性好;缺点是扩展性差,增加新产品时需修改工厂类代码,违反开闭原则。适用于对象种类较少且调用者无需关心创建细节的场景。
64 19
前端必须掌握的设计模式——模板模式
模板模式(Template Pattern)是一种行为型设计模式,父类定义固定流程和步骤顺序,子类通过继承并重写特定方法实现具体步骤。适用于具有固定结构或流程的场景,如组装汽车、包装礼物等。举例来说,公司年会节目征集时,蜘蛛侠定义了歌曲的四个步骤:前奏、主歌、副歌、结尾。金刚狼和绿巨人根据此模板设计各自的表演内容。通过抽象类定义通用逻辑,子类实现个性化行为,从而减少重复代码。模板模式还支持钩子方法,允许跳过某些步骤,增加灵活性。
158 11
2024.11|云计算行业的商业模式创新方法及实践
截至2024年,全球云计算行业迈入全新阶段,从IaaS到大规模AI模型平台,技术与商业模式不断创新。本文分析全球最新技术进展,探讨云计算商业模式创新策略与实践,解析云服务厂商如何通过技术革新实现价值最大化,推动企业数字化与智能化转型。重点讨论AI与云计算的深度融合、边缘计算与去中心化发展、平台化与生态系统建设,以及数据安全与绿色云计算等关键议题。
227 30
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
68 1
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等