TLS 1.2 将成为所有亚马逊云科技API 端点的最低 TLS 协议级别
为了应对不断发展的传输层安全性协议 (TLS) 技术和监管标准,我们将把所有服务的亚马逊云科技API 端点的 TLS 配置至少更新到 TLS 1.2 版本。此更新意味着到 2023 年 6 月 28 日,您无法再将 TLS 1.0 版本和 TLS 1.1 版本用于亚马逊云科技中国区域内的所有亚马逊云科技API。在这篇文章中,我们将告诉您如何检查自己的 TLS 版本,以及需要做哪些准备工作。
如果您是已经使用 TLS 1.2 或更高版本的 95% 以上客户之一,则不会受到此次变更的影响。如果您的客户端软件应用程序是在 2014 年之后使用 Amazon 软件开发套件 (Amazon SDK)、Amazon 命令行界面 (Amazon CLI)、Java 开发套件 (JDK) 8 或更高版本或其他现代开发环境构建的,则几乎可以肯定您已经在使用 TLS 1.2 或更高版本。仍在使用 TLS 1.0 或 TLS 1.1 的客户必须更新客户端软件以使用 TLS 1.2 或更高版本,这样才能保持连接。您将在自己的 Amazon Health Dashboard 上收到通知,同时会通过电子邮件收到通知。
2023 年 6 月 28 日之后,我们将更新 API 端点配置以删除 TLS 1.0 和 TLS 1.1,即使您仍在使用这些版本进行连接。请务必了解,您已经可以控制连接时使用的 TLS 版本。连接到亚马逊云科技 API 端点时,您的客户端软件会协商其首选 TLS 版本,我们会使用双方商定的高版本。
您应该针对此次更新做哪些准备工作?
为了最大限度地降低风险,您可以自行识别是否有任何使用 TLS 1.0 或 TLS 1.1 的连接。如果您发现任何使用 TLS 1.0 或 TLS 1.1 的连接,则应更新自己的客户端软件以使用 TLS 1.2 或更高版本。
在识别是否使用过期的 TLS 版本方面,Amazon CloudTrail 记录特别有用。现在,您可以使用最近添加的 tlsDetails 字段搜索用于连接的 TLS 版本。每条 CloudTrail 记录中的 tlsDetails 结构包含服务 API 调用中使用的 TLS 版本、密码套件以及客户端提供的主机名,后者通常是服务端点的完全限定域名 (FQDN)。然后,您可以使用记录中的数据来协助查明负责 TLS 1.0 或 TLS 1.1 调用的客户端软件,并对其执行相应的更新。
我们建议使用以下选项之一来运行 CloudTrail TLS 查询:
- Amazon CloudWatch Log Insights:可以使用两个内置的 CloudWatch Log Insights 进行 CloudTrail TLS 查询,如图 1 两个示例所示。
图 1:CloudWatch Log Insights 的可用示例 TLS 查询示例
- Amazon Athena:可以在 Amazon Athena 中查询 Amazon CloudTrail 日志,在 2022 年 11 月,我们新增的功能支持查询 CloudTrail 日志中的 TLS 值。
除了使用 CloudTrail 数据外,还可以通过执行代码、网络或日志分析来识别连接使用的 TLS 版本
如何更新我的软件客户端使用的 TLS 版本?
我们鼓励您积极主动地更新,以避免影响可用性。此外,我们建议您在分阶段测试环境中测试配置更改,然后再将其引入生产工作负载。使用 Amazon 软件开发套件 (Amazon SDK) 的客户可以在 Amazon SDK 的以下主题中找到有关如何正确配置客户端最低和最高 TLS 版本的信息:
- 适用于 .NET 的 Amazon SDK:用于强制实施最低 TLS 版本或 GitHub 上的 Amazon SDK for .NET 存储库的 Amazon .NET SDK。
- 适用于 PHP SDK 的 Amazon SDK:用于强制实施最低 TLS 版本的 Amazon PHP SDK
- 适用于 Python(Boto 文档)的 Amazon SDK:用于强制实施最低 TLS 版本的 Amazon Python SDK
- Amazon CLI:用于使用 Python 强制实施最低 TLS 版本的 Amazon CLI
- 适用于 C++ 的 Amazon SDK:用于强制实施最低 TLS 版本的 Amazon C++ SDK
- 适用于 Ruby 的 Amazon SDK:用于强制实施最低 TLS 版本的 Amazon Ruby SDK
- 适用于 JavaScript v3 的 Amazon SDK:用于强制实施最低 TLS 版本的适用于 JavaScript v3 的 Amazon SDK
- 适用于 Java v2 的 Amazon SDK:用于强制实施最低 TLS 版本的适用于 Java v2 的 Amazon SDK
- 适用于 Java v1 的 Amazon SDK:用于强制实施最低 TLS 版本的适用于 Java v1 的 Amazon SDK
- 适用于 JavaScript 的 Amazon SDK:用于强制实施最低 TLS 版本的 Amazon JavaScript SDK
如果我使用的是 TLS 1.0 或 TLS 1.1,我会收到通知吗?
如果我们检测到您使用的是 TLS 1.0 或 TLS 1.1,您将在自己的 Amazon Health Dashboard 上收到通知,并且将收到电子邮件通知。但是,因为我们无法识别匿名连接,所以,您不会收到您与亚马逊云科技共享资源(例如公有 Amazon Simple Storage Service (Amazon S3) 存储桶)建立的匿名连接的通知。此外,尽管我们将尽一切努力识别并通知每位客户,但我们可能无法检测到不频繁的连接,例如每月少于一次的连接。