AWS Cognito 网络流量相关问题

AWS Cognito network traffic flow related question

我们正在设置 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) 的密码套件,例如短暂 Diffie-Hellman (DHE) 或椭圆曲线短暂 Diffie-Hellman (ECDHE)。大多数现代系统,例如 Java 7 及更高版本都支持这些模式。"

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

但我有以下问题:

Is TLS (1.2) enforced for Cognito:

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

with encryption in transit being available would security best practices still dictate having Cognito available through VPC endpoint so that the token does not need to travel on internet:

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

if a client application is coming from on-prem environment and accessing the api then if we make it go through a proxy in AWS then will the traffic remain in AWS backbone network or still flow through internet?

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