こんにちは!コンサル部のinomaso(@inomasosan)です。
先日、構築したばかりのRDSに対して証明書更新の通知を見つけました。
これまでRDS構築時に認証機関を意識していなかったのですが、デフォルトの証明書(rds-ca-2019)だと2024/8に期限切れとなるため、注意喚起のブログとなります。
ある朝「証明書の更新」の通知を見つけてしまった
ある朝、RDSを確認しようとコンソールを開いたところ、サイドバーに証明書の更新が生えていることに気がつきました。
詳細を確認してみると、最近構築したはずのRDSの証明書が2024/8に有効期限が切れるため、更新が必要と表示されていました。
蘇る過去の証明書更新
2020年にRDSの証明書更新で苦労した方は多かったのではないでしょうか。
というのも証明書によるSSL/TLS通信を使用している・いないに関わらず更新が必須だったからです。
証明書の更新は短時間のダウンタイムが発生するため、当時は社内のシステム担当者への事前調整に奔走していました。
運用者の目線としては、回避可能なメンテナンスは事前に対応しておきたいところです。
認証機関に有効期限が40年と100年の認証局が利用可能
2023/1のアップデートで、rds-ca-2019 (デフォルト) 以外の認証局が選択可能になりました。
詳細は以下のブログを確認して頂きたいのですが、従来のシステムライフサイクルが約5年に対して、それを大幅に超える有効期限として40年と100年の認証局が用意されました。
アップデートで追加された認証局を利用するDBインスタンス証明書は、有効期限が切れる前に自動ローテーションすることで長期的な対応を可能としているようです。
2023/8の時点でrds-ca-2019 (デフォルト)を選択する理由は基本的には無い認識です。
RDSの新規構築時はrds-ca-rsa2048-g1、rds-ca-rsa4096-g1、rds-ca-ecc384-g1のいずれかを選択した方が良いでしょう。
DBエンジン毎に認証局やローテーション時の挙動が異なる
DBエンジンによって、使用可能な認証局が制限があったり、証明書のローテーションで再起動が必要な場合があります。
describe-db-engine-versions
コマンドにて、以下の項目から確認することができます。
- 使用可能なCA一覧:
SupportedCACertificateIdentifiers
- 証明書のローテーション時の再起動有無:
SupportsCertificateRotationWithoutRestart
例えばOracle Standard Edition Twoのデフォルト(最新)エンジンバージョンについては、以下のコマンドで確認できます。
コマンド
aws rds describe-db-engine-versions --default-only --engine oracle-se2
結果
{
"DBEngineVersions": [
{
"Engine": "oracle-se2",
"EngineVersion": "19.0.0.0.ru-2023-07.rur-2023-07.r1",
"DBParameterGroupFamily": "oracle-se2-19",
"DBEngineDescription": "Oracle Database Standard Edition Two",
"DBEngineVersionDescription": "Oracle 19.0.0.0.ru-2023-07.rur-2023-07.r1",
"DefaultCharacterSet": {
"CharacterSetName": "AL32UTF8",
"CharacterSetDescription": "Unicode 5.0 UTF-8 Universal character set"
},
"ValidUpgradeTarget": [
{
"Engine": "oracle-se2-cdb",
"EngineVersion": "19.0.0.0.ru-2023-07.rur-2023-07.r1",
"Description": "Oracle 19.0.0.0.ru-2023-07.rur-2023-07.r1",
"AutoUpgrade": false,
"IsMajorVersionUpgrade": false
}
],
"ExportableLogTypes": [
"alert",
"audit",
"listener",
"oemagent",
"trace"
],
"SupportsLogExportsToCloudwatchLogs": true,
"SupportsReadReplica": false,
"SupportedFeatureNames": [
"EFS_INTEGRATION",
"S3_INTEGRATION"
],
"Status": "available",
"SupportsParallelQuery": false,
"SupportsGlobalDatabases": false,
"MajorEngineVersion": "19",
"SupportsBabelfish": false,
"SupportsCertificateRotationWithoutRestart": true,
"SupportedCACertificateIdentifiers": [
"rds-ca-2019",
"rds-ca-rsa4096-g1",
"rds-ca-rsa2048-g1"
],
"SupportsLocalWriteForwarding": false
}
]
}
まとめ
RDSに自動ローテーションに対応した認証局が追加されたので、構築時はそちらの認証局を選ぶようにしましょう。
この記事が、どなたかのお役に立てば幸いです。それでは!