You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止已认证用户通过后台渠道删除Cognito账户?

如何阻止Cognito用户删除自身账户?

核心解决方案:通过Cognito预删除Lambda触发器拦截删除请求

虽然Cognito默认允许已认证用户通过AccessToken调用DeleteUser接口,但可以通过Pre Delete Lambda触发器强制拦截用户发起的删除操作,这是官方支持的可靠方案:

  • 登录AWS控制台,进入目标Cognito用户池的「触发器」选项卡
  • 配置「Pre Delete」触发器,关联一个自定义Lambda函数
  • 在Lambda函数中添加逻辑:直接抛出错误终止删除流程;若需允许管理员删除,可通过校验调用者身份放行

示例Lambda函数核心逻辑:

exports.handler = async (event) => {
  // 拦截所有普通用户发起的删除请求
  throw new Error("Self-deletion of accounts is not allowed");
  
  // 若需开放管理员删除权限,可添加身份校验逻辑
  // if (event.triggerSource === 'Pre_Admin_DeleteUser') {
  //   return event;
  // } else {
  //   throw new Error("Self-deletion is forbidden");
  // }
};

辅助防护:通过后端API管控删除流程

  • 禁止前端直接调用Cognito的DeleteUser接口,所有账户删除请求必须经过你的后端API
  • 后端使用管理员级IAM凭证调用Cognito删除接口,同时添加权限校验(如仅允许平台管理员执行删除,或需人工审核用户的删除申请)
  • 前端仅提供「申请删除账户」入口,提交请求到后端后由平台统一处理,完全掌控删除权限

关于AppClient ID等信息的防护

浏览器端的环境变量无法完全隐藏(通过审查元素可获取),建议:

  • 使用Amplify + API Gateway作为中间层,前端仅与你的API交互,所有Cognito认证操作通过API代理完成,避免前端直接持有Cognito敏感信息
  • 限制Cognito App Client的权限,仅允许其调用必要的认证接口(如登录、刷新Token),缩小风险范围

内容的提问来源于stack exchange,提问作者Simran Dhillon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 16:30:43