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

使用AWS CDK Python配置UserPool Client属性读写权限时遇400错误

问题分析与修复方案

错误原因

你遇到的「创建客户端时指定的写入属性无效」错误,核心原因有两个可能:

1. 用户池引用笔误

代码中创建用户池时赋值给了self.my_user_pool,但添加客户端时却调用了self.user_pool.add_client(),这里的self.user_pool是未定义的对象,导致客户端关联的用户池并非你自定义了属性的那个,自然找不到对应的custom:custom_attribute_1属性,触发无效请求错误。

2. 自定义属性权限配置验证

虽然你已经将自定义属性设为mutable=True(允许修改),但如果客户端尝试写入的属性未在用户池中正确定义,或者属性名格式错误,也会触发该错误。不过你的属性名格式custom:custom_attribute_1符合Cognito规范,这个是次要排查点。

修复步骤

第一步:修正用户池引用错误

将客户端创建代码中的self.user_pool替换为self.my_user_pool:

self.my_user_pool_client = self.my_user_pool.add_client(
    "<my_cognito_client_id>",
    access_token_validity=Duration.minutes(60),
    id_token_validity=Duration.minutes(60),
    refresh_token_validity=Duration.days(1),
    auth_flows=cognito.AuthFlow(admin_user_password=True, user_srp=True, custom=True),
    o_auth=cognito.OAuthSettings(flows=cognito.OAuthFlows(implicit_code_grant=True)),
    prevent_user_existence_errors=True,
    generate_secret=True,
    read_attributes=client_read_attributes,
    write_attributes=client_write_attributes,
    enable_token_revocation=True,
)

第二步:验证自定义属性配置(可选)

确认用户池中的自定义属性确实被正确创建:

  • 检查custom_attributes字典中的键名是否存在拼写错误
  • 确认mutable=True已正确设置,只有标记为可修改的自定义属性才能被客户端写入

额外注意事项

  • Cognito自定义属性的格式必须以custom:为前缀,你当前的写法是正确的
  • 如果后续需要添加更多自定义属性,需同时更新用户池定义和客户端的读写属性列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 16:42:08