是否需要自定义授权人/唯一的方式来对AWS API Gateway进行授权

时间:2016-03-02 20:16:45

标签: amazon-cognito aws-api-gateway

我有认知身份标识流为开发人员验证的身份工作,并返回AccessKeyId,SecretAccessKey和SessionToken(虽然我认为不需要这个)。然后我使用这些凭据来验证我的api-gatweay,但我一直得到403 Forbidden。 (我生成的凭据的基础角色具有完全访问权限)

我看到有一种方法可以让自定义授权器lambda执行此操作,但我想知道是否有其他方法可以执行此操作。我想知道这个的原因是,如果我使用自己的个人访问和秘密密钥来发送请求到api网关,它的工作原理!

1 个答案:

答案 0 :(得分:2)

您无法使用自定义授权程序对AWS签名进行身份验证。自定义授权程序适用于非AWS身份验证解决方案。

此外,您需要在签署请求时使用SessionToken ,这可能就是问题所在。您的个人凭据是有效的,因为它们是长期的,但Cognito会出售短期会话凭证。

如何使用会话令牌 - > http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html#RequestWithSTS

如果您要在iOS,Android或JavaScript中构建移动应用,那么来自API Gateway的生成的SDK会内置签名者 - > http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-generate-sdk.html

如果您在方法上启用了AWS_IAM授权,并且您使用Cognito凭据对该方法发出了签名请求,那么如果签名出现问题,您应该收到包含403响应的描述性错误消息。 / p>