

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 加密傳輸中的資料
<a name="security.encryption.ssl"></a>

您可以使用 Transport Layer Security (TLS) 來加密應用程式與 Amazon DocumentDB 叢集之間的連線。根據預設，系統會為新建立的 Amazon DocumentDB 叢集啟用傳輸中加密。它可以選擇性地在建立叢集時或稍後停用。當啟用傳輸中的加密時，需要使用 TLS 的安全連線來連線到叢集。如需使用 TLS 連接到 Amazon DocumentDB 的詳細資訊，請參閱[以程式設計方式連線至 Amazon DocumentDB](connect_programmatically.md)。

## 管理 Amazon DocumentDB 叢集 TLS 設定
<a name="security.encryption.ssl.managing"></a>

Amazon DocumentDB 叢集的傳輸中加密是透過[叢集參數群組中的 TLS 參數](https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_groups.html)進行管理。您可以使用 AWS 管理主控台 或 AWS Command Line Interface () 管理您的 Amazon DocumentDB 叢集 TLS 設定AWS CLI。請參閱下列章節，了解如何驗證和修改您目前的 TLS 設定。

------
#### [ Using the AWS 管理主控台 ]

請依照下列步驟，使用主控台執行 TLS 加密的管理任務，例如識別參數群組、驗證 TLS 值，以及進行必要的修改。

**注意**  
除非您在建立叢集時有不同指定，否則系統會使用預設的叢集參數群組來建立您的叢集。`default` 叢集參數群組中的參數無法修改 (例如，啟用/停用的 `tls`)。因此如果您的叢集使用 `default` 叢集參數群組，則您需要修改叢集，才能使用非預設叢集參數群組。首先，您可能需要建立自訂叢集參數群組。如需詳細資訊，請參閱[建立 Amazon DocumentDB 叢集參數群組](cluster_parameter_groups-create.md)。

1. **判定您叢集正在使用的叢集參數群組。**

   1. 開啟 Amazon DocumentDB 主控台，網址為 [https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb)：//www.。

   1. 在導覽窗格中，選擇**叢集**。
**提示**  
如果畫面左側沒有出現導覽窗格，請選擇頁面左上角的功能表圖示 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

   1. 請注意，在**叢集**導覽方塊中，資料欄**叢集識別符**會顯示叢集和執行個體。執行個體會列在叢集下方。請參閱以下螢幕擷取畫面以取得參考。  
![\[叢集導覽方塊的影像，顯示現有叢集連結及其對應執行個體連結的清單。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/clusters.png)

   1. 選擇您感興趣的叢集。

   1. 選擇**組態**索引標籤，向下捲動至**叢集詳細資訊**底部，然後尋找**叢集參數群組**。請記下叢集參數群組的名稱。

      如果叢集參數群組的名稱為 `default` (例如，`default.docdb3.6`)，則您必須具有一個自訂叢集參數群組，並使其成為叢集的參數群組，然後再繼續。如需詳細資訊，請參閱下列內容：

      1. [建立 Amazon DocumentDB 叢集參數群組](cluster_parameter_groups-create.md) — 如果您沒有可以使用的自訂叢集參數群組，請建立一個。

      1. [修改 Amazon DocumentDB 叢集](db-cluster-modify.md) — 修改您的叢集以使用自訂叢集參數群組。

1. **判定 `tls` 叢集參數的目前值。**

   1. 開啟 Amazon DocumentDB 主控台，網址為 [https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb)：//www.。

   1. 在導覽窗格中，選擇 **Parameter groups** (參數群組)。

   1. 從叢集參數群組的清單中，選擇您有興趣之叢集參數群組的名稱。

   1. 找出 **Cluster parameters (叢集參數)** 區段。在叢集參數清單中，找出 `tls` 叢集參數列。此時，必須留意下列四欄：
      + **叢集參數名稱** — 叢集參數的名稱。若為管理 TLS，您對 `tls` 叢集參數有興趣。
      + **值** — 每個叢集參數的目前值。
      + **允許的值** — 可套用至叢集參數的值清單。
      + **套用類型** — **靜態**或**動態**。靜態叢集參數的變更必須在執行個體重新啟動後才能套用。可以立即或在執行個體重新啟動後套用動態叢集參數的變更。

1. **修改 `tls` 叢集參數的值。**

   如果 `tls` 的值不是所需的值，請針對這個叢集參數群組修改其值。若要變更 `tls` 叢集參數的值，請按照以下步驟從上節繼續進行。

   1. 選擇叢集參數名稱 (`tls`) 左側的按鈕。

   1. 選擇**編輯**。

   1. 若要變更 `tls` 的值，請在 **Modify `tls` (修改)** 對話方塊中，從下拉式清單選擇您想要給與叢集參數的值。

      有效的 值如下：
      + **停用** — 停用 TLS
      + **啟用** — 啟用 TLS 1.0 到 1.3 版。
      + **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。
      + **tls1.2\$1** — 啟用 TLS 1.2 版和更新版本。僅支援從 Amazon DocumentDB 4.0 （引擎版本 2.0.10980) 和 Amazon DocumentDB （引擎版本 3.0.11051) 開始。
      + **tls1.3\$1** — 啟用 TLS 1.3 版和更新版本。僅支援從 Amazon DocumentDB 4.0 （引擎版本 2.0.10980) 和 Amazon DocumentDB （引擎版本 3.0.11051) 開始。  
![\[叢集特定修改 TLS 對話方塊的影像。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/modify-tls.png)

   1. 選擇 **Modify cluster parameter (修改叢集參數)**。此變更必須等到每個叢集執行個體重新啟動後才會套用。

1. **重新啟動 Amazon DocumentDB 執行個體。**

   重新啟動叢集的每個執行個體，讓變更套用到叢集中的所有執行個體。

   1. 開啟 Amazon DocumentDB 主控台，網址為 https：//[https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb).。

   1. 在導覽窗格中，選擇**執行個體**。

   1. 若要指定要重新啟動的執行個體，請在執行個體清單中找到執行個體，並選擇其名稱左側的按鈕。

   1. 選擇 **Actions (動作)**，然後 **Reboot (重新啟動)**。選擇 **Reboot (重新啟動)**，確認您要重新啟動。

------
#### [ Using the AWS CLI ]

請依照下列步驟，使用 執行 TLS 加密的管理任務 AWS CLI，例如識別參數群組、驗證 TLS 值，以及進行必要的修改。

**注意**  
除非您在建立叢集時有不同指定，否則系統會使用預設的叢集參數群組來建立該叢集。`default` 叢集參數群組中的參數無法修改 (例如，啟用/停用的 `tls`)。因此如果您的叢集使用 `default` 叢集參數群組，則您需要修改叢集，才能使用非預設叢集參數群組。您可能需要先建立自訂叢集參數群組。如需詳細資訊，請參閱[建立 Amazon DocumentDB 叢集參數群組](cluster_parameter_groups-create.md)。

1. **判定您叢集正在使用的叢集參數群組。**

   使用下列選項執行 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/describe-db-clusters.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/describe-db-clusters.html)命令：
   + `--db-cluster-identifier`
   + `--query`

   在下列範例中，將每個*使用者輸入預留位置*取代為您叢集的資訊。

   ```
   aws docdb describe-db-clusters \
     --db-cluster-identifier mydocdbcluster \
     --query 'DBClusters[*].[DBClusterIdentifier,DBClusterParameterGroup]'
   ```

   此操作的輸出如下所示 (JSON 格式）：

   ```
   [
       [
           "mydocdbcluster",
           "myparametergroup"
       ]
   ]
   ```

   如果叢集參數群組的名稱為 `default` (例如，`default.docdb3.6`)，則您必須具有一個自訂叢集參數群組，並使其成為叢集的參數群組，然後再繼續。如需詳細資訊，請參閱下列主題：

   1. [建立 Amazon DocumentDB 叢集參數群組](cluster_parameter_groups-create.md) — 如果您沒有可以使用的自訂叢集參數群組，請建立一個。

   1. [修改 Amazon DocumentDB 叢集](db-cluster-modify.md) — 修改您的叢集以使用自訂叢集參數群組。

1. **判定 `tls` 叢集參數的目前值。**

   若要取得此叢集參數群組的詳細資訊，請使用下列選項執行 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/describe-db-cluster-parameters.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/describe-db-cluster-parameters.html)命令：
   + `--db-cluster-parameter-group-name`
   + `--query`

     將輸出限制為僅感興趣的欄位：`ParameterValue``AllowedValues`、 `ParameterName`和 `ApplyType`。

   在下列範例中，將每個*使用者輸入預留位置*取代為您叢集的資訊。

   ```
   aws docdb describe-db-cluster-parameters \
     --db-cluster-parameter-group-name myparametergroup \
     --query 'Parameters[*].[ParameterName,ParameterValue,AllowedValues,ApplyType]'
   ```

   此操作的輸出如下所示 (JSON 格式）：

   ```
   [
       [
           "audit_logs",
           "disabled",
           "enabled,disabled",
           "dynamic"
       ],
       [
           "tls",
           "disabled",
           "disabled,enabled,fips-140-3,tls1.2+,tls1.3+",
           "static"
       ],
       [
           "ttl_monitor",
           "enabled",
           "disabled,enabled",
           "dynamic"
       ]
   ]
   ```

1. **修改 `tls` 叢集參數的值。**

   如果 `tls` 的值不是所需的值，請針對這個叢集參數群組修改其值。若要變更`tls`叢集參數的值，請使用下列選項執行 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/modify-db-cluster-parameter-group.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/modify-db-cluster-parameter-group.html)命令：
   + `--db-cluster-parameter-group-name` – 必要。要修改之叢集參數群組的名稱。這不得為 `default.*` 叢集參數群組。
   + `--parameters` – 必要。叢集參數群組之要修改的參數清單。
     + `ParameterName` – 必要。要修改之叢集參數的名稱。
     + `ParameterValue` – 必要。此叢集參數的新值。必須是其中一個叢集參數的 `AllowedValues`。
       + `enabled` — 叢集接受使用 TLS 1.0 版到 1.3 版的安全連線。
       + `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。
       + `tls1.2+` — 叢集接受使用 TLS 1.2 版及更新版本的安全連線。僅支援從 Amazon DocumentDB 4.0 （引擎版本 2.0.10980) 和 Amazon DocumentDB 5.0 （引擎版本 3.0.11051) 開始。
       + `tls1.3+` — 叢集接受使用 TLS 1.3 版及更新版本的安全連線。僅支援從 Amazon DocumentDB 4.0 （引擎版本 2.0.10980) 和 Amazon DocumentDB 5.0 （引擎版本 3.0.11051) 開始。
     + `ApplyMethod` — 套用此修改時。若為靜態叢集參數，例如 `tle`，此值必須是 `pending-reboot`。
       + `pending-reboot` — 變更只會在重新啟動後套用至執行個體。您必須個別地重新啟動每個叢集執行個體，此變更才能在所有叢集執行個體中發生。

   在下列範例中，將每個*使用者輸入預留位置*取代為您叢集的資訊。

   下列程式碼*會停用* `tls`，並在重新啟動時將變更套用至每個執行個體。

   ```
   aws docdb modify-db-cluster-parameter-group \
     --db-cluster-parameter-group-name myparametergroup \
     --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 myparametergroup \
     --parameters "ParameterName=tls,ParameterValue=enabled,ApplyMethod=pending-reboot"
   ```

   下列程式碼會使用 *啟用* TLS`fips-140-3`，並在重新啟動時將變更套用至每個執行個體。

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

   此操作的輸出如下所示 (JSON 格式）：

   ```
   {
       "DBClusterParameterGroupName": "myparametergroup"
   }
   ```

1. **重新啟動 Amazon DocumentDB 執行個體。**

   重新啟動叢集的每個執行個體，讓變更套用到叢集中的所有執行個體。若要重新啟動 Amazon DocumentDB 執行個體，請使用下列選項執行 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/reboot-db-instance.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/docdb/reboot-db-instance.html)命令：
   + `--db-instance-identifier`

   以下程式碼會重新啟動執行個體 `mydocdbinstance`。

   在下列範例中，將每個*使用者輸入預留位置*取代為您叢集的資訊。  
**Example**  

   若為 Linux、macOS 或 Unix：

   ```
   aws docdb reboot-db-instance \
     --db-instance-identifier mydocdbinstance
   ```

   針對 Windows：

   ```
   aws docdb reboot-db-instance ^
     --db-instance-identifier mydocdbinstance
   ```

   此操作的輸出如下所示 (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": "mydocdbinstance",
           "Engine": "docdb",
           "AvailabilityZone": "us-east-1a",
           "DBInstanceArn": "arn:aws:rds:us-east-1:012345678901:db:sample-cluster-instance-00",
           "BackupRetentionPeriod": 1,
           "Endpoint": {
               "Address": "mydocdbinstance.corcjozrlsfc.us-east-1.docdb.amazonaws.com",
               "Port": 27017,
               "HostedZoneId": "Z2R2ITUGPM61AM"
           },
           "DBClusterIdentifier": "mydocdbcluster"
       }
   }
   ```

   執行個體重新啟動需要幾分鐘的時間來完成。您只能使用狀態為*可用*的執行個體。您可以使用主控台或 AWS CLI監控執行個體的狀態。如需詳細資訊，請參閱[監控 Amazon DocumentDB 執行個體的狀態](monitoring_docdb-instance_status.md)。

------