SSL/TLS 証明書のローテーション
Amazon RDS 認証局証明書 rds-ca-2019 は、2024 年 8 月に期限切れになりました。RDS DB インスタンスへの接続に証明書検証付きの Secure Sockets Layer (SSL) または Transport Layer Security (TLS) を使用しているか、使用する予定がある場合は、新しい CA 証明書 rds-ca-rsa2048-g1 の使用を検討してください。現在、証明書検証付きで SSL/TLS を使用していない場合でも、CA 証明書の有効期限が切れている可能性があり、証明書検証付きで SSL/TLS を使用して RDS データベースに接続する予定がある場合は、新しい CA 証明書に更新する必要があります。
Amazon RDS では、AWS セキュリティのベストプラクティスとして、新しい CA 証明書を提供しています。新しい証明書およびサポートしている AWS リージョンに関する詳細は、「SSL/TLS を使用した DB クラスターへの接続の暗号化」を参照してください。
データベースの CA 証明書を更新するには、次の方法を使用します。
新しい CA 証明書を使用するように DB インスタンスを更新する前に、RDS データベースに接続するクライアントまたはアプリケーションを必ず更新します。
証明書を更新する際の考慮事項
証明書を更新する前に、次の状況を考慮してください。
-
Amazon RDS Proxy および Aurora Serverless v1 は AWS Certificate Manager (ACM) の証明書を使用します。RDS Proxy を使用している場合は、SSL/TLS 証明書を更新するときに、RDS Proxy 接続を使用するアプリケーションを更新する必要はありません。詳細については、「RDS Proxy での TLS/SSL の使用」を参照してください。
-
Aurora Serverless v1 を使用している場合は、Amazon RDS 証明書をダウンロードする必要はありません。詳細については、「Aurora Serverless v1 での TLS/SSL の使用」を参照してください。
-
2020 年 7 月 28 日より前に作成された、または rds-ca-2019 証明書にアップデートされた DB インスタンスで Go バージョン 1.15 アプリケーションを使用している場合は、証明書を再度更新する必要があります。エンジンに応じて、証明書を rds-ca-rsa2048-g1、rds-ca-rsa4096-g1、または rds-ca-ecc384-g1 に更新してください。
新しい CA 証明書識別子を使用して、使用します。
describe-db-engine-versions
コマンドを使用すると、特定の DB エンジンと DB エンジンのバージョンで使用できる CA を検索できます。2020 年 7 月 28 日以降にデータベースを作成したか、その証明書を更新した場合、必要なアクションはありません。詳細については、Go GitHub issue #39568
を参照してください。
DB インスタンスの変更による CA 証明書の更新
次の例では、CA 証明書を RDS CA-2019 から rds-ca-rsa2048-g1 に更新します。別の証明書を選択できます。詳細については、認証局 をご参照ください。
アプリケーションの信頼ストアを更新して、CA 証明書の更新に関連するダウンタイムを短縮します。CA 証明書のローテーションに関連する再起動の詳細については、「サーバー証明書の自動ローテーション」を参照してください。
DB インスタンスを変更して CA 証明書を更新するには
-
「SSL/TLS を使用した DB クラスターへの接続の暗号化」の説明に従って、新しい SSL/TLS 証明書をダウンロードします。
-
新しい SSL/TLS 証明書を使用するようにアプリケーションを更新します。
新しい SSL/TLS 証明書のアプリケーションを更新する方法は、特定のアプリケーションにより異なります。アプリケーション開発者と協力して、アプリケーションの SSL/TLS 証明書を更新します。
SSL/TLS 接続の確認および各 DB エンジン用アプリケーションの更新については、以下のトピックを参照してください。
Linux オペレーティングシステムの信頼ストアを更新するサンプルスクリプトについては、「証明書を信頼ストアにインポートするためのサンプルスクリプト」を参照してください。
注記
証明書バンドルには古い CA と新しい CA の両方の証明書が含まれます。そのため、アプリケーションを安全に更新し、移行期間に接続を維持することができます。AWS Database Migration Service を使用してデータベースを DB クラスターに移行する場合は、移行中の接続を確保するために証明書バンドルを使用することをお勧めします。
-
DB インスタンスを変更して、CA を rds-ca-2019 から rds-ca-rsa2048-g1 に変更します。CA 証明書を更新するためにデータベースの再起動が必要かどうかを確認するには、describe-db-engine-versions コマンドを使用して、
SupportsCertificateRotationWithoutRestart
フラグをチェックします。注記
CA 証明書を更新するように変更した後に Babelfish クラスターを再起動します。
重要
証明書の有効期限が切れた後に接続の問題が発生した場合は、コンソールで [すぐに適用] を指定するか、
--apply-immediately
を使用して AWS CLI オプションを指定します。デフォルトで、このオペレーションは次のメンテナンスウィンドウの間に実行するようスケジュールされています。デフォルト RDS CA と異なる cluster CA のオーバーライドを設定するには、modify-certificates CLI コマンドを使用します。
AWS Management Console または AWS CLI を使用して、DB インスタンスの CA 証明書を rds-ca-2019 から rds-ca-rsa2048-g1 に変更できます。
メンテナンスの適用による CA 証明書の更新
メンテナンスを適用して CA 証明書を更新するには、次のステップを実行します。
サーバー証明書の自動ローテーション
ルート CA がサーバー証明書の自動ローテーションをサポートしている場合、RDS は DB サーバー証明書のローテーションを自動的に処理します。RDS はこの自動ローテーションに同じルート CA を使用するため、新しい CA バンドルをダウンロードする必要はありません。「認証局」を参照してください。
DB サーバー証明書のローテーションと有効期間は DB エンジンによって異なります。
-
DB エンジンが再起動なしのローテーションをサポートしている場合、ユーザーによるアクションがなくても、RDS は DB サーバー証明書を自動的にローテーションします。RDS は、DB サーバー証明書の半減期になった時点で、希望するメンテナンス期間に DB サーバー証明書のローテーションを試みます。新しい DB サーバー証明書は、12 か月間有効です。
-
DB エンジンが再起動なしのローテーションをサポートしていない場合、RDS は DB サーバー証明書の有効期限が切れる少なくとも 6 か月前にメンテナンスイベントについて通知します。新しい DB サーバー証明書は、36 か月間有効です。
describe-db-engine-versions コマンドを使用して、SupportsCertificateRotationWithoutRestart
フラグを点検することで、再起動なしで DB エンジンバージョンが証明書のローテーションをサポートするかどうかを特定します。詳細については、「データベースに CA を設定する」を参照してください。
証明書を信頼ストアにインポートするためのサンプルスクリプト
次のサンプルシェルスクリプトでは、証明書バンドルを信頼ストア内にインポートします。
各サンプルシェルスクリプトでは、Java 開発キット (JDK) の一部である keytool が使用されます。JDK のインストールの詳細については、「JDK インストールガイド
Amazon RDS での SSL の使用に関するベストプラクティスの詳細については、Amazon RDS for Oracle への SSL 接続を成功させるためのベストプラクティス