配置 SQL Server 安全协议和密码
您可以使用数据库参数打开和关闭某些安全协议和密码。您可以配置的安全参数(TLS 版本 1.2 除外)如下表所示。
数据库参数 | 允许的值(默认值以粗体显示) | 描述 |
---|---|---|
rds.tls10 | 默认值,启用,禁用 | TLS 1.0。 |
rds.tls11 | 默认值,启用,禁用 | TLS 1.1。 |
rds.tls12 | 默认值 | TLS 1.2。您无法修改此值。 |
rds.fips | 0, 1 |
将参数设置为 1 时,RDS 会强制使用符合美国联邦信息处理标准 (FIPS) 140-2 标准的模块。 有关详细信息,请参阅 Microsoft 文档中的 Use SQL Server 2016 in FIPS 140-2-compliant mode |
rds.rc4 | 默认值,启用,禁用 | RC4 流密码。 |
rds.diffie-hellman | 默认值,启用,禁用 | Diffie-Hellman key-exchange 加密。 |
rds.diffie-hellman-min-key-bit-length | 默认值,1024,2048,3072,4096 | Diffie-Hellman 密钥的最小位长度。 |
rds.curve25519 | 默认值,启用,禁用 | Curve25519 elliptic-curve 加密密码。并非所有引擎版本都支持此参数。 |
rds.3des168 | 默认值,启用,禁用 | 具有 168 位密钥长度的三重数据加密标准 (DES) 加密密码。 |
注意
对于 16.00.4120.1、15.00.4365.2、14.00.3465.1、13.00.6435.1 和 12.00.6449.1 之后的次要引擎版本,数据库参数 rds.tls10
、rds.tls11
、rds.rc4
、rds.curve25519
和 rds.3des168
的默认设置处于禁用状态。否则,默认设置为启用。
对于 16.00.4120.1、15.00.4365.2、14.00.3465.1、13.00.6435.1 和 12.00.6449.1 之后的次要引擎版本,rds.diffie-hellman-min-key-bit-length
的默认设置为 3072。否则,默认设置为 2048。
使用以下过程配置安全协议和密码:
-
创建自定义数据库参数组。
-
修改参数组中的参数。
-
将数据库参数组与数据库实例相关联。
有关数据库参数组的更多信息,请参阅 Amazon RDS 的参数组。
创建安全相关的参数组
为与 SQL Server 版本和数据库实例版本相对应的安全相关参数创建参数组。
以下过程为 SQL Server 标准版 2016 创建一个参数组。
创建参数组
登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择参数组。
-
选择创建参数组。
-
在创建参数组窗格中,执行以下操作:
-
对于参数组系列,选择 sqlserver-se-13.0。
-
对于组名称,输入参数组的标识符,如
sqlserver-ciphers-se-13
。 -
对于描述,输入
Parameter group for security protocols and ciphers
。
-
-
选择创建。
以下过程为 SQL Server 标准版 2016 创建一个参数组。
创建参数组
-
运行以下命令之一。
对于 Linux、macOS 或 Unix:
aws rds create-db-parameter-group \ --db-parameter-group-name
sqlserver-ciphers-se-13
\ --db-parameter-group-family "sqlserver-se-13.0
" \ --description "Parameter group for security protocols and ciphers
"对于 Windows:
aws rds create-db-parameter-group ^ --db-parameter-group-name
sqlserver-ciphers-se-13
^ --db-parameter-group-family "sqlserver-se-13.0
" ^ --description "Parameter group for security protocols and ciphers
"
修改安全相关参数
修改与 SQL Server 版本和数据库实例版本对应的参数组中的安全相关参数。
以下过程修改您为 SQL Server 标准版 2016 创建的参数组。此示例关闭 TLS 版本 1.0。
修改参数组
登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择参数组。
-
选择参数组,例如 sqlserver-ciphers-se-13。
-
在参数下,从参数列表中筛选
rds
。 -
选择编辑参数。
-
选择 rds.tls10。
-
对于值,选择已禁用。
-
选择 Save changes(保存更改)。
以下过程修改您为 SQL Server 标准版 2016 创建的参数组。此示例关闭 TLS 版本 1.0。
修改参数组
-
运行以下命令之一。
对于 Linux、macOS 或 Unix:
aws rds modify-db-parameter-group \ --db-parameter-group-name
sqlserver-ciphers-se-13
\ --parameters "ParameterName='rds.tls10
',ParameterValue='disabled
',ApplyMethod=pending-reboot"对于 Windows:
aws rds modify-db-parameter-group ^ --db-parameter-group-name
sqlserver-ciphers-se-13
^ --parameters "ParameterName='rds.tls10
',ParameterValue='disabled
',ApplyMethod=pending-reboot"
将安全相关参数组与您的数据库实例关联
要将参数组与数据库实例关联,请使用 Amazon Web Services Management Console或 Amazon CLI。
您可以将参数组与新的或现有的数据库实例关联:
-
对于新的数据库实例,请在启动实例时将其关联。有关更多信息,请参阅“创建 Amazon RDS 数据库实例”。
-
对于现有数据库实例,请通过修改实例将其关联。有关更多信息,请参阅 修改 Amazon RDS 数据库实例。
您可以将参数组与新的或现有的数据库实例关联。
使用参数组创建数据库实例
-
指定在创建参数组时使用的相同数据库引擎类型和主要版本。
对于 Linux、macOS 或 Unix:
aws rds create-db-instance \ --db-instance-identifier
mydbinstance
\ --db-instance-classdb.m5.2xlarge
\ --enginesqlserver-se
\ --engine-version13.00.5426.0.v1
\ --allocated-storage100
\ --master-user-passwordsecret123
\ --master-usernameadmin
\ --storage-typegp2
\ --license-modelli
\ --db-parameter-group-namesqlserver-ciphers-se-13
对于 Windows:
aws rds create-db-instance ^ --db-instance-identifier
mydbinstance
^ --db-instance-classdb.m5.2xlarge
^ --enginesqlserver-se
^ --engine-version13.00.5426.0.v1
^ --allocated-storage100
^ --master-user-passwordsecret123
^ --master-usernameadmin
^ --storage-typegp2
^ --license-modelli
^ --db-parameter-group-namesqlserver-ciphers-se-13
注意
作为安全最佳实践,请指定除此处所示提示以外的密码。
修改数据库实例并关联参数组
-
运行以下命令之一。
对于 Linux、macOS 或 Unix:
aws rds modify-db-instance \ --db-instance-identifier
mydbinstance
\ --db-parameter-group-namesqlserver-ciphers-se-13
\ --apply-immediately对于 Windows:
aws rds modify-db-instance ^ --db-instance-identifier
mydbinstance
^ --db-parameter-group-namesqlserver-ciphers-se-13
^ --apply-immediately