使用 SSL/TLS 加密与数据库实例或集群的连接
您可以使用应用程序中的安全套接字层(SSL)或传输层安全性协议(TLS)来加密与运行 Db2、MariaDB、Microsoft SQL Server、MySQL、Oracle 或 PostgreSQL 的数据库的连接。
SSL/TLS 连接通过加密可在您的客户端和数据库实例或集群之间移动的数据来提供一层安全性。(可选)您的 SSL/TLS 连接可以通过验证安装在数据库上的服务器证书来执行服务器身份验证。要请求服务器身份验证,请遵循以下一般流程:
-
为数据库选择对数据库服务器证书进行签名的证书颁发机构(CA)。有关证书颁发机构的更多信息,请参阅证书颁发机构。
-
下载证书包,以便在连接到数据库时使用。要下载证书捆绑包,请参阅特定 Amazon Web Services 区域的证书捆绑包。
注意
只能使用 SSL/TLS 连接下载所有证书。
-
使用数据库引擎用于实现 SSL/TLS 连接的过程连接到数据库。每个数据库引擎都有自己的用于实施 SSL/TLS 的过程。要了解如何为您的数据库实施 SSL/TLS,请使用对应于您的数据库引擎的链接:
证书颁发机构
证书颁发机构(CA)是用于标识证书链顶部的根 CA 的证书。CA 签署安装在每个数据库实例上的数据库服务器证书。数据库服务器证书将数据库实例标识为可信服务器。
Amazon RDS 提供以下 CA 来签署数据库的数据库服务器证书。
证书颁发机构(CA) | 描述 | 公用名(CN) |
---|---|---|
rds-ca-rsa2048-g1 |
在大多数 Amazon Web Services 区域中,使用具有 RSA 2048 私有密钥算法和 SHA256 签名算法的证书颁发机构。 在 Amazon GovCloud (US) Regions中,此 CA 使用具有 RSA 2048 私有密钥算法和 SHA384 签名算法的证书颁发机构。 此 CA 支持服务器证书自动轮换。 |
Amazon RDS region-identifier RSA2048 G1 |
注意
如果您使用的是 Amazon CLI,则可以使用 describe-certificates 查看上面列出的证书颁发机构的有效性。
这些 CA 证书包含在区域和全球证书捆绑包中。当您将 rds-ca-rsa2048-g1 CA 用于数据库时,RDS 会管理数据库上的数据库服务器证书。RDS 会在数据库服务器证书过期之前自动轮换此证书。
为数据库设置 CA
您可以在执行以下任务时为数据库设置 CA:
-
创建数据库实例或多可用区数据库集群 – 您可以在创建数据库实例或集群时设置 CA。有关说明,请参阅创建 Amazon RDS 数据库实例或创建 Amazon RDS 的多可用区数据库集群。
-
修改数据库实例或多可用区数据库集群 - 您可以通过修改数据库实例或集群为其设置 CA。有关说明,请参阅修改 Amazon RDS 数据库实例或修改 Amazon RDS 的多可用区数据库集群。
注意
默认 CA 设置为 rds-ca-rsa2048-g1。您可以使用 modify-certificates 命令为您的 Amazon Web Services 账户覆盖默认 CA。
可用的 CA 取决于数据库引擎和数据库引擎版本。使用 Amazon Web Services Management Console时,您可以使用 Certificate authority(证书颁发机构)设置选择 CA,如下图所示。
控制台仅显示可用于数据库引擎和数据库引擎版本的 CA。如果您使用的是 Amazon CLI,则可以使用 create-db-instance 或 modify-db-instance 命令为数据库实例设置 CA。您可以使用 create-db-cluster 或 modify-db-cluster 命令为多可用区数据库集群设置 CA。
如果您使用的是 Amazon CLI,则可以使用 describe-certificates 命令查看您账户的可用 CA。此命令还在输出的 ValidTill
中显示每个 CA 的到期日期。您可以使用 describe-db-engine-versions 命令找到适用于特定数据库引擎和数据库引擎版本的 CA。
以下示例显示了可用于默认 RDS for PostgreSQL 数据库引擎版本的 CA。
aws rds describe-db-engine-versions --default-only --engine postgres
输出类似于以下内容。SupportedCACertificateIdentifiers
中列出了可用的 CA。输出还显示数据库引擎版本是否支持在 SupportsCertificateRotationWithoutRestart
中不重新启动的情况下轮换证书。
{
"DBEngineVersions": [
{
"Engine": "postgres",
"MajorEngineVersion": "13",
"EngineVersion": "13.4",
"DBParameterGroupFamily": "postgres13",
"DBEngineDescription": "PostgreSQL",
"DBEngineVersionDescription": "PostgreSQL 13.4-R1",
"ValidUpgradeTarget": [],
"SupportsLogExportsToCloudwatchLogs": false,
"SupportsReadReplica": true,
"SupportedFeatureNames": [
"Lambda"
],
"Status": "available",
"SupportsParallelQuery": false,
"SupportsGlobalDatabases": false,
"SupportsBabelfish": false,
"SupportsCertificateRotationWithoutRestart": true,
"SupportedCACertificateIdentifiers": [
"rds-ca-rsa2048-g1",
"rds-ca-ecc384-g1",
"rds-ca-rsa4096-g1"
]
}
]
}
数据库服务器证书有效期
数据库服务器证书的有效期取决于数据库引擎和数据库引擎版本。如果数据库引擎版本支持在不重启的情况下轮换证书,则数据库服务器证书的有效期为 1 年。否则,有效期为 3 年。
有关数据库服务器证书轮换的更多信息,请参阅自动服务器证书轮换。
查看数据库实例的 CA
您可以通过查看控制台中的连接性和安全性选项卡来查看有关数据库的 CA 的详细信息,如下图所示。
如果您使用的是 Amazon CLI,您可以使用 describe-db-instances 命令,查看有关数据库实例的 CA 的详细信息。您可以使用 describe-db-clusters 命令查看有关多可用区数据库集群的 CA 的详细信息。
下载 Amazon RDS 的证书捆绑包
当您使用 SSL 或 TLS 连接到数据库时,数据库实例需要来自 Amazon RDS 的信任证书。在下表中选择相应的链接,来下载与托管数据库的 Amazon Web Services 区域相对应的捆绑包。
特定 Amazon Web Services 区域的证书捆绑包
要获取中国(北京)Amazon 区域或中国(宁夏)Amazon 区域的证书捆绑包,可从 https://rds-truststore.s3.cn-north-1.amazonaws.com.cn/global/global-bundle.pem
该捆绑包包含 rds-ca-rsa2048-g1
、rds-ca-rsa4096-g1
和 rds-ca-ecc384-g1
根 CA 证书。您的应用程序信任存储只需要注册根 CA 证书。
要获取证书捆绑包,可通过下表中与 Amazon 区域对应的链接下载。
Amazon 区域 | 证书捆绑包 (PEM) | 证书捆绑包 (PKCS7) |
---|---|---|
China (Beijing) | cn-north-1-bundle.pem |
cn-north-1-bundle.p7b |
China (Ningxia) | cn-northwest-1-bundle.pem |
cn-northwest-1-bundle.p7b |
查看 CA 证书的内容
要检查您的 CA 证书包的内容,请使用以下命令:
keytool -printcert -v -file global-bundle.pem