通过使用充当客户端和应用程序或服务之间的代理,验证和进行消毒的请求,并将它们之间的请求和数据的专用主机实例保护的应用程序和服务。这可以提供一个额外的安全层,并限制了系统的攻击面。
应用程序通过接受和处理请求揭露它们的功能提供给客户。在云托管方案,应用程序暴露终端客户机连接,一般包括代码来处理来自客户端的请求。此代码可以执行认证和验证,一些或所有请求的处理,并有可能访问存储等服务代表客户端的。
如果恶意用户能够危及系统和访问应用程序的托管环境,它使用安全机制,诸如凭证和存储密钥,并且该服务并访问数据,被暴露。因此,恶意用户可能能够获得无节制访问敏感信息和其他服务。
为了尽量减少接触到敏感信息和服务客户的风险,去耦,揭露出从处理请求并访问存储在代码公共端点的主机或任务。这可以通过使用一个立面或专用任务,与客户端进行交互,然后手拿开的请求(可能通过一个去耦接口)连接到主机或任务将要处理的请求来实现。
守门员模式可以简单地用来保护存储,或者它可被用作一个更全面的立面,以保护所有的应用程序的功能。的重要因素是:
此图案有效地作用就像一个防火墙在一个典型的网络拓扑。它允许关守来检查请求并做出关于是否将请求传递到可信主机决定(有时也被称为钥匙之王),执行所需的任务。这一决定通常需要守门员来验证并将其传递到受信任主机前消毒要求的内容。
在决定如何实现这个模式时,请考虑以下几点:
这种模式非常适合于:
在一个云托管的情况下,该模式可以通过使用一个内部端点,一个队列,或存储作为中间通信机制解耦从受信任的角色和服务应用程序中的关守角色或虚拟机来实现。