Amazon(AWS)API网关 - 身份验证

3
我有一个 Python 微服务,希望将其连接到 AWS API Gateway。问题在于我已经研究了许多确保安全的方法,但并没有得出结论。我发现一个网站说我应该使用 SSL 证书,以仅允许来自 API Gateway 的请求。
可以有人告诉我在客户端、API Gateway 和 API 之间进行身份验证的最佳实践是什么吗?
3个回答

3

我查看了这个客户端的证书,但是找不到任何支持如何在Python上验证的文档。 - JuLiAnc
我搜索了Flask SSL客户端证书认证:o - JuLiAnc
@JuLiAnc 当我搜索时,我会得到多个结果,例如https://github.com/ContinuumIO/flask-ssl-authentication和https://github.com/stef/flask-tlsauth。 - Mark B

1

在API网关中实现身份验证有几种方法。不同的方法适用于不同的目的和期望实现的安全级别。

对于大多数情况,您可以编写自定义授权者lambda进行身份验证。借助JWT,您可以为API创建一个相当安全的身份验证。如果使用IAM身份验证,API Gateway直接支持它。唯一的限制是需要使用AWS SDK调用API以方便操作。由于API网关默认使用SSL,因此数据传输已经加密。

如果您有非常特定的安全要求,则可以使用SSL证书。这通常是在SOA场景中的服务编排中在API之间通信时首选。


1
你问什么是“最佳实践”,既然我们在亚马逊的AWS生态系统中,那肯定是使用 AWS Cognito。如果你选择这条路线,你的认证流程将会被锁定在供应商那里,但是它们很好地协作。登录通过调用AWS Cognito端点来完成:成功的登录将接收到会话令牌,然后可以在未来用于任何API Gateway调用。要启用它,只需单击任何API Gateway方法,单击进入方法请求,编辑授权,然后您将看到您创建的AWS Cognito用户池。这需要一些配置,但它非常有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接