当前位置: 首页 > 编程日记 > 正文

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

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


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

背景和问题


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

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

解决方案


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

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


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

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

问题和注意事项


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


何时使用这个模式


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

例子


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

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

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

相关文章:

“不会Linux,怎么干程序员?”骨灰级工程师:干啥都不行!

说起优秀程序员的必备技能,我想大家都可以说很多,比如:数据结构、算法、数学、编程语言等等。但是,你可能会忽略了每一个程序员都应该掌握的技能:Linux。想一想,我们日常学习、求职、工作场景的中&#xff…

Google Test(GTest)使用方法和源码解析——Listener技术分析和应用

在《Google Test(GTest)使用方法和源码解析——结果统计机制分析》文中,我么分析了GTest如何对测试结果进行统计的。本文我们将解析其结果输出所使用到的Listener机制。(转载请指明出于breaksoftware的csdn博客) 解析 源码中,我们…

SSH连接不上Linux的解决方法

SSH连接不上Linux的解决方法: 连续弄了几次,今天早上终于把SSH连接虚拟机连接不通的问题解决了。 先简单说下概要: 主机装的是XP系统,虚拟机用的是red hat Linux。 我用的是nat连接方式是虚拟机内也能上网。 主机是用的校园内寝室共享上网。 …

熬夜翻译完的PureFTPd配置文件

[url]http://www.chinaunix.net[/url] 作者:jeffwu 发表于:2006-07-08 10:31:58 干了个通宵,一边玩一边把配置文件翻译完了,翻得不好的地方还请各位多多提点,少许不是很明白的地方就留在那了。 鼓励转贴,分发&#xf…

挑战NLP、量子计算难题,300多支本科生队伍同场角逐,2020 ASC超算竞赛一触即发...

出品 | AI科技大本营(ID:rgznai100)ASC世界大学生超级计算机竞赛(ASCStudent Supercomputer Challenge)是由中国发起的世界最大规模的大学生超算竞赛,与美国SC、德国ISC并称全球三大超算竞赛,也是目前全球最…

Google Test(GTest)使用方法和源码解析——断言的使用方法和解析

在之前博文的基础上,我们将介绍部分断言的使用,同时穿插一些源码。(转载请指明出于breaksoftware的csdn博客) 断言(Assertions) 断言是GTest局部测试中最简单的使用方法,我们之前博文中举得例子…

精品软件 推荐 硬盘物理序列号修改专家

硬盘物理序列号修改专家不是市面上那些简单修改硬盘驱动器的序列号的东西,而是修改硬盘厂商在烧制时刻录在硬盘盒上的,即(硬盘物理序列号),大约20位字母数字的组合1、可以解决部分软件封用户电脑,导致这台电…

知识图谱实体链接是什么?一份“由浅入深”的综述

作者 | 尼古拉瓦砾来源 | Paperweekly(ID:paperweekly)【导读】这个世界充斥着无数的结构化数据(wiki)和非结构化数据(web),然而,如何将两者有效地集成仍然是个非常困难的问题。本文…

Google Test(GTest)使用方法和源码解析——预处理技术分析和应用

预处理 在《Google Test(GTest)使用方法和源码解析——概况》最后一部分,我们介绍了GTest的预处理特性。现在我们就详细介绍该特性的使用和相关源码。(转载请指明出于breaksoftware的csdn博客) 测试特例级别预处理 Test Fixtures是建立一个固…

出色管理者的时间管理

出色管理者的时间管理不少管理者都有这样的感慨:“忙了一天,也不知道忙了什么,时间还不够用。”其实,只要有效地运用时间,就可以提高工作效率,在相同的时间里做更多的事,而且做得更好&#xff0…

精品软件 推荐 瑞星 杀毒软件 安全软件

一句话评价一下这软件: 功能好,速度一般。功能:设置中心:最后, 下载地址请到官方下载吧。转载于:https://blog.51cto.com/hangtc/1690981

Google Test(GTest)使用方法和源码解析——自定义输出技术的分析和应用

在介绍自定义输出机制之前,我们先了解下AssertResult类型函数。(转载请指明出于breaksoftware的csdn博客) 在函数中使用AssertionResult AssertionResult只有两种类型: AssertionSuccess()AssertionFailure()要么成功&#xff0…

五年循环期限已到,我们又要步入“AI寒冬”了吗?

作者 | Sam Shead译者 | Kolen编辑 | 夕颜出品 | AI科技大本营(ID: rgznai100) 【导读】过去的十年对人工智能来说是一个重要的十年,但该领域的研究人员认为该行业即将进入一个新的阶段。 过去几年里,人工智能这项技术的…

相知用心.相爱用情

人如花 一生匆匆而过 不要等到你凋落的时候才去眷恋天空,眷恋蝴蝶爱情是短暂的,但却是美丽的该追求的就去追求吧不要留给自己遗憾,不要让自己美丽的花朵枯萎 人生就象一列急驰的火车 机遇和缘分会让许多素昧平生的乘客在旅途中相遇、相识、相…

Android:problem opening wizard the selected wizard could not be started

直接将Eclipse关掉,重新打开后也许就好了。 如还没好,就执行如下步骤: 1.如果还没有添加ADT,则:Help -> Add New Software -> Add 在“Name”中填入ADT。 2.如果已经安装了ADT,就直接将ADT的地址填写…

Google Test(GTest)使用方法和源码解析——私有属性代码测试技术分析

有些时候,我们不仅要测试类暴露出来的公有方法,还要测试其受保护的或者私有方法。GTest测试框架提供了一种方法,让我们可以测试类的私有方法。但是这是一种侵入式的,会破坏原来代码的结构,所以我觉得还是谨慎使用。&am…

170个新项目,579个活跃代码仓库,Facebook开源年度回顾

作者 | Dmitry Vinnik译者 | 泓礼编辑 | 夕颜出品 | AI科技大本营(ID:rgznai100) 【导读】过去一年对于Facebook的开源工程师来说是繁忙的一年。在2019年,Facebook发布了170个新的开源项目,活跃代码仓库产品达到了579…

“怀才不遇”与“怀才不孕”怎么办?

今天在飞机上闲来无事,翻阅深航的随机杂志。一直以来,我乘的比较多的是南航和深航的杂志。南航的杂志基本上都是广告,没有一点可读性的内容。相反,不知道是不是深航的规模较小的原因,找不到合适的广告主吧,…

《评人工智能如何走向新阶段》后记(再续15)

由AI科技大本营下载自视觉中国170. 清华大学全球产业研究院和百度大学Alpha学院于2020年1月5日发表(人工智能)产业智能化白皮书讨论AI发展情况,应用TUMC模型,从技术和综合应用场景的角度,考察热点技术和场景的AI产业化…

Google Test(GTest)使用方法和源码解析——参数自动填充技术分析和应用

在我们设计测试用例时,我们需要考虑很多场景。每个场景都可能要细致地考虑到到各个参数的选择。比如我们希望使用函数IsPrime检测10000以内字的数字,难道我们要写一万行代码么?(转载请指明出于breaksoftware的csdn博客&#xff09…

Linux 指令篇:文件系统--fstab

Linux 指令篇:文件系统-----FSTAB指令:FSTAB使用权限 : 超级使用者 使用方式 : 使用编辑器来修改 /etc/fstab (eg. vi /etc/fstab) 说明 : 存放档案系统与目录结构对应资料的档案 fstab 栏位说明: 第一栏(fs_spec): 实际的 device…

跨平台抓包软件,可以替代Fiddler

2019独角兽企业重金招聘Python工程师标准>>> Zed Attack Proxy (ZAP) 是个强大的跨平台的抓包工具,可以用来替代windows下的Fiddler https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project https://github.com/zaproxy/zaproxy/wiki/Download…

集五福,我用Python

所有参与投票的 CSDN 用户都参加抽奖活动群内公布奖项,还有更多福利赠送作者 | Crossin先生编辑 | Jane来源 | Crossin的编程教室(ID:crossincode)【导读】你的五福集齐了吗?作为一名技术人,我们是不是可以…

Google Test(GTest)使用方法和源码解析——模板类测试技术分析和应用

写C难免会遇到模板问题,如果要针对一个模板类进行测试,似乎之前博文中介绍的方式只能傻乎乎的一个一个特化类型后再进行测试。其实GTest提供了两种测试模板类的方法,本文我们将介绍方法的使用,并分析其实现原理。(转载…

IT人才职场受宠

面对就业压力的日益增大,就业难,工资水平低等问题困扰着所有的大学生。然而,IT业的迅猛发展却造成了数以万计的网络设计、运行、维护的网络工程师需求的空缺,巨大的人才缺口使得IT业“全线告急”,这也促使更多的研究人…

引用头文件#include queue出错

为什么80%的码农都做不了架构师&#xff1f;>>> 在工程头文件中引用头文件 #include <queue> 莫名奇妙出错&#xff0c;其原因很可能是由于头文件引用问题。 include/c/4.7.1/bits/stl_vector.h:1308:40: error: expected unqualified-id before ‘(’ token…

ZOJ1002 Fire Net(非递归版)

以前用递归的回溯搜索思路做过一次&#xff0c;参见ZOJ1002 Fire Net(递归版)&#xff0c;今天想着用非递归的方法试试看&#xff0c;呵呵&#xff0c;比我想象中要难啊&#xff0c;主要还是堆栈里究竟放什么&#xff0c;这一点上思路一直没理清。因此用了整整一天的时间&#…

“数学不行,干啥也不行”骨灰级程序员:其实你们都是瞎努力

编程圈一直都流传着一个段子&#xff1a;一流程序员靠数学&#xff0c;二流程序员靠算法&#xff0c;末端程序员靠百度&#xff0c;低端看高端就是黑魔法。懂的人其实都知道&#xff0c;这不是段子&#xff0c;其实就是程序员的真实写照。想一想&#xff0c;我们日常学习、求职…

Google Test(GTest)使用方法和源码解析——死亡测试技术分析和应用

死亡测试是为了判断一段逻辑是否会导致进程退出而设计的。这种场景并不常见&#xff0c;但是GTest依然为我们设计了这个功能。我们先看下其应用实例。&#xff08;转载请指明出于breaksoftware的csdn博客&#xff09; 死亡测试技术应用 我们可以使用TEST声明并注册一个简单的测…

java学习笔记11--Annotation

java学习笔记11--Annotation Annotation&#xff1a;在JDK1.5之后增加的一个新特性&#xff0c;这种特性被称为元数据特性&#xff0c;在JDK1.5之后称为注释&#xff0c;即&#xff1a;使用注释的方式加入一些程序的信息。 java.lang.annotation Annotation接口是所有的Annotat…