AWS Cognito网络流量相关问题



我们正在设置带有Lamba功能的api网关。该设置使用aws cognito authorizer。我们有api网关的VPC端点,因此可以通过私有IP访问。

但是cognito不支持私有链接,因此我们无法为其提供VPC端点。因此,这意味着cognito发布的令牌必须从https://ourdomain.auth.ap-southeast-2.amazoncognito.com通过互联网发送给客户。

Cognito文档对传输中的数据表示如下:-

"加密在途

所有对Amazon Cognito的请求都必须通过传输层安全协议(TLS(进行。客户端必须支持传输层安全性(TLS(1.0或更高版本。我们建议使用TLS 1.2或更高版本。客户端还必须支持具有完美前向保密性(PFS(的密码套件,如Ephemeral-Diffie-Hellman(DHE(或椭圆曲线Ephemeral Diffie-Hellmann(ECDHE(。大多数现代系统(如Java7及更高版本(都支持这些模式">

根据上面的内容,令牌应该被加密。

但我有以下问题:

  • Cognito是否强制执行TLS(1.2(?

  • 在传输中加密可用的情况下,安全最佳实践仍然要求通过VPC端点提供Cognito,这样令牌就不需要在互联网上传播。

  • 如果客户端应用程序来自on-prem环境并访问api,那么如果我们让它通过AWS中的代理,那么流量会留在AWS骨干网络中还是仍然通过互联网?

Cognito:是否强制执行TLS(1.2(

不幸的是,没有。对于大多数API调用,您可以使用API网关作为中间层,并在其中强制执行TLS1.2。但是,对于AUTHORIZATION和TOKEN端点,这是不起作用的。或者,您可以通过将Cognito部署到美国地区并在那里使用Cognito的FIPS端点,对所有端点强制执行它。看见https://docs.aws.amazon.com/general/latest/gr/cognito_identity.html用于可用的FIPS端点。

在传输中加密可用的情况下,安全最佳实践是否仍然要求通过VPC端点提供Cognito,这样令牌就不需要在互联网上传播:

这完全取决于你的风险偏好。对于大多数组织来说,加密就足够了。然而,如果你的风险偏好较低,你会想要额外的缓解措施,遵循";纵深防御;最佳实践。专用连接只是您可以添加的众多选项中的一个。监视可疑用户活动和自适应MFA是例如其他方法。

如果客户端应用程序来自on-prem环境并访问API,那么如果我们让它通过AWS中的代理,那么流量会留在AWS骨干网络中还是仍然通过互联网流动?

由于API端点是公共的,它们将通过互联网(公共ip地址,因此它被路由到NAT网关或互联网网关(。

编辑:在本新闻稿中,AWS表示,所有端点都具有TLS1.2最低要求:https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/.然而,我还没有测试这是否也适用于像上面提到的非控制平面API。

最新更新