这篇博客包含了对创建身份管理系统的详细描述。我们将通过一个工作实例来看看我们是如何通过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的两个组成部分是用户池和身份池。
Cognito与DynamoDB的容灾能力
我们应该从一开始就设计容灾的云架构。之所以这样做,是因为它在一开始就很容易做到,而且即使没有发生灾难,它也会帮助企业。
DynamoDB负载平衡
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文件。
之后,给这个角色分配正确的权限。
AWS用户。
设置docker compose ". yaml" 文件。
创建Jenkins流水线。
最后,应用程序现在运行在80端口。
最后,你将能够用你正确的电子邮件地址注册,以收到确认码。
5.监控
亚马逊CloudWatch指标 和AWS CloudTrail
6.日志和报告