すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:SSL 暗号化機能を構成する

最終更新日:Jun 05, 2025

ApsaraDB RDS for SQL Server の Secure Sockets Layer (SSL) 暗号化機能は、転送中のデータを暗号化するために使用されます。 この機能は、内部ネットワークまたはインターネットを介した接続のコンプライアンスとセキュリティが必要なシナリオに適しています。 この機能を使用すると、Alibaba Cloud が提供する証明書またはカスタム証明書を使用して、転送中のデータを暗号化できます。 また、この機能を使用すると、RDS インスタンスの内部エンドポイントに確立された接続に対して強制的な SSL 暗号化を実行することもできます。 これにより、転送中のデータの機密性が確保されます。

機能説明

SSL 暗号化機能を使用すると、RDS インスタンスとクライアント間で転送されるデータを暗号化できます。 これにより、第三者によるデータの盗聴、傍受、または改ざんを防ぎます。

SSL 暗号化機能を有効にすると、RDS インスタンスとクライアント間で確立されている接続に対して強制的な SSL 暗号化を実行するかどうかを決定できます。

RDS インスタンスの SSL 暗号化機能を有効にすると、サーバー証明書、公開鍵、および秘密鍵が生成されます。

暗号化された接続が確立されると、システムは公開鍵を含むサーバー証明書をクライアントに送信します。 クライアントは、受信した公開鍵を使用して、生成された対称鍵を暗号化します。 次に、システムは秘密鍵を使用して対称鍵を復号化します。 このようにして、RDS インスタンスとクライアントは対称鍵を使用してデータの暗号化と復号化を行います。 これにより、通信の機密性が確保されます。 クライアントは認証局 (CA) 証明書を使用して受信したサーバー証明書を検証し、RDS インスタンスの ID を確認して中間者攻撃を防ぐこともできます。

説明
  • Transport Layer Security (TLS) は SSL の直接の後継です。 このトピックでは、SSL は TLS と SSL を指します。

  • ApsaraDB RDS for SQL Server は TLS 1.0、TLS 1.1、および TLS 1.2 をサポートしています。

前提条件

カスタム鍵を暗号化に使用する前に、次の要件が満たされていることを確認してください。

使用上の注意

  • SSL 証明書の有効期間は 1 年です。 使用されている SSL 証明書の有効期限が切れる前に、SSL 証明書の有効期間を更新する必要があります。 SSL 証明書の有効期間を更新しないと、暗号化されたネットワーク接続を使用するアプリケーションまたはクライアントは RDS インスタンスに接続できません。 SSL 証明書の有効期間を更新する方法の詳細については、「SSL 証明書の有効期間を更新する」をご参照ください。

  • RDS インスタンスの SSL 暗号化機能を有効または無効にするか、SSL 証明書を更新すると、RDS インスタンスが再起動します。 再起動中は RDS インスタンスが数分間使用できなくなりますしたがって、これらの操作はオフピーク時に実行することをお勧めします。

  • SSL 暗号化により、CPU 使用率が大幅に増加する可能性があります。 RDS インスタンスのパブリックエンドポイントへの接続を暗号化する必要がある場合にのみ、SSL 暗号化機能を有効にすることをお勧めします。

制限事項

1. RDS インスタンスの SSL 暗号化機能を有効にする

  1. ApsaraDB RDS コンソールにログインし、[インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDS インスタンスを見つけて、インスタンス ID をクリックします。

  2. 左側のナビゲーションウィンドウで、セキュリティコントロール をクリックします。

  3. SSL タブで、無効 をオンにします。

  4. SSL の設定 ダイアログボックスで、暗号化方式を選択し、設定を構成します。

    Alibaba Cloud によって自動的に生成された鍵を使用する

    image

    パラメーター

    必須

    説明

    保護されたエンドポイントを選択します:

    はい

    SSL 暗号化機能を有効にするエンドポイントを選択します。 ビジネス要件に基づいて、RDS インスタンスの内部エンドポイントまたはパブリックエンドポイントに確立された接続を暗号化できます。 両方のタイプの接続を暗号化することはできません。

    説明

    RDS インスタンスのパブリックエンドポイントに確立された接続を暗号化する場合は、パブリックエンドポイントを申請済みであることを確認してください。 詳細については、「パブリックエンドポイントを申請または解放する」をご参照ください。

    強制暗号化を有効にするかどうか

    いいえ

    強制的な SSL 暗号化をサポートするかどうかを指定します。 強制 SSL 暗号化は、RDS インスタンスの内部エンドポイントに確立された接続でのみサポートされます。 強制暗号化をオンにした後、CA 証明書をアップロードする必要はなく、暗号化されていない接続はサポートされません。

    説明
    • この機能は、仮想プライベートクラウド (VPC) に存在する RDS インスタンスに対してのみ有効にできます。 詳細については、「ネットワークタイプを変更する」をご参照ください。

    • RDS インスタンスのパブリックエンドポイントに確立された接続では、強制 SSL 暗号化はサポートされていません。 RDS インスタンスの内部エンドポイントとパブリックエンドポイントに確立された接続が存在する場合、RDS インスタンスの内部エンドポイントに確立された接続に対して強制暗号化をオンにするには、最初にパブリックエンドポイントを解放する必要があります。 詳細については、「パブリックエンドポイントを申請または解放する」をご参照ください。

    最小 TLS バージョンがサポートされています

    いいえ

    サポートされている最小 TLS バージョンを選択します。 有効な値:1.0、1.1、および 1.2。

    たとえば、このパラメーターを 1.1 に設定すると、サーバーは TLS 1.1 および TLS 1.2 プロトコルを介した接続のみを受け入れます。

    カスタム鍵を使用して暗号化する

    説明

    カスタム鍵を暗号化に使用する前に、「前提条件」で説明されている要件が満たされていることを確認してください。

    1. [PFX 形式の証明書を OSS にアップロードする] ステップで、[次のステップ] をクリックします。

    2. [カスタム鍵暗号化を使用する] ステップで、必要なパラメーターを構成し、[次のステップ] をクリックします。 次の表にパラメーターを示します。

      image

      パラメーター

      説明

      [OSS バケット]

      証明書が存在する OSS バケットを選択します。

      [証明書]

      必要な PFX 証明書を選択します。

      [パスワード]

      証明書のパスワードを入力します。

    3. [全般オプションの設定] ステップで、次のパラメーターを構成します。

      image

      パラメーター

      必須

      説明

      保護されたエンドポイントを選択します:

      はい

      SSL 暗号化機能を有効にするエンドポイントを選択します。 ビジネス要件に基づいて、RDS インスタンスの内部エンドポイントまたはパブリックエンドポイントに確立された接続を暗号化できます。 両方のタイプの接続を暗号化することはできません。

      説明

      RDS インスタンスのパブリックエンドポイントに確立された接続を暗号化する場合は、パブリックエンドポイントを申請済みであることを確認してください。 詳細については、「パブリックエンドポイントを申請または解放する」をご参照ください。

      強制暗号化を有効にするかどうか

      いいえ

      強制的な SSL 暗号化をサポートするかどうかを指定します。 強制 SSL 暗号化は、RDS インスタンスの内部エンドポイントに確立された接続でのみサポートされます。 強制暗号化をオンにした後、CA 証明書をアップロードする必要はなく、暗号化されていない接続はサポートされません。

      説明
      • この機能は、仮想プライベートクラウド (VPC) に存在する RDS インスタンスに対してのみ有効にできます。 詳細については、「ネットワークタイプを変更する」をご参照ください。

      • RDS インスタンスのパブリックエンドポイントに確立された接続では、強制 SSL 暗号化はサポートされていません。 RDS インスタンスの内部エンドポイントとパブリックエンドポイントに確立された接続が存在する場合、RDS インスタンスの内部エンドポイントに確立された接続に対して強制暗号化をオンにするには、最初にパブリックエンドポイントを解放する必要があります。 詳細については、「パブリックエンドポイントを申請または解放する」をご参照ください。

      最小 TLS バージョンがサポートされています

      いいえ

      サポートされている最小 TLS バージョンを選択します。 有効な値: 1.0、1.1、および 1.2。

      たとえば、このパラメーターを 1.1 に設定すると、サーバーは TLS 1.1 および TLS 1.2 プロトコルを介した接続のみを受け入れます。

  5. [OK] をクリックします。

    SSL 暗号化機能を有効にするには約 1分かかります。 ページを更新して、RDS インスタンスのステータスを表示できます。

2. SSL 証明書をダウンロードする

CA 証明書なしで SSL 暗号化機能を使用して RDS インスタンスに接続できます。 CA 証明書をダウンロードして使用することをお勧めします。 CA 証明書を使用して、SSL ハンドシェイク中に受信したサーバー証明書を検証できます。 これにより、RDS インスタンスの ID を確認し、中間者攻撃を防ぐのに役立ちます。

  1. ApsaraDB RDS コンソールにログインし、[インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDS インスタンスを見つけて、インスタンス ID をクリックします。

  2. 左側のナビゲーションウィンドウで、セキュリティコントロール をクリックします。

  3. SSL タブで、CA 証明書のダウンロード をクリックします。

    ダウンロードしたファイルは、次のファイルを含むパッケージです。

    • P7B ファイル:Windows オペレーティングシステムに使用される SSL 証明書ファイル。

    • PEM ファイル:Windows 以外のオペレーティングシステム、または Windows で実行されていないアプリケーションに使用される SSL 証明書ファイル。

    • JKS ファイル:Java でサポートされているトラストストアに保存されている SSL 証明書ファイル。 このファイルを使用して、SSL 証明書チェーンから SSL 証明書ファイルを Java ベースのアプリケーションにインポートできます。 デフォルトのパスワードは apsaradb です。

    重要

    JDK 7 または JDK 8 で JKS ファイルを使用する場合は、アプリケーションが存在するホストの jre/lib/security/Java.security ファイルで、次のデフォルトの JDK セキュリティ設定項目を変更する必要があります。

    jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 224
    jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024

    これらの構成を変更しないと、次のエラーが報告されます。 ほとんどの場合、他の同様のエラーも無効な Java セキュリティ構成が原因で発生します。

    javax.net.ssl.SSLHandshakeException: DHPublicKey does not comply to algorithm constraints

3. SSL 証明書を構成する

SSL 暗号化機能を有効にした後、アプリケーションまたはクライアントで SSL 証明書を構成する必要があります。 このトピックでは、SQL Server Management Studio (SSMS) を使用して SSL 証明書をインストールする例を示します。 他のアプリケーションまたはクライアントを使用する場合は、関連する手順を参照してください。

3.1 SSL 証明書をインポートする

  1. デスクトップの左下隅にある検索ボックスに certmgr.msc と入力し、certmgr.msc を開きます。

  2. [certmgr] ダイアログボックスで、[信頼されたルート証明機関] を右クリックします。

  3. [すべてのタスク] > [インポート] を選択します。

  4. [次へ] をクリックします。

  5. [証明書のインポートウィザード] ダイアログボックスで、[参照] をクリックしてダウンロードした SSL 証明書をインポートし、[次へ] をクリックします。 SSL 証明書をダウンロードする方法の詳細については、「2. SSL 証明書をダウンロードする」をご参照ください。

  6. SSL 証明書を保存するディレクトリを選択し、[次へ] をクリックします。

  7. [完了] をクリックし、証明書がインポートされるまで待ちます。

3.2 SSMS を構成する

  1. SSMS を開き、ダイアログボックスの右下隅にある [オプション] をクリックします。

    image.png

  2. [接続プロパティ] タブで、[接続の暗号化][サーバー証明書の信頼] を選択し、[接続] をクリックします。

    image.png

  3. 次のステートメントを実行します。 TRUE が返された場合、接続は暗号化されています。

    SELECT ENCRYPT_OPTION FROM SYS.DM_EXEC_CONNECTIONS WHERE SESSION_ID = @@SPID

付録:SSL 経由の接続のサンプルコード

# -*- coding:utf-8 -*-
import pymssql

conn = pymssql.connect(host='your_rds_instance_endpoint',port='your_rds_instance_port',user='your_username',password='your_password',database='your_database_name',ssl={'ca':'path_to_your_ca_certificate'})

cursor = conn.cursor()
cursor.execute("SELECT 1")
row = cursor.fetchone()
while row:
    print(row)
    row = cursor.fetchone()
conn.close()
using System;
using System.Data.SqlClient;

namespace SqlConnectionSSLExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // 接続を確立します。
            // Data Source は、必要な SQL Server データベースが存在するサーバーの IP アドレスを指定します。Initial Catalog は、接続する必要のあるデータベースの名前を指定します。User ID は、データベースへの接続に必要なユーザー名を指定します。Password は、データベースへの接続に必要なパスワードを指定します。Encrypt は、SSL 暗号化伝送を有効にするかどうかを指定します。値 true は、SSL 暗号化が有効になっていることを示します。
            string connectionString = "Data Source=rm-2ze********.sqlserver.rds.aliyuncs.com;Initial Catalog=master;User ID=zhttest;Password=zht****;Encrypt=true;";
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                // 接続を開きます。
                connection.Open();
                try
                {
                    // SQL 文を実行します。
                    SqlCommand cmd = new SqlCommand("SELECT @@version", connection);

                    string result = cmd.ExecuteScalar().ToString();

                    Console.WriteLine(result);
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Error: {ex.Message}");
                }
            }
        }
    }
}

関連操作

4. SSL 証明書の有効期間を更新する

証明書の有効期間を更新する

SSL 証明書の有効期間は 1 年です。 使用されている SSL 証明書の有効期限が切れる前に、SSL 証明書の有効期間を更新する必要があります。 SSL 証明書の有効期間を更新しないと、暗号化されたネットワーク接続を使用するアプリケーションまたはクライアントは RDS インスタンスに接続できなくなります。 SSL 証明書の有効期限が近づくと、Alibaba Cloud は、メール、および内部メッセージを使用して、カスタム証明書を使用して SSL 暗号化を有効にしているユーザーに通知します。 内部メッセージはイベントセンターページで確認できます。 SSL 証明書の有効期限が切れる前に、アプリケーションまたはクライアントが RDS インスタンスに接続できるように、SSL 証明書の有効期間を更新する必要があります。

重要

SSL 証明書の有効期間を更新すると、RDS インスタンスが再起動します。 SSL 証明書の有効期間を更新する場合は注意してください。

  1. ApsaraDB RDS コンソールにログオンし、[インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDS インスタンスを見つけ、インスタンス ID をクリックします。

  2. 左側のナビゲーションウィンドウで、セキュリティコントロール をクリックします。

  3. SSL タブで、[有効期間の更新] をクリックします。更新证书有效期

SSL 暗号化機能を無効にする

重要
  • SSL 暗号化機能を無効にすると、RDS インスタンスが再起動します。この場合、ワークロードへの影響を軽減するために、システムはプライマリ/セカンダリのスイッチオーバーをトリガーします。それでも、オフピーク時に SSL 暗号化機能を無効にすることをお勧めします。

  • SSL 暗号化機能を無効にすると、アクセス パフォーマンスは向上しますが、セキュリティは低下します。安全な環境でのみ SSL 暗号化機能を無効にすることをお勧めします。

  • SSL 暗号化機能を無効にした場合、アプリケーションは非 SSL 接続経由でのみ RDS インスタンスに接続できます。

  1. [インスタンス] ページに移動します。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。次に、RDS インスタンスを見つけ、インスタンスの ID をクリックします。

  2. 左側のナビゲーションウィンドウで、セキュリティコントロール をクリックします。

  3. 表示されたページで、[SSL] タブをクリックします。

  4. [SSL 暗号化] をオフにします。表示されるメッセージで、[OK] をクリックします。

接続の暗号化に関する詳細を表示する

SQL Server では、次の文を実行して、現在の接続で SSL 暗号化機能が有効になっているかどうかを確認できます。

SELECT session_id,encrypt_option
FROM sys.dm_exec_connections;
GO

sys.dm_exec_connections 動的管理ビューのクエリを実行したときに現在の接続のセッション ID が返され、encrypt_option パラメーターの値が true の場合、接続で SSL 暗号化機能が有効になっています。

よくある質問

期限切れの SSL 証明書を更新しないと、ビジネスにどのような影響がありますか。RDS インスタンスでエラーが発生しますか、それともデータ セキュリティが低下しますか。

期限切れの SSL 証明書を更新しなくても、RDS インスタンスは想定どおりに動作し続け、セキュリティ リスクは発生しません。ただし、アプリケーションは RDS インスタンスへの暗号化された接続を確立できません。