Microsoft SQL Server DB インスタンスでの SSL の使用
クライアントアプリケーションと Microsoft SQL Server を実行する Amazon RDS DB インスタンス間の接続は、Secure Sockets Layer (SSL) を使用して暗号化できます。SSL サポートは、AWS のすべてのリージョンで、サポート対象の SQL Server のすべてのエディションでご利用いただけます。
SQL Server DB インスタンスを作成する際、Amazon RDS はそのインスタンスの SSL 証明書を作成します。SSL 証明書には、なりすまし攻撃から保護するために、SSL 証明書の共通名(CN)として DB インスタンスのエンドポイントが含まれています。
SSL を使用して SQL Server DB インスタンスに接続する方法は 2 とおりあります。
-
すべての接続に SSL を強制する — これはクライアントに対して透過的に行われ、クライアントは SSL を使用するための作業を行う必要はありません。
-
特定の接続を暗号化する — 特定のクライアントコンピュータから SSL 接続を確立します。接続を暗号化するためにクライアントで作業を行う必要があります。
SQL Server での Transport Layer Security (TLS) サポートについては、「Microsoft SQL Server 用の TLS 1.2 のサポート
DB インスタンスへの接続に SSL を使用させる
DB インスタンスへのすべての接続に SSL の使用を強制することができます。接続に SSL の使用を強制する場合、これはクライアントに対して透過的に行われ、クライアントは SSL を使用するための作業を行う必要はありません。
SSL の使用を強制する場合、rds.force_ssl
パラメータを使用します。デフォルトでは、rds.force_ssl
パラメータが 0 (off)
に設定されています。接続での SSL の使用を強制するには、rds.force_ssl
パラメータを 1 (on)
に設定します。rds.force_ssl
パラメーターは静的であるため、値を変更した後にその変更を有効にするには、DB インスタンスを再起動する必要があります。
DB インスタンスへの接続で SSL の使用を強制するには
-
DB インスタンスにアタッチされているパラメータグループを決定します。
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
Amazon RDS コンソールの右上で、DB インスタンスの AWS リージョンを選択します。
-
ナビゲーションペインで、[データベース] を選択し、詳細を表示する DB インスタンスの名前を選択します。
-
[設定] タブを選択します。セクションで [パラメータグループ] を見つけます。
-
必要に応じて、新しいパラメーターグループを作成します。DB インスタンスでデフォルトのパラメーターグループが使用されている場合は、新しいパラメーターグループを作成する必要があります。DB インスタンスでデフォルト以外のパラメーターグループが使用されている場合は、既存のパラメーターグループを編集するか、新しいパラメーターグループを作成するかを選択できます。既存のパラメーターグループを編集する場合、その変更は、そのパラメーターグループを使用するすべての DB インスタンスに適用されます。
新しいパラメーターグループを作成するには、「Amazon RDS での DB パラメータグループの作成」の手順に従います。
-
新規または既存のパラメーターグループを編集して、
rds.force_ssl
パラメーターをtrue
に設定します。パラメーターグループを編集するには、「Amazon RDS の DB パラメータグループのパラメータの変更」の手順に従います。 -
新しいパラメーターグループを作成した場合は、そのパラメーターグループがアタッチされるように DB インスタンスを変更します。DB インスタンスの [DB Parameter Group] 設定を変更します。詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。
-
DB インスタンスを再起動します。詳細については、「 DB インスタンスの再起動」を参照してください。
特定の接続の暗号化
DB インスタンスへのすべての接続で SSL を使用するように強制することも、特定のクライアントコンピュータからの接続のみを暗号化することもできます。特定のクライアントからの接続に SSL を使用するには、クライアントコンピュータの証明書を取得し、クライアントコンピュータで証明書をインポートしてから、クライアントコンピュータからの接続を暗号化する必要があります。
注記
2014 年 8 月 5 日以降に作成されたすべての SQL Server インスタンスは、SSL 証明書の共通名 (CN) フィールドで DB インスタンスのエンドポイントを使用します。2014 年 8 月 5 日より前は、VPC ベースの SQL Server のインスタンスで SSL 証明書を利用できませんでした。2014 年 8 月 5 日より前に作成された VPC ベースの SQL Server DB インスタンスの場合、SSL 証明書認証を使用し、そのインスタンスのエンドポイントを CN としてその DB インスタンスの SSL 証明書に含めるには、インスタンスの名前を変更します。DB インスタンスの名前を変更すると、新しい証明書がデプロイされ、新しい証明書を有効にするためにインスタンスは再起動されます。
クライアントコンピュータの証明書の取得
クライアントコンピュータから、Microsoft SQL Server を実行する Amazon RDS DB インスタンスへの接続を暗号化するには、クライアントコンピュータに証明書が必要です。
その証明書を取得するには、クライアントコンピュータに証明書をダウンロードします。すべてのリージョンで使用できるルート証明書は、ダウンロードできます。また、古いルート証明書と新しいルート証明書の両方を含む証明書バンドルもダウンロードできます。さらに、リージョン固有の中間証明書をダウンロードすることもできます。証明書のダウンロードの詳細については、SSL/TLS を使用した DB インスタンスまたはクラスターへの接続の暗号化 を参照してください。
適切な証明書をダウンロードしたら、以下のセクションの手順に従って Microsoft Windows オペレーティングシステムに証明書をインポートします。
クライアントコンピュータでの証明書のインポート
以下の手順を使用して、クライアントコンピュータの Microsoft Windows オペレーティングシステムに証明書をインポートできます。
Windows オペレーティングシステムに証明書をインポートするには:
-
[Start] メニューで、検索ボックスに「
Run
」と入力し、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] の順に選択します。
-
Certificate Import Wizard の最初のページで、[Next] を選択します。
-
Certificate Import Wizard の 2 番目のページで、[Browse] を選択します。参照ウィンドウで、ファイルタイプを [All files (*.*)] に変更する必要があります。.pem は証明書の標準の拡張子ではないためです。先ほどダウンロードした .pem ファイルを見つけます。
-
[Open] を選択して証明書ファイルを選択したら、[Next] を選択します。
-
Certificate Import Wizard の 3 番目のページで、[Next] を選択します。
-
Certificate Import Wizard の 4 番目のページで、[Finish] を選択します。インポートが成功したことを示すダイアログボックスが表示されます。
-
MMC コンソールで、[Certificates]、[Trusted Root Certification Authorities] の順に展開し、[Certificates] を選択します。次に示すように、証明書を探してそれが存在することを確認します。
Microsoft SQL Server を実行している Amazon RDS DB インスタンスへの接続の暗号化
クライアントコンピュータに証明書をインポートした後、クライアントコンピュータから、Microsoft SQL Server を実行する Amazon RDS DB インスタンスへの接続を暗号化できます。
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] を選択します。
-
[接続]を選択します。
-
次のクエリを実行して接続が暗号化されていることを確認します。クエリが
true
をencrypt_option
に対して返すことを確認します。select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID
その他の SQL クライアントの場合は、以下の手順を実行します。
他の SQL クライアントからの接続を暗号化するには
-
接続文字列に
encrypt=true
を追加します。この文字列はオプションとして、または GUI ツールの接続ページのプロパティとして使用できます。注記
JDBC を使用して接続するクライアントの SSL 暗号化を有効にするには、Java CA 証明書 (cacerts) ストアへの Amazon RDS SQL 証明書の追加が必要になる場合があります。これは、キーツール
ユーティリティを使用して行うことができます。 -
次のクエリを実行して接続が暗号化されていることを確認します。クエリが
true
をencrypt_option
に対して返すことを確認します。select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID