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

AWS Cognito自助操作的细粒度权限范围如何实现?

关于AWS Cognito自助服务API细粒度权限控制的问题

背景

在AWS Cognito中,通过InitiateAuth或AdminInitiateAuth获取访问令牌时,其scope声明固定为aws.cognito.signin.user.admin,该权限允许用户调用所有自助服务API,包括修改密码、更新属性、禁用MFA甚至删除用户。

需求

希望对自助服务API实现更细粒度的控制,例如允许调用GetUser和ChangePassword,同时禁止SetUserMfaPreference和DeleteUser。

对现有方案的疑问

曾看到有方案提出将Cognito用户池与身份池结合实现细粒度控制,但实际查阅相关官方教程后发现,该流程似乎仅适用于开放原本被禁止的操作(如读取DynamoDB)——它假设用户会主动请求IAM凭证;但只要有人知道用户池的client id(可从id token的aud声明中提取),就可以调用InitiateAuth获取带有scope: aws.cognito.signin.user.admin的访问令牌,攻击者完全不会主动请求受限凭证,所以这个方案实际无法达到限制目的。

现有思路的困境

我想到的一个解决方案是自研服务完全封装AWS Cognito,但这样必须彻底隐藏底层使用Cognito的事实——因为任何人持有Cognito的原始id token都可以调用InitiateAuth获取访问令牌。而安全地封装认证服务对小型团队来说难度极大。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 02:31:00