加密传输中数据 - Amazon DocumentDB

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

加密传输中数据

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

管理亚马逊 DocumentDB 集群设置 TLS

Amazon DocumentDB 集群的传输加密通过集群TLS参数组中的参数进行管理。您可以使用 AWS Management Console 或 AWS Command Line Interface ()AWS CLI管理您的 Amazon DocumentDB 集群TLS设置。请参阅以下章节,了解如何验证和修改当前TLS设置。

Using the AWS Management Console

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

注意

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

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

    1. 在 /docdb 上打开亚马逊 DocumentDB 控制台。https://console.aws.amazon.com

    2. 在导航窗格中,选择集群

      提示

      如果您在屏幕左侧没有看到导航窗格,请在页面左上角选择菜单图标 (Hamburger menu icon with three horizontal lines.)。

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

      集群导航框中显示一列现有集群链接及其对应实例链接的图片。
    4. 选择您感兴趣的集群。

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

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

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

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

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

    1. 在 /docdb 上打开亚马逊 DocumentDB 控制台。https://console.aws.amazon.com

    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

      • 启用-启用 1.0 到 1.3 TLS 版本。

      • fips-140-3 — 使用启用。TLS FIPS根据《联邦信息处理标准》(FIPS) 出版物 140-3 的要求,集群仅接受安全连接。只有以下地区的亚马逊 DocumentDB 5.0(引擎版本 3.0.3727)集群才支持此功能:ca-central-1、us-west-2、us-east-1、us-east-2、us-east-2、-1、-1、-1。 us-gov-east us-gov-west

      特定于群集的 TLS “修改” 对话框的图像。
    4. 选择 Modify cluster parameter (修改集群参数)。更改在重启时应用到​每个集群实例。

  4. 重启 Amazon DocumentDB 实例

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

    1. 在 /docdb 上打开亚马逊 DocumentDB 控制台。https://console.aws.amazon.com

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

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

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

Using the AWS CLI

按照以下步骤执行TLS加密管理任务, AWS 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— 可选。查询将输出限制为仅感兴趣的字段,在本例中为 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— 集群接受使用 1.0 到 1.3 TLS 版本的安全连接。

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

        • fips-140-3— 根据《联邦信息处理标准》(FIPS) 出版物 140-3 的要求,群集仅接受安全连接。只有以下地区的亚马逊 DocumentDB 5.0(引擎版本 3.0.3727)集群才支持此功能:ca-central-1、us-west-2、us-east-1、us-east-2、us-east-2、-1、-1、-1。 us-gov-east us-gov-west

      • 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(版本 1.0 到 1.3)在每个实例重启时将更改应用于每个实例。

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

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

    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 (可用) 时,才能使用实例。您可以使用控制台或 AWS CLI监控实例状态。有关更多信息,请参阅 监控 Amazon DocumentDB 实例的状态