通过Cognito保护的AWS ApiGateway创建用户时如何开放预访问权限
AWS Cognito 与业务用户创建流程冲突解决方案
最优方案:使用Cognito Post Confirmation触发器同步用户数据
这是该场景下安全等级最高、维护成本最低的方案,完全规避鉴权冲突问题:
- 用户先完成Cognito侧的注册、邮箱/手机号验证流程,成功获得Cognito身份
- 配置Cognito用户池的
Post Confirmation触发器,绑定自定义Lambda函数 - 当Cognito侧用户注册完成并确认生效后,自动触发Lambda,将用户ID、账号等核心信息直接写入你的业务数据库
- 后续用户携带Cognito token调用其他业务接口时,业务数据库已存在对应记录,不会出现数据缺失问题
可选适配方案
如果你的业务流程要求必须先在业务库生成用户记录,再创建Cognito账号,可选择以下两种方案:
方案1:给创建用户接口单独配置IAM鉴权
- 移除该接口的Cognito用户鉴权规则,改为仅允许指定IAM角色调用
- 仅给你的管理员后台、前端服务等可信端分配对应IAM角色权限,普通用户无法直接调用该接口,避免未授权访问风险
方案2:给创建用户接口加匿名访问防护
- 仅针对该接口关闭Cognito鉴权,同时添加多层防护规则:
- 接口层加请求频率限制,防暴力调用
- 调用时必须携带有效的手机号/邮箱验证码、图形验证码,验证通过后才允许写入业务库并同步创建Cognito用户
注意事项
- 所有方案都需要做好数据一致性校验,避免出现Cognito用户和业务库用户记录不匹配的问题
- 自定义属性优先存在Cognito用户的自定义字段中,同步时一并写入业务库,减少两边数据不一致的概率
内容的提问来源于stack exchange,提问作者IgorAlves
相关产品推荐
相关产品推荐

