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

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

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

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

當您建立SQL伺服器資料庫執行個體時,Amazon 會為其RDS建立SSL憑證。SSL 憑證包含資料庫執行個體端點作為SSL憑證的通用名稱 (CN),以防止詐騙攻擊。

有兩種方法可用來SSL連線至您的SQL伺服器資料庫執行個體:

  • SSL 強制所有連線 — 這對用戶端透明地發生,而且用戶端不需要執行任何工作即可使用 SSL。

    注意

    當您將 rds.force_ssl 設為 1 並使用 19.3、20.0 和 20.2 SSMS版時,請檢查下列項目:

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

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

  • 加密特定連線:這會設定來自特定用戶端電腦的SSL連線,而且您必須在用戶端上執行加密連線的工作。

如需SQL伺服器 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 Management Console 並在 開啟 Amazon RDS主控台https://console.aws.amazon.com/rds/

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

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

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

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

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

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

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

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

加密特定連線

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

注意

在 2014 年 8 月 5 日之後建立的所有SQL伺服器執行個體,請使用SSL憑證的通用名稱 (CN) 欄位中的資料庫執行個體端點。在 2014 年 8 月 5 日之前,SSL憑證驗證不適用於VPC以 為基礎的SQL伺服器執行個體。如果您有在 2014 年 8 月 5 日之前建立的VPC以 為基礎的SQL伺服器資料庫執行個體,而且您想要使用SSL憑證驗證,並確保執行個體端點包含為該資料庫執行個體SSL憑證的 CN,則請重新命名執行個體。重新命名資料庫執行個體會部署新的憑證,且執行個體會重新啟動,以啟用新的憑證。

為用戶端電腦取得憑證

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

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

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

在用戶端電腦匯入憑證

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

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

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

  3. 在MMC主控台的檔案選單中,選擇新增/移除 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主控台中,展開憑證 ,開啟信任根憑證授權機構 的內容 (按一下滑鼠右鍵) 選單,選擇所有任務 ,然後選擇匯入

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

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

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

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

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

  14. 在MMC主控台中,展開憑證 ,展開信任的根憑證機構 ,然後選擇憑證 。找出憑證以確認其存在,如此處所示。

    在MMC主控台的導覽窗格中,會從主控台根目錄、憑證 (本機電腦) 和受信任根憑證授權單位下鑽憑證資料夾。在主頁面中,選取所需的 CA 憑證。

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

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

對於 SQL Server Management Studio,請使用下列程序。如需 SQL Server Management Studio 的詳細資訊,請參閱使用SQL伺服器管理 Studio。

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

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

  3. 選擇 Options (選項)

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

  5. 選擇 Connect (連線)

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

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

對於任何其他SQL用戶端,請使用下列程序。

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

    注意

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

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

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