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

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

加密传输中的数据

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

管理 Amazon DocumentDB 集群 TLS 设置

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

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

注意

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

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

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

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

      提示

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

    3. 请注意,在 “群集” 导航框中,列Cluster Identifier同时显示集群和实例。实例在集群下面列出。请参考下面的屏幕截图。

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

    5. 向下滚动到的底部集群细信息然后找到集群参数组. 记下集群参数组的名称。

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

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

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

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

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

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

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

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

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

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

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

      • 应用类型— 或者静态或者动态. 对静态集群参数的更改仅在重启实例时应用。对动态集群参数的更改可以立即应用,也可以在重启实例时应用。

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

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

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

    2. 选择编辑

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

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

  4. 重新启动 Amazon DocumentDB 实例。

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

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

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

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

    4. 选择操作,然后重启. 确认您要重启,请选择重启.

请按照以下步骤执行 TLS 加密的管理任务,使用Amazon CLI— 例如识别参数组、验证 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. 修改 Amazon DocumentDB 集群— 修改您的集群以使用自定义集群参数组。

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

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

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

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

    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", "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 的安全连接。

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

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

    以下代码Disable 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"

    以下代码ENABLE 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"

    此操作的输出将类似于下文(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 实例的状态