View a markdown version of this page

强制实施最低 TLS 版本 - 适用于 Go 的 AWS SDK v2

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

强制实施最低 TLS 版本

为了提高与 AWS 服务通信时的安全性,必须将客户端配置为使用 TLS 1.2 或更高版本。要使用 AWS 服务,底层 Go 运行时必须支持 TLS 1.2 的最低版本,但建议使用 TLS 1.3。

TLS 1.3 是启用后量子加密的先决条件,这可能需要额外的操作或配置。有关更多信息,请参阅《 AWS 软件开发工具包和工具参考指南》中的启用混合后量子 TLS。

注意

从 Go 网站上的 Go 1.18 开始,net/http默认情况下使用的 TLS 配置至少为 TLS 1.2,并且禁用了对 TLS 1.0 和 TLS 1.1 的支持。

设置 TLS 版本

在 适用于 Go 的 AWS SDK v2 中,您可以通过提供自定义 HTTP 客户端来配置最低 TLS 版本,该客户端的传输指定了 T LS.config,该客户端记录在 Go 软件包文档网站上。有关自定义 HTTP 客户端的更多信息,请参阅自定义 HTTP 客户端。

以下示例构建了一个至少需要 TLS 1.2 的 HTTP 客户端,并将其传递给config.LoadDefaultConfig。

import ( "context" "crypto/tls" "log" "net/http" awshttp "github.com/aws/aws-sdk-go-v2/aws/transport/http" "github.com/aws/aws-sdk-go-v2/config" ) // ... httpClient := awshttp.NewBuildableClient().WithTransportOptions(func(tr *http.Transport) { tr.TLSClientConfig = &tls.Config{ MinVersion: tls.VersionTLS12, } }) cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithHTTPClient(httpClient)) if err != nil { log.Fatalf("failed to load configuration, %v", err) }

要要求 TLS 1.3,MinVersion请将设置为tls.VersionTLS13。

注意

有些 AWS 服务尚不支持 TLS 1.3。将 TLS 1.3 设置为最低版本可能会影响互操作性。我们建议在部署到生产环境之前,对每项服务进行此项更改。