AWS Cognito 网络流量相关问题

Posted

技术标签:

【中文标题】AWS Cognito 网络流量相关问题【英文标题】:AWS Cognito network traffic flow related question 【发布时间】:2022-01-19 06:47:02 【问题描述】:

我们正在建立 api 网关,后面有 Lamba 功能。该设置使用 aws cognito 授权器。我们有 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) 或 Elliptic Curve Ephemeral Diffie-Hellman (ECDHE)。大多数现代系统(如 Java 7 及更高版本)都支持这些模式。”

根据上面的token应该是加密的。

但我有以下问题:

是否为 Cognito 强制执行 TLS (1.2)?

如果传输中的加密可用,安全最佳实践仍会要求通过 VPC 端点使用 Cognito,这样令牌就不需要在 Internet 上传输。

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

【问题讨论】:

【参考方案1】:

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

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

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

这一切都取决于您的风险偏好。对于大多数组织来说,加密就足够了。但是,如果您的风险偏好较低,您将需要额外的缓解措施,遵循“纵深防御”最佳实践。如果您可以添加很多,专用连接只是一种选择。例如,监控 suapicious 用户活动和自适应 MFA 是其他方法。

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

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

【讨论】:

以上是关于AWS Cognito 网络流量相关问题的主要内容,如果未能解决你的问题,请参考以下文章

传出流量 AWS 的公共 IP 地址

AWS攻略——初识流量镜像

使用 *** 混淆网络流量时,AWS CLI 脚本更改 EC2 的安全组以匹配当前分配的 IP 地址?

使用 Gmail API 时的网络流量收费

监控易网络管理:网络流量分析

在 AWS 上拒绝除 cloudwatch 之外的所有出站流量