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

时间:2019-03-06 23:59:12

标签: amazon-web-services sdk amazon-cognito aws-userpools

我有一个身份验证池,具有身份验证角色。该角色的策略之一是具有对API网关端点的完全调用访问权限。当我使用AWS.config.credentials.get()创建临时凭据时,会像这样创建API Gateway客户端的实例。

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)});

我已经仔细检查了accessKeysecretKey的设置。当我用apiClient到端点进行呼叫时,我收到了来自网关的unauthorized响应。

我的问题:

  • 是否有办法检查临时凭据(accessKeysecretKey)是否适用于适当的身份验证角色?
  • 是否有可能找出API Gateway拒绝这些凭据的原因(也许我可以登录到CloudWatch)?

1 个答案:

答案 0 :(得分:0)

正如Ninad在评论中指出的那样,我忘记了在会议中也要通过钥匙。但是,我错过的一个关键步骤是必须将我击中的端点上的Authorization设置为AWS_IAM。我之前将其设置为Cognito并指向用户池,这是不正确的。