Amazon Web Services ブログ

Amazon RDS のお客様: 2020 年 3 月 5 日までに SSL/TLS 証明書を更新してください

この投稿は2019年12月20日に発行され、2020年2月3日に更新されました。以下の新しい日付と更新されたタイムラインをご覧ください。

Amazon RDSAmazon Aurora をご利用のお客様の場合、AWS から SSL/TLS 証明書のローテーションについてお知らせメールを受信されたことでしょう。RDS DB インスタンスの SSL/TLS 証明書は、RDS の標準的なメンテナンスとセキュリティのベストプラクティスの一環として、2020 年 3 月 5 日に有効期限が切れます。証明書を検証しSSL/TLSを使用するアプリケーションが影響を受けることを避けるために、2020年2月28日までに更新を完了することを強くお勧めします。このブログ記事では、今後の有効期限について詳述し、影響を受けるかどうかを確認する方法を説明します。そしてデータベースインスタンスへの接続を維持するために何をすべきかをお教えします。

timeline

現在の状況

RDS の標準的なメンテナンスとセキュリティのベストプラクティスの一環として、RDS DB インスタンスと Aurora DB クラスターの SSL/TLS 証明書は有効期限が切れ、5 年ごとに置き換えられます。現在の証明書は、2020 年 3 月 5 日に期限切れになります。 クライアントとデータベースサーバーの両方で SSL/TLS 証明書を更新しない場合、証明書を検証して SSL/TLS により RDS DB インスタンスまたは Aurora クラスターに接続するデータベースクライアントとアプリケーションは、2020 年 3 月 5 日から接続できなくなります。Amazon RDS インスタンスまたは Amazon Aurora データベースの中断を避けるため、この変更を 2020 年 2 月 28日までに完了することを強くお勧めします。その日以降、お客様の RDS DB インスタンスまたは Aurora クラスターに新しい証明書のインストールを開始するからです。

また、2020 年 1 月 14 日以降に作成された新しい RDS DB インスタンスと Aurora DB クラスターには、新しい証明書が含まれます。その時点より前に作成されたすべての RDS DB インスタンスと Aurora DB クラスターには、古い証明書が含まれます。新しい DB インスタンスまたは Aurora クラスターを手動で元の証明書に一時的に戻したい場合は、AWS マネジメントコンソール、RDS API、または AWS CLI から行うことができます。ただし、上記のように、これらおよび他のすべての DB インスタンスと DB クラスターは更新して、2020 年 3月 5 日までに新しい証明書を使用する必要があります。2020 年 1 月 14 日より前に作成された DB インスタンスと DB クラスターは古い証明書を使用します。

アプリケーションが SSL/TLS 経由で RDS データベースに接続するかどうかを知るにはどうすればよいですか?

以下に、アプリケーションが SSL/TLS を使用してデータベースに接続しているかどうか、およびクライアントが証明書の検証を必要としているかどうかを判断するのに役立つドキュメントへのリンク、およびアプリケーショントラストストアの更新方法を説明したリンクを掲載します。説明には最も一般的なシナリオを含めましたが、新しい SSL/TLS 証明書のアプリケーションを更新する方法はさまざまあり、お使いのアプリケーションに適用できない場合があります。

また、すべてのRDSエンジンは、データベースへの接続がSSL /TLSを使用しているかどうかを確認する方法を提供していますが、接続情報の取得方法の違いに気をつける必要があります。一部のRDSエンジンでは、これらのデータを表示するために特定の設定や権限を持つユーザーが必要です。詳細は以下の各エンジンのドキュメントをご参照ください。次に、接続がSSL / TLSを使用しているかどうかについて各RDSエンジンが提供するデータは、現在のアクティブな接続のみが表示されます。 SSL / TLSを使用して断続的に接続するアプリケーションが多数ある場合は、正確な接続情報を確認するために、長期間にわたってこの情報を複数回キャプチャする必要があります。最後に、最も重要なこととして、データベースエンジン自体から、接続の前提条件としてアプリケーションで証明書の検証が必要かどうかを判断する簡単な方法はありません。唯一のオプションは、アプリケーションのソースコードまたは設定ファイルを確認することです。エンジン固有のドキュメントでは、一般的なデータベース接続インターフェイスの確認方法について概説していますが、特定のアプリケーション毎の確認は、アプリケーション開発者と協力して、証明書検証を使用するかどうか、およびクライアントアプリケーションのSSL / TLS証明書を更新する正しい方法を決定することを強くお勧めします。

Amazon RDS の場合:

Amazon Aurora の場合:

RDS データベースが影響を受けているかどうかを知るにはどうしたらよいですか?

Aurora MySQL、Aurora PostgreSQL、MySQL、MariaDB、SQL Server、Oracle または PostgreSQL の RDS に接続し、証明書の検証に SSL/TLS を使用するアプリケーションがある場合、アプリケーションはこの変更の影響を受けます。

アプリケーションが SSL/TLS を使用して RDS データベースインスタンスに接続しない場合、またはアプリケーションがサーバー証明書の検証を必要としない場合、この変更は接続に影響しません。

接続を維持するには何をする必要がありますか?

接続を維持するには、2020 年 3 月 5 日までに、新規公開された CA 証明書で RDS データベースへの接続に使用する SSL/TLS 証明書トラストストアを更新する必要があります。次の手順に従って、この更新を行ってください。

  1. SSL を使用して DB インスタンスへの接続を暗号化するから新しい SSL/TLS 証明書をダウンロードします。
  2. データベースクライアントアプリケーションを更新して、新しい証明書バンドルを使用します。証明書バンドルには古い CA と新しい CA の両方の証明書が含まれているため、移行期間中、アプリケーションを安全にアップグレードし、接続を維持できます。
  3. RDS コンソールまたは modify-db-instance CLI コマンドを使用して、認証局 (CA) を rds-ca-2019 に変更します。 重要: この操作をスケジュールするときは、事前にクライアント側のトラストストアを更新したことを確認してください。
    • 次のメンテナンスウィンドウで実行するには:
      aws rds modify-db-instance --db-instance-identifier <db_instance_identifier> --ca-certificate-identifier rds-ca-2019
    • すぐに実行するには:
      aws rds modify-db-instance --db-instance-identifier <db_instance_identifier> --ca-certificate-identifier rds-ca-2019 --apply-immediately

詳細な手順については、次をご覧ください。

2020 年 2 月 28 日までに 3 つの手順をすべて完了することをお勧めします。証明書を更新する最終日である 2020 年 3 月 5 日までに 3 つのステップすべてを完了できない場合、クライアントまたはアプリケーションは SSL または TLS を使用してデータベースインスタンスに接続できなくなる可能性があります。

アップデートを完了するにはどのような手順が必要ですか?

CA 証明書のローテーションの完了は、2 段階のプロセスです。最初に、クライアントアプリケーションまたはサービスを更新する必要があります。そうすることで、新しい CA 証明書と古い CA 証明書の両方を含む結合バンドルを使用して、トラストストアに最新の CA 証明書を含めます。これが完了したら、RDS DB インスタンスを更新して、新しい CA 証明書にローテーションする必要があります。手順は以下のとおりです。

本番環境でこれらの手順を行う前に、テストまたはステージング環境で実行することを強くお勧めします。

SSL/TLS を使用していません。CA 証明書をローテーションする必要はありますか?

SSL/TLSを使用してないことが100%確実である場合は、2020年3月5日の期限までにCA証明書を更新する必要はありません。 SSL/TLSを使用していないことが確実でない場合は、以下のドキュメントを参照して、アプリケーションがSSL / TLSを使用して接続するかどうかを確認してください。

次に、クライアントアプリケーションとデータベース証明書の更新を完了して、中断の潜在的なリスクを回避します。

データベースセキュリティのベストプラクティスは、SSL/TLS接続を使用し、接続認証プロセスの一部として証明書の検証を要求することです。

SSL/TLS を使用していません。データベースを再起動せずに証明書をローテーションできますか?

データベースを再起動したくない場合は、modify-db-instance CLI コマンドに新しい CLI オプションを使用できます (--no-certificate-rotation- restart)。これにより、特にデータベースホストで新しい証明書をローテーションおよびステージングして再起動を回避することができます。ただし、データベースが新しい証明書を取得するのは、計画的または計画外のデータベースの再起動が発生した場合のみです。

RDS for Oracleデータベースの場合、再起動は不要です。

SSL/TLS を使用する場合、証明書をローテーションするにはデータベースを再起動する必要がありますか?

はい。データベースでCA証明書の更新を実行すると、再起動されます。 SSL/TLSを使用してデータベースに接続し、証明書の検証が必要なお客様は、2020年3月5日までに再起動を行う必要があります。必要に応じてテスト、アプリケーションが使用している証明書の変更、およびロールバックの時間を確保するために、2020年2月28日までに行いことを強くお勧めします。次のメンテナンスウィンドウに作業をスケジュールするか、すぐに実行するかを選択できます。 RDSコンソール、RDS API、またはAWS CLIを使用します。

上記の唯一の例外は、Oracleデータベースの場合です。 RDS for Oracleを使用している場合、データベースリスナーのみが再起動され、データベース自体は再起動されません。既存のデータベース接続は影響を受けませんが、リスナーを再起動すると、新しい接続では短時間エラーが表示されます。

影響を受ける RDS データベースエンジンは何ですか?

Amazon Aurora PostgreSQL、Amazon Aurora MySQL、Amazon RDS for PostgreSQL、Amazon RDS for MySQL、Amazon RDS for MariaDB、Amazon RDS for Oracle、Amazon RDS for SQL Server です。

影響を受けない RDS データベースエンジンはどれですか?

Aurora Serverless DB クラスターは、AWS Certificate Manager で証明書のローテーションを管理するため、影響を受けません。

このローテーションから除外される RDS リージョンはどこですか?

中東 (バーレーン) リージョン、アジアパシフィック (香港) リージョン、中国 (寧夏) および GovCloud はこのローテーションから除外されます。

影響を受けるアプリケーションは何ですか?

SSL/TLS を使用して RDS データベースに接続し、さらにアプリケーションのトラストストア (またはハードコーディングされたクライアント証明書) に対するサーバー証明書の検証も必要とするアプリケーションは、この変更の影響を受けます。

2020 年 3 月 5 日までに変更を行わないとどうなりますか?

2020 年 3 月 5 日までに変更を行わないと、SSL/TLS 経由で接続して検証するアプリケーションは、CA 証明書が RDS DB インスタンスと通信できなくなります。

期限を 2020 年 3 月 5 日以降に延長できますか?

期限は 2020 年 3 月 5 日を超えて延長できません。

マルチAZ構成を利用しています。スタンバイDBインスタンスも新しい証明書に更新されますか?

はい、マルチAZ配置の場合、スタンバイDBインスタンスは自動的にプライマリDBインスタンスから新しいCA証明書を取得します。

マルチ AZ 設定の Amazon RDS DB インスタンスのフェイルオーバーにより CA 証明書が変更されますか?

いいえ。Amazon RDS DB インスタンスは同じ CA 証明書に残ります。

どの RDS DB インスタンスが古い証明書を使用しているかを知るにはどうすればよいですか?

RDS コンソールの左側のナビゲーションパネルに、証明書の更新タブがあります。タブを選択して、影響を受ける DB インスタンスの一時ページを表示します。適切な AWS リージョンを選択した場合、このページには影響を受ける DB インスタンスのみが表示されます (影響を受ける DB インスタンスのない AWS リージョンに切り替えると、テーブルは空になります)。

AWS API/CLI: Describe DB Instances API には、文字列形式の CACertificateIdentifier というパラメータがあります。すべての新しい CA 証明書は「rds-ca-2019」として識別されます。 「rds-ca-2019」 以外のすべての DB インスタンスを確認して、新しい証明書を使用していない DB インスタンスを確認します。

SSL/TLS を使用して Amazon RDS DB インスタンスまたは Amazon Aurora DB クラスターに現在接続していませんが、将来的に計画している場合、どうすればよいですか?

将来 SSL/TLS を使用する予定がある場合は、できるだけ早く CA 証明書を更新することをお勧めします。

Aurora DB クラスターに 2 つのインスタンスがあり、DB クラスターに 3 番目のインスタンスを作成するとどうなりますか?

  • インスタンスが証明書「rds-ca-2019」で実行されている場合、新しいインスタンスは「rds-ca-2019」になります。
  • インスタンスが証明書「rds-ca-2015」で実行されている場合、新しいインスタンスは「rds-ca-2015」になります。
  • インスタンスが証明書「rds-ca-2015」と「rds-ca-2019」の組み合わせで実行されている場合、新しいインスタンスは「rds-ca- 2019 」になります。

更新されたサーバー証明書の有効期限はいつですか?

更新されたサーバー証明書の有効期限は 2024 年 8 月 22 日です。

CloudFormation は新しい証明書をサポートしていますか?

はい。CloudFormation のサポートを 2019 年 12 月 20 日に追加しました。変更するには、CFNテンプレートでCACertificateIdentifier プロパティを使用します。–文字列を受け入れます。 プロパティの完全な仕様を以下に示します。

"CACertificateIdentifier": {
          "Documentation": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-cacertificateidentifier",
          "PrimitiveType": "String",
          "Required": false,
          "UpdateType": "Mutable"

新しいサーバー証明書を適用した場合、古い証明書に戻すことはできますか?

はい。RDS コンソールまたは CLI を使用して、2020年 3月 5日まで rds-ca-2015 証明書に戻すことができます。

aws rds modify-db-instance --db-instance-identifier mydbinstance --ca-certificate-identifier rds-ca-2015 --no-apply-immediately

証明書を元に戻す詳細な手順については、ドキュメントを参照してください。

スナップショットまたは特定時点から復元する場合、新しい証明書を持っていますか?

2020 年 1 月 14 日以降にスナップショットを復元する場合、新しい CA 証明書で新しいインスタンスが作成されます。

リードレプリカが存在する場合、追加で行う手順はありますか?

CA証明書の更新は、各リードレプリカで実行する必要があります。これらの更新は、特定の順序でプライマリDBインスタンスとリードレプリカDBインスタンス間で行われる可能性があります。

質問や問題がある場合はどうすればよいですか?

質問や問題がある場合は、AWS サポートまたはテクニカルアカウントマネージャー (TAM) までお問い合わせください。

 


著者について

 

Nitesh Mehta はアマゾン ウェブ サービスのシニアプロダクトマネージャーです。