SaaS 实施

采用 Amazon Cognito 的 SaaS 身份和隔离解决方案

在 AWS 上构建可靠的 SaaS 身份和隔离解决方案模型的架构和策略

本 Quick Start 介绍了使用 Amazon Cognito 作为身份提供程序,在多租户软件即服务 (SaaS) 环境中实施身份管理和隔离的高度可用的解决方案。

本 Quick Start 提供轻型 SaaS 订单管理系统,该系统展示了身份管理和隔离的不同方面,涵盖多租户环境中的各个角色。本 Quick Start 部署包括多种 AWS 服务,如 Amazon Cognito、AWS Lambda、Amazon API Gateway 和 Amazon EC2 Container Service (Amazon ECS)。

自动执行部署的 AWS CloudFormation 模板是可自定义的。本部署指南阐述了核心 SaaS 身份管理和隔离概念以及实施详情,同时还分步介绍了部署和配置。

cognito-small-icon

此 Quick Start 由
AWS 解决方案架构师开发。

  •  构建内容
  •  如何部署
  •  费用和许可证
  •  构建内容
  • 本 Quick Start 架构包括多项 AWS 服务和结构,用于创建高度可扩展、高度可用的 SaaS 身份和隔离解决方案;该解决方案符合在跨两个可用区的 virtual private cloud (VPC) 部署基于容器的应用程序的最佳实践。

    SaaS 参考应用程序客户端使用 Amazon Simple Storage Service (Amazon S3) 部署。这个 AngularJS 应用程序的所有资产都部署至 S3 存储桶,并从该位置使用。部署的 web 应用程序通过 RESTful 调用(经由 Amazon API Gateway 路由,为每个调用提供租户身份环境)与应用程序的后端服务交互。

    API 网关提供一种自然方式,用于在 SaaS 环境中显示您的服务,让您能够更好地衡量和管控对环境的访问。它还支持自定义授权方,该授权方能够在每次尝试使用服务时,验证系统的身份令牌。本授权方作为 AWS Lambda 功能实施,让您能够在请求流经网关时,为它们创建自定义授权逻辑。

    在 VPC 中,该架构采用部署在不同可用区中的网络地址转换 (NAT) 网关。这些托管在 VPC 公有子网中的网关提供高度可用的流量路由,这些流量从私有子网流至其他 AWS 服务或互联网。

    SaaS 应用程序服务的内核托管在 VPC 私有子网内。Amazon ECS 集群托管运行系统微服务的容器。本集群中部署了 7 个独立的 Node.js 微服务。本集群也采用 Auto Scaling,用于获取基本的高可用性。您可以进一步设置该集群,让其自动响应租户负载的变化,根据需求扩大和缩小。每项服务应用租户的身份环境来控制和限制对系统资源的访问。

    参考应用程序使用多项 AWS 服务;例如:

    • Amazon DynamoDB 表被部署到多租户模型中,用于获取需要存储的服务。
    • AWS Identity and Access Management (IAM) 管理并应用隔离政策和角色来防止跨租户访问。
    • Amazon Cognito 作为身份提供商,存储确认各租户身份的属性。
    • Amazon Simple Notification Service (Amazon SNS) 在用户注册流程期间发布验证电子邮件。

    该架构还支持持续部署:使用 AWS CodePipeline、AWS CodeBuild、S3 存储桶和 Amazon EC2 Container Registry (Amazon ECR) 的组合来管理新应用程序功能的构建和部署。

  •  如何部署
  • 要在 AWS 上构建高度可用的 SaaS 身份和隔离环境,请遵循部署指南中的说明操作。部署过程包括以下步骤:

    1. 如果您还没有 AWS 账户,请访问 https://aws.amazon.com 进行注册。
    2. 启动此 Quick Start。每次部署大约需要 2 小时 15 分钟。有以下两种方案可供选择:
    3. 登录参考应用程序所在的网站,逐步体验订单管理系统,以此测试该部署。

    要自定义您的部署,您可以按照 Quick Start 部署指南所述,配置 CIDR 数据块和 IP 地址,设置系统管理员凭证,以及配置您的 DynamoDB 表。

  •  费用和许可证
  • 在运行本 Quick Start 参考部署期间使用 AWS 服务所产生的费用,需要由您支付。使用此 Quick Start 无需额外付费。

    此 Quick Start 的 AWS CloudFormation 模板包括可自定义的配置参数。其中一些设置可能会影响部署成本。要了解成本估算,请参阅您将使用的各项 AWS 服务的定价页面。