代码之家  ›  专栏  ›  技术社区  ›  The Unknown Dev

为什么我的身份池中的临时AWS凭据未经授权?

  •  0
  • The Unknown Dev  · 技术社区  · 7 年前

    我有一个身份池,它有一个经过身份验证的角色。该角色的策略之一是对API网关终结点具有完全调用访问权。使用创建临时凭据时 AWS.config.credentials.get() ,我创建了一个API网关客户端实例,如下所示。

    AWS.config.region = 'us-east-1';
    var newClientCredentials = {
                    accessKey: accessKey,
                    secretKey: secretKey
                };
    
    apiClient = apigClientFactory.newClient(newClientCredentials);
    apiClient.myendpointPost({}, postRequest, requestParams).then(function(result) {console.log(result)});
    

    我仔细检查过了 accessKey 和 secretKey 已设置。当我打电话给 apiClient 最终,我得到了一个 unauthorized 来自网关的响应。

    我的问题:

    • 有没有办法检查临时凭据( 访问密钥 和 秘钥 )是否为适当的身份验证角色?
    • 有没有可能找出API网关拒绝这些凭据的原因(也许我可以登录到CloudWatch)?
    0 回复  |  直到 7 年前
        1
  •  0
  •   The Unknown Dev    7 年前

    正如尼纳德在评论中指出的那样,我忘了在会话中传递钥匙。然而,我错过的一个关键步骤是,必须将我所命中的端点上的授权设置为 AWS_IAM . 我之前将其设置为Cognito并指向用户池,这是不正确的。