更新您的 Amazon DocumentDB TLS 憑證 — GovCloud - Amazon DocumentDB

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

更新您的 Amazon DocumentDB TLS 憑證 — GovCloud

注意

此資訊適用於 GovCloud (美國西部) 和 GovCloud (美國東部) 區域中的使用者。

Amazon DocumentDB (具有 MongoDB 相容性) 叢集的憑證授權機構 (CA) 憑證將於 2022 年 5 月 18 日更新。如果您使用已啟用 Transport Layer Security (TLS) 的 Amazon DocumentDB 叢集 (預設設定),而且您尚未輪換用戶端應用程式和伺服器憑證,則需要下列步驟來緩解應用程式和 Amazon DocumentDB 叢集之間的連線問題。

CA 和伺服器憑證已更新,作為 Amazon DocumentDB 標準維護和安全最佳實務的一部分。先前的 CA 憑證將於 2022 年 5 月 18 日過期。用戶端應用程式必須將新的 CA 憑證新增至其信任存放區,且現有的 Amazon DocumentDB 執行個體必須更新,才能在此過期日期之前使用新的 CA 憑證。

更新您的應用程式和 Amazon DocumentDB 叢集

請遵循本節所述步驟更新您應用程式的憑證授權機構憑證套件 (步驟 1) 和您叢集的伺服器憑證 (步驟 2)。將變更套用至您的生產環境前,我們強烈在開發或預備環境中測試這些步驟。

注意

您必須在您擁有 Amazon DocumentDB 叢集的每個 AWS 區域 中完成步驟 1 和 2。

步驟 1:下載新的 CA 憑證並更新您的應用程式

下載新的 CA 憑證並更新您的應用程式,以使用新的 CA 憑證來建立與特定區域中 Amazon DocumentDB 的 TLS 連線:

注意

如果您要存取同時包含舊 CA 憑證 (rds-ca-2017-root.pem) 和新 CA 憑證 (rds-ca-rsa4096-g1.pem、 或 rds-ca-ecc384-g1.pem) 的金鑰存放區rds-ca-rsa2048-g1.pem,請確認金鑰存放區選取您選擇的憑證。如需每個憑證的詳細資訊,請參閱下面的步驟 2。

wget https://truststore.pki.us-gov-west-1.rds.amazonaws.com/us-gov-west-1/us-gov-west-1-bundle.pem
wget https://truststore.pki.us-gov-west-1.rds.amazonaws.com/us-gov-east-1/us-gov-east-1-bundle.pem

接著更新您的應用程式,以使用新的憑證套件。新的 CA 套件同時包含舊的 CA 憑證和新的 CA 憑證 (rds-ca-rsa2048-g1.pemrds-ca-rsa4096-g1.pemrds-ca-ecc384-g1.pem)。只要在新的 CA 套件中有這兩個憑證,即可用兩個步驟更新您的應用程式和叢集。

2021 年 12 月 21 日之後任何 CA 憑證套件的下載都應使用新的 CA 憑證套件。如果要確認應用程式是否有在使用最新的憑證授權機構憑證套件,請參閱我如何確定自己使用的是最新的 CA 套件?。如果您已經在應用程式中使用最新的憑證授權機構憑證套件,可以跳到步驟 2。

如需搭配您的應用程式使用 CA 套件的範例,請參閱 加密傳輸中的資料使用已啟用的 TLS 連線

注意

MongoDB Go Driver 1.2.1 目前只接受 sslcertificateauthorityfile 中的一個 CA 伺服器憑證。請參閱使用已啟用的 TLS 連線來了解如何在 TLS 啟用時,使用 Go 連線至 Amazon DocumentDB。

步驟 2:更新伺服器憑證

更新應用程式以使用新的 CA 套件後,下一步是透過修改 Amazon DocumentDB 叢集中的每個執行個體來更新伺服器憑證。若要修改執行個體以使用新的伺服器憑證,請參閱下列指示。

Amazon DocumentDB 提供下列 CAs 來簽署資料庫執行個體的資料庫伺服器憑證:

  • rds-ca-ecc384-g1 — 使用憑證授權機構搭配 ECC 384 私有金鑰演算法和 SHA384 簽署演算法。此 CA 支援自動伺服器憑證輪換。這僅在 Amazon DocumentDB 4.0 和 5.0 上受支援。

  • rds-ca-rsa2048-g1 - 在大多數 AWS 區域中使用憑證授權機構搭配 RSA 2048 私有金鑰演算法和 SHA256 簽署演算法。此 CA 支援自動伺服器憑證輪換。

  • rds-ca-rsa4096-g1 — 使用憑證授權機構搭配 RSA 4096 私有金鑰演算法和 SHA384 簽署演算法。此 CA 支援自動伺服器憑證輪換。

注意

如果您使用的是 AWS CLI,您可以使用 describe-certificates 來查看上述憑證授權機構的有效性。

注意

Amazon DocumentDB 4.0 和 5.0 執行個體不需要重新啟動。

更新您的 Amazon DocumentDB 3.6 執行個體需要重新啟動,這可能會導致服務中斷。更新伺服器憑證前,請先確認您已完成步驟 1

Using the AWS Management Console

完成下列步驟,使用 來識別和輪換現有 Amazon DocumentDB 執行個體的舊伺服器憑證 AWS Management Console。

  1. 登入 AWS Management Console,並在 https://console.aws.amazon.com/docdb:// 開啟 Amazon DocumentDB 主控台。

  2. 在畫面右上角的區域清單中,選擇 AWS 區域 叢集所在的 。

  3. 在主控台左側的導覽窗格中,選擇叢集

  4. 您可能需要識別哪些執行個體仍在舊的伺服器憑證上 (rds-ca-2017)。您可以在預設隱藏的憑證授權單位欄中執行此操作。若要顯示 Certificate authority (憑證授權單位) 資料欄,請執行下列操作:

    1. 選擇 Settings (設定) 圖示。

      叢集導覽方塊的影像,其中顯示設定圖示。
    2. 在可見資料欄清單下方,選擇 Certificate authority (憑證授權單位) 資料欄。

    3. 選擇 Confirm (確認) 以儲存變更。

  5. 現在回到叢集導覽方塊中,您會看到 欄叢集識別符。您的執行個體會列在叢集下,類似於下面的螢幕擷取畫面。

    叢集導覽方塊的影像,顯示現有叢集連結及其對應執行個體連結的清單。
  6. 勾選您感興趣的執行個體左側的方塊。

  7. 選擇 Actions (動作),然後選擇 Modify (修改)

  8. 憑證授權機構下,選取此執行個體的新伺服器憑證 (rds-ca-rsa4096-g1rds-ca-rsa2048-g1rds-ca-ecc384-g1)。

  9. 您可以在下一頁上查看變更摘要。請注意,修改執行個體之前,會出現其他提醒來提醒您確保應用程式正使用最新的憑證 CA 套件,以免導致連線中斷。

  10. 您可以在下次維護時段中套用修改,或立即套用。如果您想要立即修改伺服器憑證,請使用 Apple Immediately (立即套用) 選項。

  11. 選擇 Modify instance (修改執行個體) 以完成更新。

Using the AWS CLI

完成下列步驟,使用 來識別和輪換現有 Amazon DocumentDB 執行個體的舊伺服器憑證 AWS CLI。

  1. 若要立即修改執行個體,請對叢集中的每個執行個體執行下列命令。使用下列其中一個憑證:rds-ca-rsa2048-g1rds-ca-rsa4096-g1、 或 rds-ca-ecc384-g1

    aws docdb modify-db-instance --db-instance-identifier <yourInstanceIdentifier> --ca-certificate-identifier rds-ca-rsa4096-g1 --apply-immediately
  2. 若要修改叢集內的執行個體,以在叢集的下一個維護時段使用新的憑證授權機構憑證,請對叢集中的每個執行個體執行下列命令。使用下列其中一個憑證:rds-ca-rsa2048-g1rds-ca-rsa4096-g1rds-ca-ecc384-g1

    aws docdb modify-db-instance --db-instance-identifier <yourInstanceIdentifier> --ca-certificate-identifier rds-ca-rsa4096-g1 --no-apply-immediately

故障診斷

如果您在憑證輪換的過程中無法連接到叢集,我們建議您執行下列動作:

常見問答集

以下是與 TLS 憑證相關的一些常見問題。

要是我有問題,該怎麼辦?

如果您有疑問或問題,請聯絡 支援

如何知道我是否使用 TLS 連線到我的 Amazon DocumentDB 叢集?

您可以檢查叢集參數群組的 tls 參數,判斷您的叢集是否正在使用 TLS。如果 tls 參數設為 enabled,即表示您正在使用 TLS 憑證連線到叢集。如需詳細資訊,請參閱管理 Amazon DocumentDB 叢集參數群組

為何需要更新 CA 和伺服器憑證?

Amazon DocumentDB CA 和伺服器憑證已更新,作為 Amazon DocumentDB 標準維護和安全性最佳實務的一部分。目前的 CA 和伺服器憑證將於 2022 年 5 月 18 日星期三到期。

如果我未在過期日期前採取任何動作,會發生什麼情況?

如果您使用 TLS 連線至 Amazon DocumentDB 叢集,且未在 2022 年 5 月 18 日之前進行變更,則透過 TLS 連線的應用程式將無法再與 Amazon DocumentDB 叢集通訊。

Amazon DocumentDB 不會在過期前自動輪換資料庫憑證。您必須更新您的應用程式和叢集,才能在過期日期之前或之後使用新的 CA 憑證。

如何知道哪些 Amazon DocumentDB 執行個體正在使用舊/新伺服器憑證?

若要識別仍使用舊伺服器憑證的 Amazon DocumentDB 執行個體,您可以使用 Amazon DocumentDB AWS Management Console 或 AWS CLI。

辨識在您的叢集中仍在使用舊憑證的執行個體
  1. 登入 AWS Management Console,並在 https://console.aws.amazon.com/docdb:// 開啟 Amazon DocumentDB 主控台。

  2. 在畫面右上角的區域清單中,選擇 AWS 區域 執行個體所在的 。

  3. 在主控台左側的導覽窗格中,選擇 Instances (執行個體)

  4. 憑證授權單位欄 (預設隱藏) 會顯示哪些執行個體仍在舊的伺服器憑證 (rds-ca-2017) 和新的伺服器憑證 (rds-ca-rsa2048-g1rds-ca-rsa4096-g1或 ) 上rds-ca-ecc384-g1。若要顯示 Certificate authority (憑證授權單位) 資料欄,請執行下列操作:

    1. 選擇 Settings (設定) 圖示。

    2. 在可見資料欄清單下方,選擇 Certificate authority (憑證授權單位) 資料欄。

    3. 選擇 Confirm (確認) 以儲存變更。

若要辨識您的叢集中正使用舊伺服器憑證的執行個體,請搭配下列參數使用 describe-db-clusters 命令。

aws docdb describe-db-instances \ --filters Name=engine,Values=docdb \ --query 'DBInstances[*].{CertificateVersion:CACertificateIdentifier,InstanceID:DBInstanceIdentifier}'

如何修改 Amazon DocumentDB 叢集中的個別執行個體來更新伺服器憑證?

建議您同時為指定叢集中的所有執行個體更新伺服器憑證。若要修改叢集中的執行個體,您可以使用主控台或 AWS CLI。

注意

更新您的執行個體需要重新開機,這可能會導致服務中斷。更新伺服器憑證前,請先確認您已完成步驟 1

  1. 登入 AWS Management Console,並在 https://console.aws.amazon.com/docdb:// 開啟 Amazon DocumentDB 主控台。

  2. 在畫面右上角的區域清單中,選擇 AWS 區域 叢集所在的 。

  3. 在主控台左側的導覽窗格中,選擇 Instances (執行個體)

  4. Certificate authority (憑證授權機構) 欄 (預設為隱藏) 會顯示哪些執行個體仍在舊的伺服器憑證 (rds-ca-2017) 上。若要顯示 Certificate authority (憑證授權單位) 資料欄,請執行下列操作:

    1. 選擇 Settings (設定) 圖示。

    2. 在可見資料欄清單下方,選擇 Certificate authority (憑證授權單位) 資料欄。

    3. 選擇 Confirm (確認) 以儲存變更。

  5. 選取要修改的執行個體。

  6. 選擇 Actions (動作),然後選擇 Modify (修改)

  7. 憑證授權機構下,選取此執行個體的其中一個新伺服器憑證 (rds-ca-rsa2048-g1rds-ca-rsa4096-g1、 或 rds-ca-ecc384-g1)。

  8. 您可以在下一頁上查看變更摘要。請注意,修改執行個體之前,會出現其他提醒來提醒您確保應用程式正使用最新的憑證 CA 套件,以免導致連線中斷。

  9. 您可以在下次維護時段中套用修改,或立即套用。

  10. 選擇 Modify instance (修改執行個體) 以完成更新。

完成下列步驟,使用 來識別和輪換現有 Amazon DocumentDB 執行個體的舊伺服器憑證 AWS CLI。

  1. 若要立即修改執行個體,請對叢集中的每個執行個體執行下列命令。

    aws docdb modify-db-instance --db-instance-identifier <yourInstanceIdentifier> --ca-certificate-identifier rds-ca-rsa4096-g1 --apply-immediately
  2. 若要修改叢集內的執行個體,以在叢集的下一個維護時段使用新的憑證授權機構憑證,請對叢集中的每個執行個體執行下列命令。

    aws docdb modify-db-instance --db-instance-identifier <yourInstanceIdentifier> --ca-certificate-identifier rds-ca-rsa4096-g1 --no-apply-immediately

如果我將新的執行個體新增至現有叢集,會發生什麼情況?

所有建立的新執行個體將會使用舊的伺服器憑證,且需要使用舊 CA 憑證的 TLS 連線。在 2022 年 3 月 21 日之後建立的任何新 Amazon DocumentDB 執行個體,都會預設為使用新憑證。

如果我的叢集發生執行個體替換或容錯移轉作業,會發生什麼情況?

如果您的叢集發生執行個體替換作業,建立的新執行個體會繼續使用執行個體之前使用的相同伺服器憑證。我們建議您同時為所有執行個體更新伺服器憑證。如果我的叢集發生容錯移轉作業,會在新的主要伺服器上會使用伺服器憑證。

如果我沒有使用 TLS 連線到我的叢集,我仍需更新各個執行個體嗎?

如果您不是使用 TLS 連線到 Amazon DocumentDB 叢集,則不需要任何動作。

如果我沒有使用 TLS 連線到自己的叢集,但打算在未來這樣做,我該怎麼辦?

如果您在 2022 年 3 月 21 日之前建立叢集,請遵循上一節中的步驟 1步驟 2,以確保您的應用程式使用更新的 CA 套件,且每個 Amazon DocumentDB 執行個體都使用最新的伺服器憑證。如果您在 2022 年 3 月 21 日之後建立叢集,您的叢集將已有最新的伺服器憑證。若要驗證您的應用程式是否使用最新的 CA 套件,請參閱 如果我沒有使用 TLS 連線到我的叢集,我仍需更新各個執行個體嗎?

截止日期是否可以延長到 2022 年 5 月 18 日之後?

如果您的應用程式透過 TLS 連線,則截止日期不能延長至 2022 年 5 月 18 日之後。

我如何確定自己使用的是最新的 CA 套件?

由於相容性因素,舊的與新的 CA 套件檔案都會命名為 us-gov-west-1-bundle.pem。您也可以使用如 opensslkeytool 等工具來檢查 CA 套件。

我為何在 CA 套件的名稱中看到「RDS」?

對於某些管理功能,例如憑證管理,Amazon DocumentDB 會使用與 Amazon Relational Database Service (Amazon RDS) 共用的操作技術。

新憑證何時過期?

新的伺服器憑證將過期 (一般),如下所示:

  • rds-ca-rsa2048-g1 — 2061 年過期

  • rds-ca-rsa4096-g1 — 過期 2121

  • rds-ca-ecc384-g1 — 過期 2121

如果未在憑證過期之前採取行動,我會看到哪些類型的錯誤?

錯誤訊息會因驅動程式而異。一般而言,您會看到包含字串「憑證已過期」的憑證驗證錯誤。

如果我套用新的伺服器憑證,我可以還原為舊的伺服器憑證嗎?

如果您需要將執行個體還原為舊憑證,建議您對叢集中的所有執行個體都這樣做。您可以使用 AWS Management Console 或 來還原叢集中每個執行個體的伺服器憑證 AWS CLI。

  1. 登入 AWS Management Console,並在 https://console.aws.amazon.com/docdb:// 開啟 Amazon DocumentDB 主控台。

  2. 在畫面右上角的區域清單中,選擇 AWS 區域 叢集所在的 。

  3. 在主控台左側的導覽窗格中,選擇 Instances (執行個體)

  4. 選取要修改的執行個體。選擇 Actions (動作),然後選擇 Modify (修改)

  5. 憑證授權單位下,您可以選取舊的伺服器憑證 ()rds-ca-2017

  6. 選擇 Continue (繼續) 以檢視修改摘要。

  7. 在此產生的頁面中,您可以選擇排程要在下一次維護時段中套用的修改項目,或立即套用修改項目。進行選取,並選擇 Modify instance (修改執行個體)

    注意

    若您選擇立即套用您的修改項目,則系統會一併套用待定修改佇列內的任何變更。如果有任何待定修改需要停機才能執行,則選擇此選項可能會導致未預期的停機。

aws docdb modify-db-instance --db-instance-identifier <db_instance_name> ca-certificate-identifier rds-ca-2017 <--apply-immediately | --no-apply-immediately>

如果選擇 --no-apply-immediately,將在叢集的下一個維護時段套用變更。

如果我們從快照或時間點還原回復,是否會有新的伺服器憑證?

如果您在 2022 年 3 月 21 日之後還原快照或執行point-in-time還原,則建立的新叢集將使用新的 CA 憑證。

如果我無法從 Mac OS X Catalina 直接連線至 Amazon DocumentDB 叢集,該怎麼辦?

Mac OS X Catalina 已更新受信任憑證的需求。信任的憑證現在必須有效 825 天或更少 (請參閱 https://support.apple.com/en-us/HT210176)。Amazon DocumentDB 執行個體憑證的有效期超過四年,長於 Mac OS X 上限。若要從執行 Mac OS X Catalina 的電腦直接連線至 Amazon DocumentDB 叢集,您必須在建立 TLS 連線時允許無效的憑證。在這種情況下,無效的憑證表示有效期間超過 825 天。在連線至 Amazon DocumentDB 叢集時允許無效的憑證之前,您應該先了解風險。

若要使用 從 OS X Catalina 連線至 Amazon DocumentDB 叢集 AWS CLI,請使用 tlsAllowInvalidCertificates 參數。

mongo --tls --host <hostname> --username <username> --password <password> --port 27017 --tlsAllowInvalidCertificates