首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在API网关上使用IAM验证Lambda ` `AssumeRole`‘作为认知身份

在API网关上使用IAM验证Lambda ` `AssumeRole`‘作为认知身份
EN

Stack Overflow用户
提问于 2022-10-17 10:00:44
回答 1查看 60关注 0票数 0

我已经将API网关设置为使用IAM进行身份验证,我喜欢用户获得临时凭证的想法,然后他们可以使用这些凭据来访问服务。此设置还有助于配置通过身份验证和未经身份验证的用户都可以访问的端点。

承诺(至少在我看来)是,我们可以使用这些临时凭据(或等效的令牌)访问所有服务。

我似乎发现的限制是使用从API网关执行的lamdas。虽然“事件”中有一些参数告诉我用户已经过身份验证,但我无法找到一种方法将AssumeRole作为根据API进行身份验证的认知标识。

我尝试使用STSAssumeRole作为在CognitoIdentityPool中定义为身份验证用户的角色。

AssumeRoleWithWebIdentity感觉更合适,但是在传递给lambda的大量字段中,我不确定是否有WebIdentityToken

到目前为止,我一直在使用HTTP网关。我看到API网关中的REST端点可以使用认知授权器。据我所知,这将不允许未经身份验证的/来宾用户通过认知身份池。

我可以看到,使用AWS扩容和临时IAM凭证,客户端可以直接访问服务,这将在很大程度上起作用。不过,我想提供一个简化的后端,以保持客户端打火机。

有可能得到其中一个可能的结果吗?

  • 将lambda执行为lambda内的认知识别IAM角色
  • ,承担认知识别IAM角色。这里有我失踪的记号吗?

我讨厌让lambda访问整个S3桶或DynamoDB表,我更愿意设置用户级别的策略,只有当我能够承担该身份时才能应用这些策略。

任何指点、指导和帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2022-10-20 07:30:32

我假设您正在配置认知组中的IAM角色,以便您可以使用不同的权限分配不同的组。

有两个选项,我可以想到,以实现你想要的。

备选案文1

  1. The IAM角色将有一个名为“信任策略”的部分,以允许认知承担该角色。您必须修改它以允许Lambda也承担此角色。

  1. 中的Lambda执行角色,确保它也具有允许Lambda承担其他角色的权限.

在Lambda代码中,要调用的API应该是AssumeRoleWithWebIdentity). (而不是像AssumeRoleWithWebIdentity).这样的其他变体)。

选项2

因为IAM角色控制对AWS服务的访问,所以您可以让客户端直接调用AWS API,而不是使用Lambda对所有内容进行正面处理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74095551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档