配置连接的安全选项
Amazon Redshift 支持安全套接字层 (SSL) 连接来加密数据和服务器证书,以验证客户端连接到的服务器证书。
SSL
为了支持 SSL 连接,Amazon Redshift 会在每个集群中创建并安装 AWS Certificate Manager (ACM)sslmode
连接选项设置为 require
、verify-ca
或 verify-full
,则您可能需要下载证书捆绑包。如果您的客户需要,Amazon Redshift 会提供如下捆绑证书:
-
捆绑包下载地址:https://s3.amazonaws.com/redshift-downloads/amazon-trust-ca-bundle.crt
。 -
预期的 MD5 校验码为 418dea9b6d5d5d5de7a8f1ac42e164cdcf。
-
sha256 校验码为 36dba8e4b8041cd14b9d601593963301bcbb92e1c456847784de2acb5bd550。
不要使用位于
https://s3.amazonaws.com/redshift-downloads/redshift-ca-bundle.crt
的之前的证书捆绑包。 -
-
在中国 AWS 区域,请从以下网址下载捆绑包:https://s3---cn-north-1.amazonaws.com.rproxy.goskope.com.cn/redshift-downloads-cn/amazon-trust-ca-bundle.crt
。 -
预期的 MD5 校验码为 418dea9b6d5d5d5de7a8f1ac42e164cdcf。
-
sha256 校验码是 36dba8e4b8041cd14b9d601593963301bcbb92e1c456847784de2acb5bd550。
不要使用位于
https://s3---cn-north-1.amazonaws.com.rproxy.goskope.com.cn/redshift-downloads-cn/redshift-ca-bundle.crt
和https://s3---cn-north-1.amazonaws.com.rproxy.goskope.com.cn/redshift-downloads-cn/redshift-ssl-ca-cert.pem
的以前的证书捆绑包 -
重要
Amazon Redshift 改变了我们管理 SSL 证书的方法。您可能需要更新当前的信任根 CA 证书,才能继续使用 SSL 连接集群。有关更多信息,请参阅 将 SSL 连接过渡到 ACM 证书。
默认情况下,无论连接是否使用 SSL,集群数据库都会接受该连接。要将您的集群配置为需要使用 SSL 连接,请在与集群关联的参数组中将 require_SSL
参数设置为 true
。
Amazon Redshift 支持符合联邦信息处理标准 (FIPS) 140-2 的 SSL 模式。符合 FIPS 的 SSL 模式在默认情况下处于禁用状态。
重要
仅在您的系统需要与 FIPS 兼容时才启用与 FIPS 兼容的 SSL 模式。
要启用符合 FIPS 的 SSL 模式,请在与 Amazon Redshift 集群或 Redshift Serverless 工作组关联的参数组中,将 use_fips_ssl
参数和 require_SSL
参数设置为 true
。有关修改集群上的参数组的信息,请参阅 Amazon Redshift 参数组。有关修改工作组上的参数组的信息,请参阅配置与 Amazon Redshift Serverless 的符合 FIPS 的 SSL 连接 。
Amazon Redshift 支持 Elliptic Curve Diffie—Hellman Ephemeral (ECDHE) 密钥协商协议。ECDHE 使得客户端和服务器各有一个椭圆曲线公有/私有密钥对,用来在不安全的通道上创建共享密钥。您无需在 Amazon Redshift 中进行任何配置即可启用 ECDHE。如果您从使用 ECDHE 来加密客户端与服务器间通信的 SQL 客户端工具进行连接,则 Amazon Redshift 将使用提供的密码列表来建立合适的连接。有关更多信息,请参阅 Wikipedia 上的 Elliptic curve diffie—hellman
ODBC 中的 SSL 和信任 CA 证书
如果您使用最新 Amazon Redshift ODBC 驱动程序 (1.3.7.1000 版或更高版本) 连接,则可以跳过此部分。要下载最新驱动程序,请参阅为 Amazon Redshift 配置 ODBC 驱动程序版本 2.x 连接。
您可能需要更新当前的信任根 CA 证书,才能继续使用 SSL 连接集群。有关更多信息,请参阅 SSL。
您可以验证下载的证书是否与此预期的 MD5 校验和码匹配。为此,您可以在 Linux 操作系统上使用 Md5sum 程序,或者在 Windows 和 macOS X 操作系统上使用其他工具。
ODBC DSN 中的 sslmode
设置用于确定如何处理客户端连接加密和服务器证书验证。Amazon Redshift 支持客户端连接中的以下 sslmode
值:
-
disable
SSL 处于禁用状态,且连接未加密。
-
allow
如果服务器需要,则使用 SSL。
-
prefer
如果服务器支持,则使用 SSL。Amazon Redshift 支持 SSL,因此您可以在将
sslmode
设置为prefer
时使用 SSL。 -
require
需要使用 SSL。
-
verify-ca
必须使用 SSL,且必须验证服务器证书。
-
verify-full
必须使用 SSL。必须验证服务器证书,且服务器主机名必须与证书上的主机名属性一致。
您可以确定是否使用了 SSL 以及是否在客户端和服务器之间的连接中验证了服务器证书。为此,您需要查看客户端上 ODBC DSN 的 sslmode
设置以及服务器上 Amazon Redshift 集群的 require_SSL
设置。下表介绍了各种客户端与服务器设置组合的加密结果:
sslmode(客户端) | require_SSL(服务器) | 结果 |
---|---|---|
disable |
false |
连接未加密。 |
disable |
true |
由于服务器需要使用 SSL,但客户端针对该连接禁用了 SSL,因此无法建立连接。 |
allow |
true |
连接经过加密。 |
allow |
false |
连接未加密。 |
prefer 或者 require |
true |
连接经过加密。 |
prefer 或者 require |
false |
连接经过加密。 |
verify-ca |
true |
连接经过加密,且验证了服务器证书。 |
verify-ca |
false |
连接经过加密,且验证了服务器证书。 |
verify-full |
true |
连接经过加密,且验证了服务器证书和主机名。 |
verify-full |
false |
连接经过加密,且验证了服务器证书和主机名。 |
在 Microsoft Windows 上使用服务器证书和 ODBC 进行连接
如果要使用 SSL 和服务器证书连接到集群,请先将证书下载到客户端计算机或 Amazon EC2 实例。然后配置 ODBC DSN。
-
将 Amazon Redshift 证书颁发机构包下载到客户端计算机上的驱动程序安装目录中的
lib
文件夹,然后将该文件另存为root.crt
。有关下载信息,请参阅SSL。 -
打开 ODBC Data Source Administrator,然后添加或编辑 ODBC 连接的系统 DSN 条目。对于 SSL Mode,如果不使用 DNS 别名,请选择
verify-full
。如果您使用 DNS 别名,请选择verify-ca
。然后选择保存。有关配置 ODBC DSN 的更多信息,请参阅为 Amazon Redshift 配置 ODBC 驱动程序版本 2.x 连接。
Java 中的 SSL 和服务器证书
SSL 通过加密可在您的客户端与集群之间移动的数据来提供一个安全层。使用服务器证书可验证集群是否为 Amazon Redshift 集群,从而提供一个额外的安全层。具体方法是,检查自动安装在您预配置的所有集群上的服务器证书。有关将服务器证书 JDBC 一起使用的更多信息,请转到 PostgreSQL 文档中的配置客户端
在 Java 中使用信任 CA 证书以进行连接
重要
Amazon Redshift 改变了我们管理 SSL 证书的方法。您可能需要更新当前的信任根 CA 证书,才能继续使用 SSL 连接集群。有关更多信息,请参阅 SSL。
使用信任 CA 证书进行连接
您可以使用 redshift-keytool.jar
文件将 Amazon Redshift 证书颁发机构包中的 CA 证书导入 Java 信任存储库或您的私有信任存储库中。
-
如果您使用 Java 命令行
-Djavax.net.ssl.trustStore
选项,请尽量将其从命令行中删除。 -
请执行下列操作之一:
-
要将 Amazon Redshift 证书颁发机构捆绑包导入 Java 信任存储库中,请运行以下命令。
java -jar redshift-keytool.jar -s
-
要将 Amazon Redshift 证书颁发机构捆绑包导入您的私有信任存储库中,请运行以下命令:
java -jar redshift-keytool.jar -k
<your_private_trust_store>
-p<keystore_password>
-