gpt4 book ai didi

amazon-web-services - 从临时凭证正确生成 AWS auth header

转载 作者:行者123 更新时间:2023-12-04 04:28:29 26 4
gpt4 key购买 nike

我有一个 API 网关,它有两个端点:

  • 授权类型为 NONE .委托(delegate)给一个名为 fooLambda 的 lambda .
  • 授权类型为 AWS_IAM .

  • 客户端应该调用端点 1 从 fooLambda 获取凭据。以便他们可以成功调用端点 2。

    我正在使用 AWS Node.js sdk 和 aws4用于签署 aws 请求的 npm 模块。这是我的 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'],
    }

    现在我的意图是客户端可以将这两个 header 附加到他们的请求中,以便他们可以成功调用端点 2,但我收到一条错误消息,指出安全 token 无效,但我不确定为什么。

    更新:当我使用 Postman 的 AWS 签名授权类型并提供我的 accessKey、secretKey、aws 区域、服务名称和 session token 参数时 - 它会创建授权 header 并且对端点 2 的请求成功!

    检查 postman 生成的授权 header 后,授权 header 似乎具有不同的签名。所以现在的问题是:“ postman 如何生成正确的授权 header 但 aws4 不是?”

    最佳答案

    1. 您必须附上以下政策 AmazonAPIGatewayInvokeFullAccess 您的用户,也许您也可以创建一个用户组并附加该策略。

    2. 仅供丢弃,创建一个没有身份验证的新方法(端点),例如:

        https://uid.execute-api.regionidentifier.amazonaws.com/test/ping

    因此,我们放弃了与 apigateway 相关的任何问题。

    一旦实现了“ping”方法,您可以使用 postman测试它。

    3. 验证 AWS_IAM_AUTH 正在使用您的方法(端点)。

    所以,我找到了这个 video这对于使用 auth header 测试您的端点非常有帮助。

    祝你好运,稍后告诉我进展如何。

    关于amazon-web-services - 从临时凭证正确生成 AWS auth header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52939247/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com