使用放大后确认触发器时缺少权限

Missing permissions when using amplify postConfirmation trigger

我通过设置指南设置 Do you want to enable any of the following capabilities?Add User to Group 使用 amplify update auth 和 运行 创建了一个 PostConfirmation lambda 触发器,这创建了一个`amplify/backend/function//src/add-to-group.js.

中特定功能的模板

然后我使用 amplify push 推送了函数。可悲的是,现在当一个新用户得到确认时,它并没有被添加到想要的组中。检查该特定 lambda 的日志时,出现以下错误:

xyzd1aPostConfirmation-dev is not authorized to perform: cognito-idp:GetGroup on resource …
xyzd1aPostConfirmation-dev is not authorized to perform: cognito-idp:CreateGroup on resource ...

有人知道为什么会这样吗?创建的 IAM 用户不应该拥有使模板文件正常工作的正确权限吗?我该如何解决?

编辑:在 AWS 网络界面中,lambda 附加了一个满足所需权限的现有角色

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "cognito-idp:AdminAddUserToGroup",
                "cognito-idp:GetGroup",
                "cognito-idp:CreateGroup"
            ],
            "Resource": "arn:aws:cognito-idp:eu-west-1:xyz:userpool/abc…",
            "Effect": "Allow"
        }
    ]
}

提前感谢您的帮助!

没关系。这些错误仅在 aws 界面中使用 lambda 测试模式时才会发生。

当您在 Cognito 用户界面中设置用户并从 FORCE_CHANGE_PASSWORDCONFIRMED 时,Lambda 触发器不会触发。它仅在您使用实际 signUp API 并从 UNCONFIRMED 变为 CONFIRMED 时触发。