Amazon Aurora MySQLの証明書を更新した話

こんにちは。 エキサイト株式会社の三浦です。

AWSのAurora MySQLにはサーバー証明書が組み込まれていますが、以前デフォルトとして設定されていた rds-ca-2019 がもうすぐ有効期限を迎えます。

今回は、この証明書を更新した話をしていきます。

準備

実際に更新する前に、まず以下の2点を確認しました。

アプリケーションコードで検証のために証明書を使っていないか

アプリケーションコードからDBに接続する際、アプリケーションコード側で証明書を使うことにより、厳密にDBの証明書をチェックをすることができます。

この厳密な証明書チェックをしている場合は、DBの証明書の更新に合わせてアプリケーションコード側で使用している証明書も更新しておく必要があります。

なお、例えばJavaのDB接続ライブラリであるJDBCでは、デフォルトは以下の動作になっています。

  • DBの証明書の有効期限が切れていないかチェックする
  • ただし、わざわざアプリケーションコード側で証明書を使ってまで厳密にはチェックしない

そのため、デフォルトの使い方であればアプリケーションコード側の証明書の更新はする必要がありません。

docs.aws.amazon.com

dev.mysql.com

アプリケーションコードでどのような証明書チェックをしているのかを確認し、適切に対応しましょう。

証明書更新時、DBの再起動が必要かどうか

証明書を更新する際、DBの種類やバージョン等によって再起動の必要性が変わってくるようです。

docs.aws.amazon.com

「証明書の更新」ページから必要性がチェックできます。

再起動が必要な場合は、再起動時にサービスに問題が生じないよう適切に対処しましょう。

証明書更新実行

上記の2つのチェックが完了したので、続いて実際に証明書を更新しました。

準備段階をしっかりしていればそこまで気にすることはありませんが、1つ迷いそうな箇所がありました。

証明書の更新はインスタンス単位

証明書は、クラスタ単位ではなくインスタンス単位で更新する必要があります。

クラスタから変更しようとしても変更項目にないので注意しましょう。

以上で証明書更新は終了です!

最後に

証明書の更新、やってみると意外と簡単でした。

特に準備段階で、アプリケーションコードで証明書を使っておらず、かつ更新時に再起動が不要であれば、実質ポチポチと更新するだけで終わります。

いつかはやらなくてはならないものなので、思い切って早めに終わらせてしまいましょう!