加密传输中的数据 - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

加密传输中的数据

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

管理 Amazon DocumentDB 集群 TLS 设置

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

Using the Amazon Web Services Management Console

请遵照以下步骤,使用控制台执行 TLS 加密的管理任务,例如识别参数组、验证 TLS 值以及进行必要的修改。

注意

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

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

    1. 通过以下网址打开 Amazon DocumentDB 控制台:https://console.aws.amazon.com/docdb

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

      提示

      如果您在屏幕左侧没有看到导航窗格,请在页面左上角选择菜单图标 ()。

    3. 请注意,在集群导航框中,集群标识符列既显示集群又显示实例。实例列在集群下方。请参阅下方屏幕截图以供参考。

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

    5. 选择配置选项卡,向下滚动到集群详细信息底部,然后找到集群参数组。请注意集群参数组的名称。

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

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

      2. 修改亚马逊文档数据库集群 — 修改您的集群以使用自定义集群参数组。

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

    1. 通过以下网址打开 Amazon DocumentDB 控制台:https://console.aws.amazon.com/docdb

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

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

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

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

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

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

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

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

    如果 tls 的值不是所需的,请为此集群参数组修改其值。要更改 tls 集群参数的值,请按照以下步骤从前一部分继续执行。

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

    2. 选择编辑

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

      有效值为:

      • 已禁用 — 禁用 TLS

      • 已启用 — 启用 TLS

      • fips-140-3 — 使用 FIPS 启用 TLS。集群仅接受符合联邦信息处理标准 (FIPS) 出版物 140-3 要求的安全连接。仅在以下区域支持 Amazon DocumentDB 5.0(引擎版本 3.0.3727)集群启用:ca-central-1、us-west-2、us-east-1、us-east-2、us-gov-east-1、us-gov-west-1。

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

  4. 重启 Amazon DocumentDB 实例

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

    1. 通过以下网址打开 Amazon DocumentDB 控制台:https://console.aws.amazon.com/docdb

    2. 在导航窗格中,选择实例

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

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

Using the Amazon CLI

请遵照以下步骤,使用 Amazon CLI 执行 TLS 加密的管理任务,例如识别参数组、验证 TLS 值以及进行必要的修改。

注意

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

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

    结合下列参数使用 describe-db-clusters 命令 。

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

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

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

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

    [ [ "docdb-2019-05-07-13-57-08", "custom3-6-param-grp" ] ]

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

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

    2. 修改亚马逊文档数据库集群 — 修改您的集群以使用自定义集群参数组。

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

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

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

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

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

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

    [ [ "audit_logs", "disabled", "enabled,disabled", "dynamic" ], [ "tls", "disabled", "disabled,enabled,fips-140-3", "static" ], [ "ttl_monitor", "enabled", "disabled,enabled", "dynamic" ] ]
  3. 修改 tls 集群参数的值。

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

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

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

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

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

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

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

        • fips-140-3 — 集群仅接受符合联邦信息处理标准 (FIPS) 出版物 140-3 要求的安全连接。仅在以下区域支持 Amazon DocumentDB 5.0(引擎版本 3.0.3727)集群启用:ca-central-1、us-west-2、us-east-1、us-east-2、us-gov-east-1、us-gov-west-1。

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

        • pending-reboot — 仅在重启后才将更改应用到实例。您必须分别重启每个集群实例,以便此更改在所有集群实例上生效。

    以下代码禁用 tls,在重启时将更改应用到每个数据库实例。

    aws docdb modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name custom3-6-param-grp \ --parameters "ParameterName=tls,ParameterValue=disabled,ApplyMethod=pending-reboot"

    以下代码启用 tls,在重启时将更改应用到每个数据库实例。

    aws docdb modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name custom3-6-param-grp \ --parameters "ParameterName=tls,ParameterValue=enabled,ApplyMethod=pending-reboot"

    以下代码启用fips-140-3 的 TLS,在重启时将更改应用到每个数据库实例。

    aws docdb modify-db-cluster-parameter-group \ ‐‐db-cluster-parameter-group-name custom5-0-param-grp \ ‐‐parameters "ParameterName=tls,ParameterValue=fips-140-3,ApplyMethod=pending-reboot"

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

    { "DBClusterParameterGroupName": "custom3-6-param-grp" }
  4. 重启 Amazon DocumentDB 实例

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

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

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

    对于 Linux、macOS 或 Unix:

    aws docdb reboot-db-instance \ --db-instance-identifier sample-db-instance

    对于 Windows:

    aws docdb reboot-db-instance ^ --db-instance-identifier sample-db-instance

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

    { "DBInstance": { "AutoMinorVersionUpgrade": true, "PubliclyAccessible": false, "PreferredMaintenanceWindow": "fri:09:32-fri:10:02", "PendingModifiedValues": {}, "DBInstanceStatus": "rebooting", "DBSubnetGroup": { "Subnets": [ { "SubnetStatus": "Active", "SubnetAvailabilityZone": { "Name": "us-east-1a" }, "SubnetIdentifier": "subnet-4e26d263" }, { "SubnetStatus": "Active", "SubnetAvailabilityZone": { "Name": "us-east-1c" }, "SubnetIdentifier": "subnet-afc329f4" }, { "SubnetStatus": "Active", "SubnetAvailabilityZone": { "Name": "us-east-1e" }, "SubnetIdentifier": "subnet-b3806e8f" }, { "SubnetStatus": "Active", "SubnetAvailabilityZone": { "Name": "us-east-1d" }, "SubnetIdentifier": "subnet-53ab3636" }, { "SubnetStatus": "Active", "SubnetAvailabilityZone": { "Name": "us-east-1b" }, "SubnetIdentifier": "subnet-991cb8d0" }, { "SubnetStatus": "Active", "SubnetAvailabilityZone": { "Name": "us-east-1f" }, "SubnetIdentifier": "subnet-29ab1025" } ], "SubnetGroupStatus": "Complete", "DBSubnetGroupDescription": "default", "VpcId": "vpc-91280df6", "DBSubnetGroupName": "default" }, "PromotionTier": 2, "DBInstanceClass": "db.r5.4xlarge", "InstanceCreateTime": "2018-11-05T23:10:49.905Z", "PreferredBackupWindow": "00:00-00:30", "KmsKeyId": "arn:aws:kms:us-east-1:012345678901:key/0961325d-a50b-44d4-b6a0-a177d5ff730b", "StorageEncrypted": true, "VpcSecurityGroups": [ { "Status": "active", "VpcSecurityGroupId": "sg-77186e0d" } ], "EngineVersion": "3.6.0", "DbiResourceId": "db-SAMPLERESOURCEID", "DBInstanceIdentifier": "sample-cluster-instance-00", "Engine": "docdb", "AvailabilityZone": "us-east-1a", "DBInstanceArn": "arn:aws:rds:us-east-1:012345678901:db:sample-cluster-instance-00", "BackupRetentionPeriod": 1, "Endpoint": { "Address": "sample-cluster-instance-00.corcjozrlsfc.us-east-1.docdb.amazonaws.com", "Port": 27017, "HostedZoneId": "Z2R2ITUGPM61AM" }, "DBClusterIdentifier": "sample-cluster" } }

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