AWS Cognito注册和身份管理系统工作实例

360 阅读3分钟

这篇博客包含了对创建身份管理系统的详细描述。我们将通过一个工作实例来看看我们是如何通过AWS Cognito进行管理的。

问题陈述

你的办公室想要创建一个身份管理系统,以满足用户的可及性和可用性限制。这个高度安全的工作流程要求的基本要求列举如下:

  • 端到端身份管理门户。
  • 身份管理的身份管理器冗余设置。
  • 用于身份管理的数据库冗余设置。
  • 访问管理的访问管理器的冗余设置。
  • 目录服务冗余设置。

解决方案的目标

  • 身份管理系统,管理用户级别的访问和限制。
  • 高可用性架构
  • 数据库群集和负载平衡
  • 更快地部署到生产中
  • 基础设施监控
  • 日志解决方案的实施

技术要求

  • 一个AWS账户
  • 一个具有访问密钥和秘密密钥的IAM用户
  • AWS Cognito
  • 一个t2.medium类型的实例
  • GitHub私人仓库
  • Docker中心仓库

2.工具和技术

制作自动化解决方案时使用的工具和技术是:

  • 用AWS设置基础设施
  • 使用GitHub的版本控制
  • 用AWS Cognito进行身份管理和数据同步
  • Docker Registry Docker Hub
  • 用Jenkins管道进行持续集成
  • 用AWS CloudWatch进行监控

3.基础设施设计

这包括身份管理系统的完整设计,以满足用户的可及性和可用性限制。

AWS Cognito

亚马逊Cognito提供认证、授权。

因此,Cognito的两个组成部分是用户池和身份池。

UserPools and Identity Pools Cognito - Registration & Identity Management System UserPools and Identity Pools Cognito - Registration & Identity Management System

Cognito与DynamoDB的容灾能力

我们应该从一开始就设计容灾的云架构。之所以这样做,是因为它在一开始就很容易做到,而且即使没有发生灾难,它也会帮助企业。

Disastyer Tolerance Cognito - Registration & Identity Management System

DynamoDB负载平衡

Dynamo Load balancing - Cognito - Registration & Identity Management System

4.DevOps的实施

  • 我们在解决方案中涉及的功能有:
  • 用户注册
  • 用户登录
  • 如果登录了,就可以访问一个安全的页面
  • 重置忘记的密码和注销

用正确的配置设置AWS Cognito

为用户池做设置的步骤是:

  • 登录到AWS控制台,进入AWS Cognito服务。
  • 为你的池子指定一个名称,然后点击 "审查默认值"。
  • 根据要求定制密码策略。
  • 编辑应用程序客户端选项,并指定一个应用程序的名称。
  • 点击 "创建池"。
  • 注意页面顶部的 "池标识"。
  • 点击应用程序页面,记下应用程序客户端ID。
  • .env文件的格式如下。REGION=eu-west-1 CLIENT_ID=eu-west-1_idm123 USERPOOL_ID=idm123 AWS_ACCESS_KEY_ID****** AWS_SECRET_ACCESS_KEY*******
  • 推荐的方法是用一个角色启动一个EC2实例,然后

之后,我们可以将AmazonCognitoPowerUser 策略附加到创建的角色或用户上。

配置并启动应用程序

AWS Cognito用户池的设置已经完成,并将正确的配置添加到".env "文件中。

在运行应用程序的实例上安装docker。

之后,设置Docker文件。

Docker File - Cognito - Registration & Identity Management System

之后,给这个角色分配正确的权限。

AWS用户。

设置docker compose ". yaml" 文件。

Yaml File - Cognito - Registration & Identity Management System

创建Jenkins流水线。

Jenkins pipeline - Cognito - Registration & Identity Management System

最后,应用程序现在运行在80端口。

application is running

最后,你将能够用你正确的电子邮件地址注册,以收到确认码。

5.监控

亚马逊CloudWatch指标AWS CloudTrail

Monitoring in AWS

6.日志和报告

Logging and Reporting in AWS