こんにちは。AWS CLI が好きなテクニカルサポート課の市野です。
世間では FIBA バスケットボール・ワールドカップで 17 年ぶりの勝利!ということで盛り上がっていますが、なぜ 17 ?なぜ素数?と思って調べてみたら、4年ごとに開催されることになっているものの 2014 年の次が、1年遅らせた 2019 年開催だったためのようですね。
今回は、こんな感じで IT の世界にも定期的に訪れる作業のうち、RDS および Aurora の SSL/TLS 証明書の期限到来のお知らせについてのご案内と FAQ 記事のご紹介となります。
よくあるご質問
Amazon RDS や Amazon Aurora での SSL/TLS 証明書の更新について、いただくことの多いご質問については、過去に弊社の水本がまとめている以下のエントリに記載があります。
合わせてご確認いただけますと幸いです。
どのような通知か
2024 年 8 月に期限切れとなる Amazon RDS 認証局証明書 rds-ca-2019 を使用する Amazon RDS または Amazon Aurora データベースインスタンスを利用中の AWS アカウントを対象に [Action required] Update Your Amazon RDS and Amazon Aurora SSL/TLS Certificates by August 22, 2024 [AWS Account: ${AWS_ACCOUNT_ID}] [${AWS_REGION}] の件名で通知が行われています。
何をする必要がありますか?
通知本文中に記載されている AWS 公式ドキュメントにも記載がありますが、ご利用の DB への接続を行なっているクライアント側、および Amazon RDS または Amazon Aurora 側で、以下のような作業が必要となります。
- 新しい SSL/TLS 証明書をダウンロードする
- 新しい SSL/TLS 証明書を使用するようにアプリケーションを更新する
- DB インスタンスを変更して、CA を rds-ca-2019 から rds-ca-rsa2048-g1(利用中の DB エンジンによっては rds-ca-rsa4096-g1、または rds-ca-ecc384-g1) に変更する。
Amazon RDS をお使いの場合の手順
Amazon Aurora をお使いの場合の手順
対応しないとどうなりますか?
証明書検証付きで SSL/TLS を使用している場合、RDS データベースへ接続ができなくなります。
なお、前述の 弊社水本のエントリ 中にも記載がありますが、SSL/TLS のご利用がない場合、AWSが自動的に証明書を置き換えますので、特段のご計画やご対応は不要です。
2024年5月23日 追記
本日時点までに整備されている AWS ドキュメント [1, 2] を確認する限り、サーバー証明書の自動ローテーション機能自体はあるものの、現行の rds-ca-2019 を認証局(CA)として稼働している DB インスタンスの場合であれば、自動での証明書の置き換えが発生しないものとご判断いただく方が望ましいと考えられます。
[1] SSL/TLS 証明書のローテーション - Amazon Relational Database Service
サーバー証明書の自動ローテーション
CA がサーバー証明書の自動ローテーションをサポートしている場合、RDS は DB サーバー証明書のローテーションを自動的に処理します。RDS はこの自動ローテーションに同じルート CA を使用するため、新しい CA バンドルをダウンロードする必要はありません。「認証局」を参照してください。
[2] SSL/TLS を使用した DB インスタンスまたはクラスターへの接続の暗号化 - Amazon Relational Database Service docs.aws.amazon.com
Amazon RDS は、データベースの DB サーバー証明書への署名のために次の CA を提供しています。
| 認証局 (CA) | 説明 |
| --- | --- |
| rds-ca-2019 | RSA 2048 プライベートキーアルゴリズムと SHA256 署名アルゴリズムを備えた認証局を使用します。この CA は 2024 年に有効期限が切れ、サーバー証明書の自動ローテーションはサポートされていません。この CA を使用して同じ標準を維持したい場合は、rds-ca-rsa2048-g1 CA に切り替えることをお勧めします。|
RDS データベースへの接続に対し SSL/TLS を用いた接続を行っていないことが 100% 確実な場合であれば、明示的な置き換えを行わなくても RDS データベースの利用に際し影響はないと判断いただいて構わないと考えられます。
その場合でも将来に備えて、後述の --no-certificate-rotation-restart
を用いた更新を実行することで、modify-db-instance
サブコマンド実行後の即座の再起動・証明書更新の反映をさせず、メンテナンスなどの計画性を問わず、当該の DB インスタンスの再起動発生時に新しい証明書への適用を済ませておくアプローチを取ることも可能です。
具体的な期日はいつですか? 延期は可能ですか?
現時点でのアナウンスでは、2024年8月22日 が有効期限とされています。
また、過去の更新の際には AWS 側の事情により有効期限の延長が行われましたが、この流れは通常ではなく、基本的に上記期日をもって SSL/TLS 証明書の切り替えが行われるとお考えいただき、お早めのローテーションの計画策定をおすすめいたします。
対応中 RDS データベースの再起動は発生しますか?
デフォルトでは RDS データベースの再起動が発生するものとお考えください。
厳密には DB エンジンにより挙動が異なり、AWS CLI aws rds describe-db-engine-versions
サブコマンドを実行いただき、出力結果中の SupportsCertificateRotationWithoutRestart
の値から、再起動の要否を確認することが可能です。
2023-12-19 追記
前述の SupportsCertificateRotationWithoutRestart
については、特定のバージョン以前(AWS CLI v1 では 1.29.79、AWS CLI v2 では 2.13.33 )では出力されませんので、ご注意ください。
AWS CLI v2 系 https://github.com/aws/aws-cli/blob/v2/CHANGELOG.rst
2.13.33
〜中略〜
api-change:docdb: Update the input of CreateDBInstance and ModifyDBInstance to support setting CA Certificates. Update the output of DescribeDBInstance and DescribeDBEngineVersions to show current and supported CA certificates.
AWS CLI v1 系 https://github.com/aws/aws-cli/blob/develop/CHANGELOG.rst
1.29.79
〜中略〜
api-change:docdb: Update the input of CreateDBInstance and ModifyDBInstance to support setting CA Certificates. Update the output of DescribeDBInstance and DescribeDBEngineVersions to show current and supported CA certificates.
2023-08-31 追記
前回の SSL/TLS 証明書のローテーション作業の発生時( rds-ca-2015 から rds-ca-2019 への変更 )に AWS ブログ で紹介された データベースを再起動せずに証明書を入れ替えられる AWS CLI modify-db-instance サブコマンドのオプション --no-certificate-rotation-restart
を用いた更新の有用性は今回も同様です。(前回の CA 証明書のアップデートの際の弊社技術ブログはこちら)
まとめ
長らく Amazon RDS や Amazon Aurora を運用されておられる方にとっては、恒例行事となっているところもあるかと思われますが、来年8月のこととはいえお使いの DB インスタンスによってはダウンタイム発生の可能性もある更新となります。
入念なご準備とご計画を進めていただくことをおすすめいたします。
ではまた。
市野 和明 (記事一覧)
マネージドサービス部・テクニカルサポート課
お客様から寄せられたご質問や技術検証を通じて得られた気づきを投稿していきます。
情シスだった前職までの経験で、UI がコロコロ変わる AWS においては GUI で手順を残していると画面構成が変わってしまって後々まごつくことが多かった経験から、極力変わりにくい AWS CLI での記事が多めです。
X(Twitter):@kazzpapa3(AWS Community Builder)