云设计模式(第2部分):网守安全模式


通过这篇文章,我继续了一系列关于云设计模式的文章。这些模式大多是通用的,可以与任何云提供商一起使用,但在本系列中,我将主要关注Azure。

在这篇文章中,我们将看到网守设计模式。

简单词语中的守门人模式

  • 这种模式为云中托管的应用程序和服务提供了额外的安全层。
  • 网守是客户端和应用程序/服务/API等之间的中间人,通常验证请求并只传递有效的请求。
  • 网守的访问权限有限,不包含访问细节等重要信息。

根据Microsoft团队的意见:

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

因此,我们可以把守门人想象成日常生活中站在我们大门旁的保安。如果有帮助的话,我们可以把网守想象成典型网络拓扑中的防火墙。

示例

gate1

  • 正如您在这里看到的,每当客户端试图访问主机时,它需要首先面对网守。
  • 如果网守允许客户机请求(如果验证返回true),客户机就可以访问服务或存储。
  • 请注意,网守没有访问密钥和令牌,它只是验证和过滤请求。那是看门人唯一的工作。

使用此模式时需要考虑的事项

  • 网守不应持有任何访问密钥或令牌。
  • 网守不应执行任何与服务或数据存储相关的操作,其唯一的工作就是验证和过滤请求。
  • 守门人应该是简单的,如果守门人被妥协了,它不应该要求立即采取任何重大的行动。
  • 网守可以设计为单点故障。这就是为什么它应该始终在生产中运行。
  • 网守可能会对系统的性能产生负面影响,因此在直接将其实现到生产环境中之前,您应该首先进行测试。
  • 守门人应具备监控和报警能力。
  • 在网守和受信任主机之间使用HTTPS,SSL和TLS等安全连接。

我什么时候应该使用网守模式?

您应该使用网守模式:

  • 当您的应用程序由于携带敏感信息而需要处于高安全性环境时。
  • 当需要在分布式环境中有一个集中的验证和过滤系统时。
  • 当您希望保护包含非常敏感数据的站点/服务/API免受SQL注入,跨站点脚本,会话劫持,DOS等攻击时。

我们如何在Azure中使用网守模式?

在Azure中,没有任何名称为Gatekeeper或Gateway的服务,但是您可以使用一些服务来实现Gatekeeper设计模式。例如,您可以使用例如,您可以使用Application Gateway或者某种API Management 在蔚蓝。

Azure中的网守模式的一些主要优点是:

  • 可伸缩,高可用性的web应用程序交付
  • Web应用程序防火墙
  • 高效,安全的web前端
  • 与Azure服务等紧密集成

注-据我所知this 线程,我已经提到了两个可以在Azure中用于网守的服务,但是可能还有更多的服务。我已经问了一个question 如果你对此有更多的了解,请在此评论或回答问题。

希望有帮助。