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 及更高版本都支持这些模式。"
根据上面的内容,令牌应该被加密。
但我有以下问题:
Cognito 是否强制执行 TLS (1.2)?
在传输中加密可用的情况下,安全最佳实践是否仍然要求通过 VPC 端点提供 Cognito,以便令牌不需要在互联网上传输。
如果客户端应用程序来自本地环境并访问 api 那么如果我们让它通过 AWS 中的代理,那么流量是否会保留在 AWS 中 backbone 网络还是仍然通过互联网?
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 网关或互联网网关)。
我们正在设置 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 及更高版本都支持这些模式。"
根据上面的内容,令牌应该被加密。
但我有以下问题:
Cognito 是否强制执行 TLS (1.2)?
在传输中加密可用的情况下,安全最佳实践是否仍然要求通过 VPC 端点提供 Cognito,以便令牌不需要在互联网上传输。
如果客户端应用程序来自本地环境并访问 api 那么如果我们让它通过 AWS 中的代理,那么流量是否会保留在 AWS 中 backbone 网络还是仍然通过互联网?
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 网关或互联网网关)。