加密传输中的数据

您可以使用传输层安全性 (TLS) 加密应用程序与 Amazon DocumentDB 集群之间的连接。默认情况下,将为新创建的 Amazon DocumentDB 集群启用传输中加密。可以选择在创建集群时或以后的某个时间禁用它。启用传输中加密后,需要使用 TLS 进行安全连接才能连接到集群。有关使用 TLS 连接到 Amazon DocumentDB 的更多信息,请参阅通过编程方式连接到 Amazon DocumentDB

管理 Amazon DocumentDB 集群 TLS 设置

Amazon DocumentDB 集群的传输中加密通过集群参数组.中的 TLS 参数进行管理。您可以使用 Amazon DocumentDB或 AWS 管理控制台 (AWS Command Line Interface) 管理 AWS CLI 集群 TLS 设置。有关如何验证和修改当前 TLS 设置的信息,请参阅以下部分。

按照以下步骤操作,使用控制台执行 TLS 加密的管理任务 — 如标识参数组、验证 TLS 值和进行所需修改。

注意

除非您在创建集群时指定了不同的方法,否则将使用默认集群参数组创建集群。无法修改 default 集群参数组中的参数(例如,tls 已启用/已禁用)。因此,如果您的集群使用的是 default 集群参数组,则需要修改集群以使用非默认集群参数组。首先,您可能需要创建自定义集群参数组。有关更多信息,请参阅 创建 Amazon DocumentDB 集群参数组.

  1. 确定集群使用的集群参数组。

    1. https://console.aws.amazon.com/docdb 打开 Amazon DocumentDB 控制台。

    2. 在导航窗格中,选择 Clusters.

      提示

      如果您在屏幕左侧没有看到导航窗格,请在页面左上角选择菜单图标 (加密传输中的数据 - 图1)。

    3. 请注意,在“集群”导航窗格中,集群标识符列同时显示集群和实例。实例列在集群下。请参阅下面的屏幕截图以供参考。

      加密传输中的数据 - 图2

    4. 选择您感兴趣的集群。

    5. 向下滚动到 Cluster details (集群详细信息) 底部并找到 Cluster parameter group (集群参数组)。记下集群参数组的名称。

      如果集群的参数组名称为 default(例如,default.docdb3.6),则必须创建自定义集群参数组,并将其设置为集群的参数组,然后才能继续。有关更多信息,请参阅下列内容:

      1. 创建 Amazon DocumentDB 集群参数组 — 如果没有可以使用的自定义集群参数组,请创建一个。

      2. 修改 Amazon DocumentDB集群 — 修改您的集群以使用自定义集群参数组。

  2. 确定 tls 集群参数的当前值。

    1. https://console.aws.amazon.com/docdb 打开 Amazon DocumentDB 控制台。

    2. 在导航窗格中,选择参数组.

    3. 在集群参数组列表中,选择您感兴趣的集群参数组的名称。

    4. 找到 Cluster parameters (集群参数) 部分。在集群参数列表中,找到 tls 集群参数行。此时,以下四个列很重要:

      • Cluster parameter name (集群参数名称) — 集群参数的名称。对于管理 TLS,需要关注的是 tls 集群参数。

      • — 每个集群参数的当前值。

      • Allowed values (允许的值) — 可应用于集群参数的值的列表。

      • Apply type (应用类型) — 静态动态对静态集群参数的更改只能在重启实例时应用。对动态集群参数的更改可以立即应用,也可以在重启实例时应用。

  3. 修改 tls 集群参数的值。

    如果 tls 的值不是必需的,则为此集群参数组修改其值。要更改 tls 集群参数的值,请按照以下步骤从上一节继续操作。

    1. 选择集群参数名称 () 左侧的按钮。tls).

    2. 选择 Edit.

    3. 要更改 tls 的值,请在 Modify tls (修改环境) 对话框中,从下拉列表中选择集群参数所需的值。

    4. 选择 Modify cluster parameter (修改集群参数). 更改将在重启时应用于每个集群实例。

  4. 重启 Amazon DocumentDB 实例。

    重启集群的每个实例,以便将更改应用到集群中的所有实例。

    1. https://console.aws.amazon.com/docdb 打开 Amazon DocumentDB 控制台。

    2. 在导航窗格中,选择 Instances.

    3. 要指定待重启的实例,请在实例列表中找到实例,并选择该实例名称左侧的按钮。

    4. 选择 Actions (操作),然后选择 Reboot (重启)。通过选择 Reboot 确认您要重启。

按照以下步骤操作,使用 AWS CLI 执行 TLS 加密的管理任务,例如,标识参数组,验证 TLS 值以及进行所需修改。—

注意

除非您在创建集群时指定了不同的内容,否则将使用默认的集群参数组创建集群。无法修改 default 集群参数组中的参数(例如,tls 已启用/已禁用)。因此,如果您的集群使用的是 default 集群参数组,则需要修改集群以使用非默认集群参数组。您可能需要先创建自定义集群参数组。有关更多信息,请参阅 创建 Amazon DocumentDB 集群参数组.

  1. 确定集群使用的集群参数组。

    使用带下列参数的 describe-db-clusters 命令:

    • --db-cluster-identifier — 必需。所需集群的名称。

    • --query — 可选。此查询将输出限制为仅显示感兴趣的字段,在本例中为集群名称及其集群参数组名称。

    1. aws docdb describe-db-clusters \
    2. --db-cluster-identifier docdb-2019-05-07-13-57-08 \
    3. --query 'DBClusters[*].[DBClusterIdentifier,DBClusterParameterGroup]'

    此操作的输出将类似于下文(JSON 格式)。

    1. [
    2. [
    3. "docdb-2019-05-07-13-57-08",
    4. "custom3-6-param-grp"
    5. ]
    6. ]

    如果集群的参数组名称为 default(例如,default.docdb3.6),则您必须具有自定义集群参数组,并将其设置为集群的参数组,然后才能继续。有关更多信息,请参阅以下主题:

    1. 创建 Amazon DocumentDB 集群参数组 — 如果没有可以使用的自定义集群参数组,请创建一个。

    2. 修改 Amazon DocumentDB集群 — 修改您的集群以使用自定义集群参数组。

  2. 确定 tls 集群参数的当前值。

    要获取有关此集群参数组的更多信息,请使用带以下参数的 describe-db-cluster-parameters 操作:

    • --db-cluster-parameter-group-name — 必需。使用上一个命令输出中的集群参数组名称。

    • --query — 可选。此查询将输出限制为仅显示感兴趣的字段,在本例中为 ParameterNameParameterValueAllowedValuesApplyType

    1. aws docdb describe-db-cluster-parameters \
    2. --db-cluster-parameter-group-name custom3-6-param-grp \
    3. --query 'Parameters[*].[ParameterName,ParameterValue,AllowedValues,ApplyType]'

    此操作的输出将类似于下文(JSON 格式)。

    1. [
    2. [
    3. "audit_logs",
    4. "disabled",
    5. "enabled,disabled",
    6. "dynamic"
    7. ],
    8. [
    9. "tls",
    10. "disabled",
    11. "disabled,enabled",
    12. "static"
    13. ],
    14. [
    15. "ttl_monitor",
    16. "enabled",
    17. "disabled,enabled",
    18. "dynamic"
    19. ]
    20. ]
  3. 修改 tls 集群参数的值。

    如果 tls 的值不是必需的,则为此集群参数组修改其值。要更改 tls 集群参数的值,请使用带以下参数的 modify-db-cluster-parameter-group 操作。

    • --db-cluster-parameter-group-name — 必需。要修改的集群参数组的名称。不能是 default.* 集群参数组。

    • --parameters — 必需。要修改的集群参数组的参数列表。

      • ParameterName — 必需。要修改的集群参数的名称。

      • ParameterValue — 必需。此集群参数的新值。必须是集群参数的 之一。AllowedValues.

        • enabled — 集群仅接受使用 TLS 的安全连接。

        • disabled — 集群不接受使用 TLS 的安全连接。

      • ApplyMethod — 何时应用此修改。对于静态集群参数(如 tle),此值必须为 pending-reboot

        • pending-reboot — 更改仅在重启后应用于实例。您必须分别重启每个集群实例,以便此更改在所有集群实例上生效。
  1. 以下代码*禁用* `tls`,从而在重启时将更改应用到每个数据库实例。
  2. <pre><code>aws docdb modify-db-cluster-parameter-group \
  3. --db-cluster-parameter-group-name custom3-6-param-grp \
  4. --parameters "ParameterName=tls,ParameterValue=disabled,ApplyMethod=pending-reboot"</code></pre>
  5. 以下代码*启用* `tls`,在重启时将更改应用到每个数据库实例。
  6. <pre><code>aws docdb modify-db-cluster-parameter-group \
  7. --db-cluster-parameter-group-name custom3-6-param-grp \
  8. --parameters "ParameterName=tls,ParameterValue=enabled,ApplyMethod=pending-reboot"
  9. </code></pre>
  10. 此操作的输出将类似于下文(JSON 格式)。
  11. <pre><div></div><code>{
  12. "DBClusterParameterGroupName": "custom3-6-param-grp"
  13. }
  14. </code></pre>
  1. 重启您的 Amazon DocumentDB 实例。

    重启集群的每个实例,以便将更改应用到集群中的所有实例。要重启 Amazon DocumentDB 实例,请使用具有以下参数的 reboot-db-instance 操作:

    • --db-instance-identifier — 必需。要重启的实例的标识符。

    以下代码将重启实例 sample-db-instance.

    对于 Linux、macOS 或 Unix:

    1. aws docdb reboot-db-instance \
    2. --db-instance-identifier sample-db-instance

    对于 Windows:

    1. aws docdb reboot-db-instance ^
    2. --db-instance-identifier sample-db-instance

    此操作的输出将类似于下文(JSON 格式)。

    1. {
    2. "DBInstance": {
    3. "AutoMinorVersionUpgrade": true,
    4. "PubliclyAccessible": false,
    5. "PreferredMaintenanceWindow": "fri:09:32-fri:10:02",
    6. "PendingModifiedValues": {},
    7. "DBInstanceStatus": "rebooting",
    8. "DBSubnetGroup": {
    9. "Subnets": [
    10. {
    11. "SubnetStatus": "Active",
    12. "SubnetAvailabilityZone": {
    13. "Name": "us-east-1a"
    14. },
    15. "SubnetIdentifier": "subnet-4e26d263"
    16. },
    17. {
    18. "SubnetStatus": "Active",
    19. "SubnetAvailabilityZone": {
    20. "Name": "us-east-1c"
    21. },
    22. "SubnetIdentifier": "subnet-afc329f4"
    23. },
    24. {
    25. "SubnetStatus": "Active",
    26. "SubnetAvailabilityZone": {
    27. "Name": "us-east-1e"
    28. },
    29. "SubnetIdentifier": "subnet-b3806e8f"
    30. },
    31. {
    32. "SubnetStatus": "Active",
    33. "SubnetAvailabilityZone": {
    34. "Name": "us-east-1d"
    35. },
    36. "SubnetIdentifier": "subnet-53ab3636"
    37. },
    38. {
    39. "SubnetStatus": "Active",
    40. "SubnetAvailabilityZone": {
    41. "Name": "us-east-1b"
    42. },
    43. "SubnetIdentifier": "subnet-991cb8d0"
    44. },
    45. {
    46. "SubnetStatus": "Active",
    47. "SubnetAvailabilityZone": {
    48. "Name": "us-east-1f"
    49. },
    50. "SubnetIdentifier": "subnet-29ab1025"
    51. }
    52. ],
    53. "SubnetGroupStatus": "Complete",
    54. "DBSubnetGroupDescription": "default",
    55. "VpcId": "vpc-91280df6",
    56. "DBSubnetGroupName": "default"
    57. },
    58. "PromotionTier": 2,
    59. "DBInstanceClass": "db.r5.4xlarge",
    60. "InstanceCreateTime": "2018-11-05T23:10:49.905Z",
    61. "PreferredBackupWindow": "00:00-00:30",
    62. "KmsKeyId": "arn:aws:kms:us-east-1:012345678901:key/0961325d-a50b-44d4-b6a0-a177d5ff730b",
    63. "StorageEncrypted": true,
    64. "VpcSecurityGroups": [
    65. {
    66. "Status": "active",
    67. "VpcSecurityGroupId": "sg-77186e0d"
    68. }
    69. ],
    70. "EngineVersion": "3.6.0",
    71. "DbiResourceId": "db-SAMPLERESOURCEID",
    72. "DBInstanceIdentifier": "sample-cluster-instance-00",
    73. "Engine": "docdb",
    74. "AvailabilityZone": "us-east-1a",
    75. "DBInstanceArn": "arn:aws:rds:us-east-1:012345678901:db:sample-cluster-instance-00",
    76. "BackupRetentionPeriod": 1,
    77. "Endpoint": {
    78. "Address": "sample-cluster-instance-00.corcjozrlsfc.us-east-1.docdb.amazonaws.com",
    79. "Port": 27017,
    80. "HostedZoneId": "Z2R2ITUGPM61AM"
    81. },
    82. "DBClusterIdentifier": "sample-cluster"
    83. }
    84. }

    实例重启需要几分钟时间。只有在实例状态为 available (可用). 时,才能使用实例。您可以使用控制台或 监控实例状态。AWS CLI. 有关更多信息,请参阅 监控 Amazon DocumentDB 实例的状态.