跳转到主要内容
Chinese, Simplified

安全支柱包括帮助保护信息、系统和资产的能力,同时通过风险评估和缓解策略实现业务价值。

设计计原则

在云中,有许多原则可以帮助您加强系统安全性。

定义

云安全有五个最佳实践领域:

  • 身份和访问管理
  • 侦探控件
  • 基础设施保护
  • 数据保护
  • 事件响应

多租户为您的SaaS架构增加了一层额外的考虑因素。使用SaaS,您的用户现在可以在给定租户的上下文中访问共享环境。必须在应用程序体系结构的所有层中捕获和传递此上下文,并在确保环境的总体占地面积方面发挥基本作用。

从安全角度来看,您需要了解租赁是如何引入您的环境的,以及如何使用它来保护租户资源。总的来说,您需要确保每个租户都有一个谨慎约束的体验,防止他们访问任何其他租户的资源。

 

最佳实践

话题

  • 身份和访问管理
  • 检测控制
  • 基础设施保护
  • 数据保护
  • 事件响应

 

身份和访问管理

SaaS SEC 1:您如何将租户上下文与用户关联,并在SaaS架构中应用该上下文?

向多租户体系结构的转变通常从身份开始。访问应用程序的每个用户都必须与租户连接。用户身份与租户的这种绑定被非正式地称为SaaS身份。SaaS身份的关键属性是它将租户上下文提升为一个一流的构造,将其直接连接到SaaS应用程序的整体身份验证和授权模型。

这种方法允许租户上下文使用用于传递和访问用户身份的相同体系结构构造流经体系结构的所有层。例如,如果您的应用程序中有100个微服务,您希望这些服务中的每一个都能够获取和应用租户上下文,而不需要往返于另一个服务。通过另一个服务管理此上下文会增加延迟,并经常在架构中造成瓶颈。

将租户上下文注入您的身份可以通过多种模式实现。您为应用程序选择的身份提供商和技术将直接影响您最终应用的方法和策略,以将这种背景引入您的体验。虽然工具可能会发生变化,但最基本的需要是在用户进入应用程序时注入租约的环境的整体身份验证体验中引入租约。

图15中的图表提供了一个使用AWS服务通常如何实现这一点的示例。此示例包括用于将租户上下文注入SaaS环境的常见组件和技术。这在图的左侧进行了说明,租户填写了一个注册表单,并触发对应用程序注册服务的调用。

图15:注入租户内容

该注册服务创建租户,然后在AmazonCognito中创建用户。作为此过程的一部分,您将自定义声明引入用户属性,这些属性包含有关用户与租户关系的信息。这些自定义声明成为用户身份签名的一部分,将它们作为一级构造直接连接到租户。

登录完成后,您可以查看在用户登录时如何应用这些用户和租户属性(图的右侧)。在这里,您将看到用户针对Amazon Cognito进行身份验证,并作为该过程的一部分,返回一个JSON web令牌(JWT),其中包含在入职过程中创建的自定义声明。

现在,您有了一个令牌,它包含了将租户上下文注入到与多租户应用程序服务的交互中所需的所有信息。在本例中,我们将JWT作为承载令牌传递到Product微服务的每个请求的头中。该服务现在可以从该令牌获取并应用上下文,而无需调用其他服务。

最后,这个Product微服务调用Order微服务,在请求的头中传递JWT。这说明了租户上下文如何在所有微服务调用中流动,而无需添加任何额外的查找或延迟。

这个例子恰好依赖于AmazonCognito来连接用户和租户身份。然而,这个相同的模型可以与其他身份提供者或替代身份验证方案一起实现。这里的关键是,您正在构建一种身份验证体验,它可以产生连接租户和用户的表示。然后,该表示应可用于解决方案的所有层。

原文地址
https://docs.aws.amazon.com/wellarchitected/latest/saas-lens/security-pillar.html
本文地址
Article

微信

知识星球

微信公众号

视频号