Rya*_*edy 0 amazon-web-services amazon-iam aws-lambda aws-sts
我正在开发一个基于 API 网关/Lambda 的项目。请求流程如下:
sts.assumeRole()并成功生成accessKeyIdandsecretAccessKeyaccessKeyId/secretAccessKey尝试访问 S3 存储桶中的项目除了最后一步之外,该过程的每一步都正常工作(通过控制台日志确认)。当我尝试使用生成的凭据时,收到以下错误消息:
{
"message": "The AWS Access Key Id you provided does not exist in our records.",
"code": "InvalidAccessKeyId",
"region": null,
"time": "2019-07-19T22:05:05.817Z",
"requestId": "...",
"extendedRequestId": "...",
"statusCode": 403,
"retryable": false,
"retryDelay": 68.28400384749038
}
Run Code Online (Sandbox Code Playgroud)
我知道这强烈暗示 STS 有一些我不明白的东西,但我一直无法弄清楚是什么。(例如,当授权者 lambda 完成运行时,AWS 是否会取消分配生成的角色?)
为什么 AWS 会拒绝新生成的凭证对并报告此错误消息?
根据AssumeRole 文档,返回的内容SessionToken还必须包含在使用生成的凭据的任何请求中。
当您使用临时安全凭证进行呼叫时,该呼叫必须包含会话令牌,该令牌会与这些临时凭证一起返回。AWS 使用会话令牌来验证临时安全凭证。
我假设生成的凭据与用户访问密钥完全相同,并期望仅使用这两条信息即可成功调用。
| 归档时间: |
|
| 查看次数: |
1513 次 |
| 最近记录: |