自由気ままに書いちゃおう

好きなことをつらつらと・・・

【AWS】RDS/Auroraの認証機関/サーバー証明書の更新について

社内でAurora(PostgreSQL14)を利用しているのですが、証明機関の更新対応が必要だったので備忘です。

はじめに

AWSから以下のメールが届きました。

このメッセージを受け取っているのは、お客様のAWSアカウントに2024年8月22日に有効期限が切れるSSL/TLS証明書を使用するAmazon RDS または Amazon Aurora データベースインスタンスがAP-NORTHEAST-1リージョンに1つ以上あるためです。

対応

データベースクライアントからRDS/Auroraへの接続にSSL/TLSを利用しているかどうかによります。

[利用している場合]

クライアント側およびRDS/AUrora側の対応が必要です。

クライアント側の観点ではアプリケーションからの接続にSSL/TLSを利用しているかどうかになるので、担当者に確認する等が発生します。

RDS/Aurora側の観点では、CA認証機関を「rds-ca-2019」 から 「rds-ca-rsa2048-g1」に変更致します。

[利用していない場合]

RDS/Aurora側の対応のみであり、CA認証機関を「rds-ca-2019」 から 「rds-ca-rsa2048-g1」に変更致します。

今回の記事ではこちらをメインに取り扱います。(社内の検証用Auroraのため、SSL/TLS接続は利用してない)

調査1:CA認証機関の変更にどの認証機関が利用できるか

AWS公式ページ にも記載されてますが、利用中のデータベースとバージョンで利用可能な認証機関を調べます。

以下はAurora(PostgreSQL14.3)で利用可能なCA認証機関の一覧です。

※ AWSCLIバージョンが古いと出てこないパラメータがあるため、パラメータが出てこない場合にはAWSCLIバージョンを上げてみてください。

aws rds describe-db-engine-versions --engine-version 14.3 --engine aurora-postgresql --region ap-nort
heast-1
            "SupportsCertificateRotationWithoutRestart": true,
            "SupportedCACertificateIdentifiers": [
                "rds-ca-2019",
                "rds-ca-ecc384-g1",
                "rds-ca-rsa4096-g1",
                "rds-ca-rsa2048-g1"
            ],

この場合、4つ認証機関が使えます。

"rds-ca-2019", "rds-ca-ecc384-g1","rds-ca-rsa4096-g1","rds-ca-rsa2048-g1"

調査2:CA認証機関の変更時にDBインスタンスの再起動が必要かどうか

こちらは実は調査1のコマンド結果の以下の部分を見るとわかります。

"SupportsCertificateRotationWithoutRestart": true,

上記の通り、true の場合にはDBインスタンスの再起動は不要です。

CA認証機関の更新作業

上記調査結果から、DBインスタンスの再起動は不要であり、上記のAWS公式ページにも以下のように記載されているため、今回は「rds-ca-rsa2048-g1」に変更することにしました。

実際の更新作業はAWSマネージメントコンソールからであれば、対象のDBインスタンスを選択して認証局(rds-ca-rsa2048-g1)を選択するだけです。

※ 画像は、rds-ca-2019 になってます。。。

気になりごと1:他のCA認証機関に変更しないとどうなる?

Aurora(postgresql14)にて「rds-ca-2019」を他のCAに変更せずに使い続け「rds-ca-2019」の期限を迎えた場合、クライアント側での証明書の検証を実施しない場合であれば引き続き SSL 接続を利用可能です。

気になりごと2:自動的にCAアップデートされる?

強制アップデートは今のところ無さそう。

また、前回の証明書 「rds-ca-2015」 の失効による更新の際は強制でのアップグレードを実施していない模様。

aws.amazon.com

気になりごと3:「rds-ca-rsa2048-g1」への変更後のサーバー証明書はどうなる?

私が最初勘違いしていたのですが、今回の更新はCA認証機関です。

とはいえ、CA認証機関を更新するとサーバー証明書も自動的に変更されます。

つまり、CA 証明書を「rds-ca-2019」→「rds-ca-rsa2048-g1」に変更した段階で、DB インスタンス証明書(サーバー証明書)についても CA 証明書「rds-ca-rsa2048-g1」に紐づくものに変更されます。

CA 証明書は、証明書チェーンの最上位にあるルート CA (認証局) を識別する証明書であり、CA が DB インスタンスにインストールされるサーバー証明書に署名をすることで、当該 DB インスタンスは信頼できるサーバーとして識別されます。

そのため、今回の記事での詳細は割愛しましたが、クライアント側で利用するサーバー証明書も「rds-ca-rsa2048-g1」に対応したものに変更する必要があります。

気になりごと4: サーバー証明書の自動ローテーションについて

「rds-ca-rsa2048-g1」から署名されるサーバー証明書は期限が近づくと自動的にローテーションされます。

尚、サーバー証明書の有効期限は1年間です。どの程度期限に近づくと自動的にローテーションされるのかの情報は見つけられませんでした。

補足

今回は社内の事例というところになります。

実際に実施する際には検証等含め試していただければと思います。

本記事の情報を利用することによって生ずるいかなる損害に対しても一切責任を負いません。

以上です。