View a markdown version of this page

對 Microsoft SQL Server 資料庫執行個體使用 SSL - Amazon Relational Database Service

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

對 Microsoft SQL Server 資料庫執行個體使用 SSL

您可以使用 Secure Sockets Layer (SSL),來加密用戶端應用程式與執行 Microsoft SQL Server 的 Amazon RDS 資料庫執行個體之間的連線。SSL 支援適用於所有支援的 SQL Server 版本的所有 AWS 區域。

建立 SQL Server 資料庫執行個體時,Amazon RDS 會為執行個體建立 SSL 憑證。SSL 憑證會以一般名稱 (CN) 納入資料庫執行個體端點,讓 SSL 憑證免於詐騙攻擊。

有兩種方法可使用 SSL 來連接至 SQL Server 資料庫執行個體:

  • 強制所有連線使用 SSL — 用戶端自然會這樣做,用戶端不必有任何動作即可使用 SSL。

    注意

    當您將 rds.force_ssl 設定為 1,並使用 SSMS 19.3、20.0 和 20.2 版時,請確認下列事項:

    • 在 SSMS 中啟用信任伺服器憑證。

    • 將憑證匯入您的系統中。

  • 加密特定的連線 — 這會設定來自特定用戶端電腦的 SSL 連線,您必須在用戶端設定才能加密連線。

如需 SQL Server 的 Transport Layer Security (TLS) 支援有關的資訊,請參閱 Microsoft SQL Server 的 TLS 1.2 支援。

強制連線至資料庫執行個體以使用 SSL

您可以強制資料庫執行個體的所有連線都使用 SSL。如果您強制所有連線都使用 SSL,用戶端自然就會這樣做,用戶端不必有任何動作即可使用 SSL。

如果您要強制使用 SSL,請使用 rds.force_ssl 參數。依預設,rds.force_ssl 參數設為 0 (off)。將 rds.force_ssl 參數設為 1 (on) 可強制連線使用 SSL。rds.force_ssl 參數是靜態,當您變更值之後,您必須重新啟動資料庫執行個體,才能使變更生效。

強制資料庫執行個體的所有連線都使用 SSL
  1. 查明連接到資料庫執行個體的參數群組:

    1. 登入 AWS 管理主控台 並開啟位於 https://https://console.aws.amazon.com/rds/ 的 Amazon RDS 主控台。

    2. 在 Amazon RDS 主控台中,選擇資料庫執行個體 AWS 的區域。

    3. 在導覽窗格中選擇 Databases (資料庫),然後選擇資料庫執行個體的名稱來顯示詳細資訊。

    4. 選擇 Configuration (組態) 標籤。在區段中找出 Parameter group (參數群組)。

  2. 如果需要,請建立新的參數群組。如果您的資料庫執行個體使用預設參數群組,則您必須建立新的參數群組。如果您的資料庫執行個體使用非預設參數群組,您可以選擇編輯現有的參數群組,或建立新的參數群組。如果您編輯現有的參數群組,則變更會影響所有使用該參數群組的資料庫執行個體。

    若要建立新的參數群組,請遵循在 Amazon RDS 中建立資料庫參數群組中的說明。

  3. 編輯新的或現有的參數群組,將 rds.force_ssl 參數設為 true。若要編輯參數群組,請遵循修改 Amazon RDS 中的資料庫參數群組中的參數中的說明。

  4. 如果您已建立新的參數群組,請修改資料庫執行個體來附加新的參數群組。修改資料庫執行個體的 DB Parameter Group (資料庫參數群組) 設定。如需更多詳細資訊,請參閱 修改 Amazon RDS 資料庫執行個體。

  5. 重新啟動您的資料庫執行個體。如需更多詳細資訊,請參閱 在資料庫執行個體。

加密特定連線

您可以強制資料庫執行個體的所有連線都使用 SSL,也可以只加密來自特定用戶端電腦的連線。若要從特定用戶端使用 SSL,您必須為用戶端電腦取得憑證,在用戶端電腦匯入憑證,然後加密來自用戶端電腦的連線。

注意

所有在 2014 年 8 月 5 日之後建立的 SQL Server 執行個體,在 SSL 憑證的一般名稱 (CN) 欄位中都使用資料庫執行個體端點。在 2014 年 8 月 5 日之前,不會對 VPC 式 SQL Server 執行個體使用 SSL 憑證驗證。如果您有 2014 年 8 月 5 日之前建立的 VPC 式 SQL Server 資料庫執行個體,而且想要使用 SSL 憑證驗證,並確定將執行個體端點納入做為該資料庫執行個體之 SSL 憑證的 CN,請重新命名執行個體。重新命名資料庫執行個體會部署新的憑證,且執行個體會重新啟動,以啟用新的憑證。

為用戶端電腦取得憑證

若要將用戶端電腦到執行 Microsoft SQL Server 的 Amazon RDS 資料庫執行個體的連線加密,您在用戶端電腦上需要憑證。

若要取得該憑證,請將憑證下載至用戶端電腦。您可以下載適用於所有區域的根憑證,也可以下載同時包含新舊根憑證的憑證套件。此外,您還能下載區域特定的中繼憑證。如需下載憑證的詳細資訊,請參閱使用 SSL/TLS 加密與資料庫執行個體或叢集的連線。

下載適當的憑證之後,請遵循下一節的程序,將該憑證匯入 Microsoft Windows 作業系統。

在用戶端電腦匯入憑證

您可以使用下列程序,將憑證匯入用戶端電腦上的 Microsoft Windows 作業系統。

將憑證匯入 Windows 作業系統:
  1. 在 Start (開始) 功能表上,在搜尋方塊中輸入 Run,然後按 Enter (Enter)。

  2. 在 Open (開啟) 方塊中,輸入 MMC,然後選擇 OK (確定)。

  3. 在 MMC 主控台的 File (檔案) 功能表上,選擇 Add/Remove Snap-in (新增/移除嵌入式管理單元)。

  4. 在 Add or Remove Snap-ins (新增或移除嵌入式管理單元) 對話方塊中,從 Available snap-ins (可用的嵌入式管理單元) 中選取 Certificates (憑證),然後選擇 Add (新增)。

  5. 在 Certificates snap-in (憑證嵌入式管理單元) 對話方塊中,選擇 Computer account (電腦帳戶),然後選擇 Next (下一步)。

  6. 在 Select computer (選取電腦) 對話方塊中,選擇 Finish (完成)。

  7. 在 Add or Remove Snap-ins (新增或移除嵌入式管理單元) 對話方塊中,選擇 OK (確定)。

  8. 在 MMC 主控台,展開 Certificates (憑證),開啟 Trusted Root Certification Authorities (受信任的根憑證授權單位) 的內容 (右鍵) 功能表,選擇 All Tasks (所有任務),然後選擇 Import (匯入)。

  9. 在「憑證匯入精靈」的第一頁,選擇 Next (下一步)。

  10. 在「憑證匯入精靈」的第二頁,選擇 Browse (瀏覽)。在瀏覽視窗中,將檔案類型變更為 All files (*.*) (所有檔案 (*.*)),因為 .pem 不是標準憑證副檔名。找出您先前下載的 .pem 檔案。

    注意

    從 SQL Server Management Studio (SSMS) 等 Windows 用戶端連線時,建議使用 PKCS#7 (.p7b) 憑證格式,而非 global-bundle.pem 檔案。.p7b 格式可確保將包括根憑證授權機構和中繼憑證授權機構 (CAs) 在內的完整憑證鏈正確匯入 Windows Certificate Store。這可防止啟用強制加密時可能發生的連線失敗,因為 .pem 匯入可能無法正確安裝完整鏈結。

  11. 選擇 Open (開啟舊檔),以選取憑證檔案,然後選擇 Next (下一步)。

  12. 在「憑證匯入精靈」的第三頁,選擇 Next (下一步)。

  13. 在「憑證匯入精靈」的第四頁,選擇 Finish (完成)。隨即出現對話方塊指出匯入成功。

  14. 在 MMC 主控台,展開 Certificates (憑證),展開 Trusted Root Certification Authorities (受信任的根憑證授權單位),然後選擇 Certificates (憑證)。找出憑證以確認其存在,如此處所示。

    已選取信任根憑證授權機構資料夾的 MMC 憑證嵌入。

將執行 Microsoft SQL Server 的 Amazon RDS 資料庫執行個體的連線加密

將憑證匯入用戶端電腦之後,您就可以將用戶端電腦到執行 Microsoft SQL Server 的 Amazon RDS 資料庫執行個體的連線加密。

若為 SQL Server Management Studio,請使用以下程序。如需 SQL Server Management Studio 的詳細資訊,請參閱使用 SQL Server Management Studio。

從 SQL Server Management Studio 加密連線
  1. 啟動 SQL Server Management Studio。

  2. 在 Connect to server (連線至伺服器) 中,鍵入伺服器資訊、登入使用者名稱和密碼。

  3. 選擇 Options (選項)。

  4. 選取 Encrypt connection (加密連線)。

  5. 選擇 Connect (連線)。

  6. 執行下列查詢來確認連線已加密。確認查詢傳回的 true 為 encrypt_option。

    select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID

若為其他任何 SQL 用戶端,請使用以下程序。

加密來自其他 SQL 用戶端的連線
  1. 將 encrypt=true 附加至連線字串。此字串可能是選項,也可能是 GUI 工具中連線頁面上的屬性。

    注意

    對於使用 JDBC 連接的用戶端,若要啟用 SSL 加密,您可能需要將 Amazon RDS SQL 憑證新增至 Java CA 憑證 (cacert) 存放區。您可使用 keytool 公用程式做到這點。

  2. 執行下列查詢來確認連線已加密。確認查詢傳回的 true 為 encrypt_option。

    select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID