本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
對 Microsoft SQL Server 資料庫執行個體使用 SSL
您可以使用 Secure Sockets Layer (SSL),來加密用戶端應用程式與執行 Microsoft SQL Server 的 Amazon RDS 資料庫執行個體之間的連線。SSL 支援適用於所有 AWS 區域中所有支援的 SQL Server 版本。
建立 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
-
查明連接到資料庫執行個體的參數群組:
登入 AWS Management Console,開啟位於 https://console.aws.amazon.com/rds/
的 Amazon RDS 主控台。 -
在 Amazon RDS 主控台的右上角,選擇資料庫執行個體的 AWS 區域。
-
在導覽窗格中選擇 Databases (資料庫),然後選擇資料庫執行個體的名稱來顯示詳細資訊。
-
選擇 Configuration (組態) 標籤。在區段中找出 Parameter group (參數群組)。
-
如果需要,請建立新的參數群組。如果您的資料庫執行個體使用預設參數群組,則您必須建立新的參數群組。如果您的資料庫執行個體使用非預設參數群組,您可以選擇編輯現有的參數群組,或建立新的參數群組。如果您編輯現有的參數群組,則變更會影響所有使用該參數群組的資料庫執行個體。
若要建立新的參數群組,請遵循在 Amazon RDS 中建立資料庫參數群組中的說明。
-
編輯新的或現有的參數群組,將
rds.force_ssl參數設為true。若要編輯參數群組,請遵循修改 Amazon RDS 中的資料庫參數群組中的參數中的說明。 -
如果您已建立新的參數群組,請修改資料庫執行個體來附加新的參數群組。修改資料庫執行個體的 DB Parameter Group (資料庫參數群組) 設定。如需更多詳細資訊,請參閱 修改 Amazon RDS 資料庫執行個體。
-
重新啟動您的資料庫執行個體。如需更多詳細資訊,請參閱 重新啟動中的資料庫執行個體。
加密特定連線
您可以強制資料庫執行個體的所有連線都使用 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 作業系統:
-
在 Start (開始) 功能表上,在搜尋方塊中輸入
Run,然後按 Enter (Enter)。 -
在 Open (開啟) 方塊中,輸入
MMC,然後選擇 OK (確定)。 -
在 MMC 主控台的 File (檔案) 功能表上,選擇 Add/Remove Snap-in (新增/移除嵌入式管理單元)。
-
在 Add or Remove Snap-ins (新增或移除嵌入式管理單元) 對話方塊中,從 Available snap-ins (可用的嵌入式管理單元) 中選取
Certificates(憑證),然後選擇 Add (新增)。 -
在 Certificates snap-in (憑證嵌入式管理單元) 對話方塊中,選擇 Computer account (電腦帳戶),然後選擇 Next (下一步)。
-
在 Select computer (選取電腦) 對話方塊中,選擇 Finish (完成)。
-
在 Add or Remove Snap-ins (新增或移除嵌入式管理單元) 對話方塊中,選擇 OK (確定)。
-
在 MMC 主控台,展開 Certificates (憑證),開啟 Trusted Root Certification Authorities (受信任的根憑證授權單位) 的內容 (右鍵) 功能表,選擇 All Tasks (所有任務),然後選擇 Import (匯入)。
-
在「憑證匯入精靈」的第一頁,選擇 Next (下一步)。
-
在「憑證匯入精靈」的第二頁,選擇 Browse (瀏覽)。在瀏覽視窗中,將檔案類型變更為 All files (*.*) (所有檔案 (*.*)),因為 .pem 不是標準憑證副檔名。找出您先前下載的 .pem 檔案。
-
選擇 Open (開啟舊檔),以選取憑證檔案,然後選擇 Next (下一步)。
-
在「憑證匯入精靈」的第三頁,選擇 Next (下一步)。
-
在「憑證匯入精靈」的第四頁,選擇 Finish (完成)。隨即出現對話方塊指出匯入成功。
-
在 MMC 主控台,展開 Certificates (憑證),展開 Trusted Root Certification Authorities (受信任的根憑證授權單位),然後選擇 Certificates (憑證)。找出憑證以確認其存在,如此處所示。
將執行 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 加密連線
-
啟動 SQL Server Management Studio。
-
在 Connect to server (連線至伺服器) 中,鍵入伺服器資訊、登入使用者名稱和密碼。
-
選擇 Options (選項)。
-
選取 Encrypt connection (加密連線)。
-
選擇 Connect (連線)。
-
執行下列查詢來確認連線已加密。確認查詢傳回的
true為encrypt_option。select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID
若為其他任何 SQL 用戶端,請使用以下程序。
加密來自其他 SQL 用戶端的連線
-
將
encrypt=true附加至連線字串。此字串可能是選項,也可能是 GUI 工具中連線頁面上的屬性。注意
對於使用 JDBC 連接的用戶端,若要啟用 SSL 加密,您可能需要將 Amazon RDS SQL 憑證新增至 Java CA 憑證 (cacert) 存放區。您可使用 keytool
公用程式做到這點。 -
執行下列查詢來確認連線已加密。確認查詢傳回的
true為encrypt_option。select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID