我想使用AWS Labmda + API Gateway构建一个无服务器系统,我将在其中使用一些公共API和一些其他API仅供内部使用(所有这些都将使用Lambda函数和Node JS实现)。
我的问题是关于如何创建那些不会暴露给外部世界但只暴露给少数lambda函数的内部API的具体问题。
我知道网关中定义的所有API都是公开的。如何管理API的调用者只能来自我自己认可的AWS资源(特别是我的Lambda函数)?
我知道可能的答案是直接调用Lambda函数而不是通过API网关。这当然会起作用,但这里的缺点是它将实现耦合到AWS,而我正在尝试通过REST API获得构建Node微服务的解决方案。
感谢。
答案 0 :(得分:5)
记录在案here:
要为方法分配自定义访问权限,请在 “授权设置”区域,对于“授权类型”,选择“编辑”和 然后选择AWS_IAM。只有具有正确IAM策略的IAM角色 附件将被允许调用此方法。
然后您只需要为Lambda函数分配一个合适的IAM角色,以允许它们调用那些私有API网关方法。