概要
この記事では、AWS RDS(MySQL)に接続する際、SSL証明書を使っているかどうか確認する方法を記載します。
SSL証明書の更新方法は紹介しません
背景
先日AWSから下記タイトルのメールが来ました。
[アクションが必要] 2024 年 8 月 22 日までに Amazon RDS および Amazon Aurora SSL/TLS 証明書を更新してください | [Action required] Update Your Amazon RDS and Amazon Aurora SSL/TLS Certificates by August 22, 2024 [AWS Account: xxxxxxxxxx] [AP-NORTHEAST-1]
どうやらRDSの接続にSSL証明書を使っている場合は更新を行う必要があるようです。
証明書の設定をした覚えが無いので、対応の必要はないだろうと考えていたのですが
「使っていない事の確認はどうやればよいのだろう?」
と分からなくなったので、確認に使った方法を記事にします。
確認方法
基本的には下記AWSドキュメントに方法が載っていので、それを参照する
mysql以外の確認方法は以下の「DB インスタンスの変更による CA 証明書の更新」の項を参照
方法1 コマンドラインからDBにログインする
コマンドラインからDBへのログインを試してみる
もしログインに証明書が必須になっている場合、この時点で失敗する。
$ mysql -u my_user -p
方法2 設定ファイルを確認する
接続に証明書を使っているならば、下記のような設定ファイルに証明書のPathが設定されているはずなので、それが無いか確認する
・my.cnf
など、DBの設定ファイル
・DBに接続しているアプリの設定ファイル(WordPressのwp-config.phpとか)
方法3 ユーザのログイン方法一覧を表示する
DBによって確認方法は異なるが、MySQLにおいては下記コマンドでユーザ毎のログイン方法一覧を表示することができる
下記の例ではadminとwebapp1が接続にSSLを用いていることがわかる
mysql> SELECT id, user, host, connection_type
FROM performance_schema.threads pst
INNER JOIN information_schema.processlist isp
ON pst.processlist_id = isp.id;
## 出力結果 ##
+----+-----------------+------------------+-----------------+
| id | user | host | connection_type |
+----+-----------------+------------------+-----------------+
| 8 | admin | 10.0.4.249:42590 | SSL/TLS |
| 4 | event_scheduler | localhost | NULL |
| 10 | webapp1 | 159.28.1.1:42189 | SSL/TLS |
+----+-----------------+------------------+-----------------+
3 rows in set (0.00 sec)