Node.js AWS_IAM auth用于通过ApiGateway从elastic beanstalk调用Lambda
我正在与aws权限作斗争 TL/DR: 我有一个弹性beanstalk服务器,它需要调用隐藏在Api网关后面的lambda函数。只要我不在ApiGateway上实现auth,它就可以正常工作Node.js AWS_IAM auth用于通过ApiGateway从elastic beanstalk调用Lambda,node.js,amazon-web-services,aws-lambda,amazon-iam,amazon-elastic-beanstalk,Node.js,Amazon Web Services,Aws Lambda,Amazon Iam,Amazon Elastic Beanstalk,我正在与aws权限作斗争 TL/DR: 我有一个弹性beanstalk服务器,它需要调用隐藏在Api网关后面的lambda函数。只要我不在ApiGateway上实现auth,它就可以正常工作 我所做的: 将“AWS_IAM”添加到相应资源(此处为“/signS3”)和方法(此处为GET)的“方法请求”中 在我的“Elastic Beanstalk服务角色”和“Elastic Beanstalk实例概要文件”中添加了“AmazonaPiGatewayInvokeelAccess”策略 使用调用
- 我所做的:
- 将“AWS_IAM”添加到相应资源(此处为“/signS3”)和方法(此处为GET)的“方法请求”中
- 在我的“Elastic Beanstalk服务角色”和“Elastic Beanstalk实例概要文件”中添加了“AmazonaPiGatewayInvokeelAccess”策略
- 使用调用我的ApiGateway“方法/资源”
- 我得到的信息:“缺少身份验证令牌”…
- 可能是什么
- 也许我应该使用AWS-SDK调用ApiGateway,以便将角色链接到我的请求?但是我在sdk文档中没有找到合适的方法
- 我必须承认的策略是错误的。。。但我不这么认为,我使用的是默认AWS AmazonaPigatewayInvokuelLaccess默认策略
- 业务需求:我正在构建一个带有nodejs后端的移动应用程序,我需要我的用户能够将文件上传到S3 bucket
- 技术回答:使用S3预签名URL=>应用程序将有关要存储的文件的一些信息发送到我的后端,后端将获取特定文件一次性上载到S3的一些信息,并将其发送回我的应用程序,后者将文件直接上载到S3。合成良好
事实上,这是我的问题,我无法使AWS_IAM权限正常工作。==>查看TL/DR,了解我是如何尝试这样做的。您缺少的是发送到API网关的请求的相应签名。当您向需要AWS_IAM身份验证的API网关发出REST请求时,您需要使用附加角色的凭据自己对该请求进行签名。其他详情如下: