Oge*_*gen 9 amazon-web-services aws-sdk
我有一个有两个端点的API网关:
NONE.代表一个名为lambda的人fooLambda.AWS_IAM.客户端应该调用端点1以从中获取凭据,fooLambda以便它们可以成功调用端点2.
我正在使用AWS Node.js sdk和aws4npm模块来签署aws请求.这是我的一些伪代码fooLambda:
// get the role using this...
STS.assumeRole({
RoleArn: 'arn of my role that can call endpoint 2',
RoleSessionName: 'foobar',
})
// parse the sts creds like this....
const stsCredentials = STS.credentialsFrom(assumeRoleResponse)
// get a collection of signed headers like so
const signedHeaders = aws4.sign({
service: 'execute-api',
region: process.env.REGION,
}, {
secretAccessKey: stsCredentials.secretAccessKey,
accessKeyId: stsCredentials.accessKeyId,
sessionToken: stsCredentials.sessionToken,
}).headers;
// return the following headers to the client
return {
authorizationHeader: signedHeaders['Authorization'],
stsSecurityToken: signedHeaders['X-Amz-Security-Token'],
}
Run Code Online (Sandbox Code Playgroud)
现在我的意图是客户端可以将这两个标头附加到他们的请求,以便他们可以成功调用端点2,但我收到一个错误,说安全令牌无效,但我不知道为什么.
更新:当我使用Postman的AWS签名授权类型并提供我的accessKey,secretKey,aws区域,服务名称和会话令牌参数时 - 它会创建授权标头,并且对端点2的请求成功!
在检查邮递员生成的授权标头之后,似乎Authorization标头具有不同的签名.所以现在问题是:"邮递员如何生成正确的授权标头,但aws4不是?"
| 归档时间: |
|
| 查看次数: |
468 次 |
| 最近记录: |