我正在努力争取aws权限......
TL / DR: 我有一个弹性beanstalk服务器,需要调用隐藏在Api网关后面的lambda函数。只要我不在ApiGateway上实现auth,它就能正常工作。
有什么想法吗?
==============
全文:
不是问题,完全正常工作!是的!但是等等......
我推出安全帽并查看设置:移动应用程序的每个请求都转到服务器A(托管在Elastic Beanstalk上),这是我后端的入口点。那时,服务器A有一个带有AWS密钥的配置文件,用于配置AWS-SDK以访问S3。所以基本上,如果我的服务器由于某种原因而受到损害,我的安全密钥就会泄露。该怎么办?
我的回答是将请求委托给S3以获取AWS Lambda函数的预签名URL,该函数通过ApiGateway调用。然后,我的lambda函数 - 不暴露于互联网 - 必须妥协以泄露我的密钥。安全性得到了增强......很久以后,它就启动并运行了,我的应用程序请求也经历了这个过程。 很好,但仍然不完美:如果我不在我的ApiGateway方法中放置$%#@ Auth,它就有效!
确实,这就是我的问题,我没有设法让AWS_IAM权限有效。 ==>看看TL / DR,看看我是如何尝试的。
答案 0 :(得分:0)
您缺少的是发送到API网关的请求的相应签名。当您向需要AWS_IAM身份验证的API网关发出REST请求时,您需要使用附加角色的凭据自行签署该请求。其他详细信息:Accessing AWS API Gateway from an EC2 using IAM authorization (NodeJS)