SSL/TLS を使用した DB インスタンスへの接続の暗号化 - Amazon Relational Database Service

SSL/TLS を使用した DB インスタンスへの接続の暗号化

アプリケーションで Secure Socket Layer (SSL) または Transport Layer Security (TLS) を使用することで、MariaDB、Microsoft SQL Server、MySQL、Oracle、または PostgreSQL を実行する DB インスタンスへの接続を暗号化できます。

SSL/TLS 接続は、クライアントと DB インスタンスの間を移動するデータを暗号化することによって、1 つのセキュリティ層を提供します。オプションで、DB インスタンスにインストールされたサーバー証明書を検証することで、SSL/TLS 接続でサーバー ID 検証を実行できます。サーバーの ID 検証を必須にするには、次の一般的な手順に従ってください。

  1. データベースの DB サーバー証明書に署名する認証局 (CA) を選択します。認証局の詳細については、「認証局」を参照してください。

  2. データベースに接続するときに使用する証明書バンドルをダウンロードします。証明書バンドルをダウンロードするには、 すべての AWS リージョン の証明書バンドルそして特定の AWS リージョン の証明書バンドルを参照してください。

    注記

    証明書はすべて、SSL/TLS 接続を使用したダウンロードでのみ使用可能です。

  3. DB エンジンのプロセスで、SSL/TLS Connect を実装するプロセスで、データベースに接続します。各 DB エンジンには SSL/TLS を実装する独自のプロセスがあります。ご使用のデータベースの SSL/TLS の実装方法については、ご使用の DB エンジンに対応する以下のリンクを使用してください。

認証局

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


                            認証局の概要

Amazon RDS には DB インスタンスの DB サーバー証明書に署名するための、以下の CA が用意されています。

認証局 (CA) 説明

rds-ca-2019

RSA 2048 プライベートキーアルゴリズムと SHA256 署名アルゴリズムを備えた認証局を使用します。この CA は 2024 年に有効期限が切れ、サーバー証明書の自動ローテーションはサポートされていません。この CA を使用して同じ標準を維持したい場合は、rds-ca-rsa2048-g1 CA に切り替えることをお勧めします。

rds-ca-rsa2048-g1

大半の AWS リージョン では、RSA 2048 プライベートキーアルゴリズムと SHA256 署名アルゴリズムを備えた認証局を使用します。

AWS GovCloud (US) Regions では、CA が RSA 2048 プライベートキーアルゴリズムと SHA384 署名アルゴリズムを備えた認証局を使用します。

この CA は rds-ca-2019 CA よりも長期間有効です。この CA はサーバー証明書の自動ローテーションをサポートします。

rds-ca-rsa4096-g1

RSA 4096 プライベートキーアルゴリズムと SHA384 署名アルゴリズムを備えた認証局を使用します。この CA はサーバー証明書の自動ローテーションをサポートします。

rds-ca-ecc384-g1

ECC 384 プライベートキーアルゴリズムと SHA384 署名アルゴリズムを備えた認証局を使用します。この CA はサーバー証明書の自動ローテーションをサポートします。

注記

AWS CLI を使用している場合は、describe-certificates を使用して、上記の認証局の有効性を確認できます。

これらの CA 証明書は、地域およびグローバル証明書バンドルに含まれています。rds-ca-rsa2048-g1、rds-ca-rsa4096-g1、または rds-ca-ecc384-g1 CA をデータベースで使用すると、RDS はデータベース上で DB サーバー証明書を管理します。RDS は、DB サーバーの証明書の有効期限が切れる前に証明書のローテーションを行います。

データベースに CA を設定する

データベースの CA は、以下のタスクの実行時に設定できます。

注記

modify-certificates コマンドを使用して、AWS アカウント のデフォルト CA をオーバーライドできます。

使用可能な CA は、DB エンジンと DB エンジンのバージョンによって異なります。AWS Management Console を使用するとき、次の図に示すように、認証局の設定を使用して CA を選択できます。


                        認証局のオプション

コンソールには、DB エンジンおよび DB エンジンのバージョンで利用可能な CA のみが表示されます。AWS CLI を使用しているとき、create-db-instance コマンドまたは modify-db-instance コマンドを使用して DB インスタンスの CA を設定できます。

AWS CLI を使用しているとき、describe-certificates コマンドを使用して、アカウントで使用可能な CA を確認できます。このコマンドでは、出力内の ValidTill に各 CA の有効期限も表示されます。describe-db-engine-versions コマンドを使用すると、特定の DB エンジンと DB エンジンのバージョンで使用できる CA を検索できます。

次の例は、PostgreSQL DB エンジンのバージョンのデフォルト RDS で使用できる CA を示しています。

aws rds describe-db-engine-versions --default-only --engine postgres

以下のような出力が生成されます。使用可能な CA は SupportedCACertificateIdentifiers に記載されます。出力には、DB エンジンのバージョンで、SupportsCertificateRotationWithoutRestart の再起動なしで証明書のローテーションがサポートされるかどうかも表示されます。

{ "DBEngineVersions": [ { "Engine": "postgres", "MajorEngineVersion": "13", "EngineVersion": "13.4", "DBParameterGroupFamily": "postgres13", "DBEngineDescription": "PostgreSQL", "DBEngineVersionDescription": "PostgreSQL 13.4-R1", "ValidUpgradeTarget": [], "SupportsLogExportsToCloudwatchLogs": false, "SupportsReadReplica": true, "SupportedFeatureNames": [ "Lambda" ], "Status": "available", "SupportsParallelQuery": false, "SupportsGlobalDatabases": false, "SupportsBabelfish": false, "SupportsCertificateRotationWithoutRestart": true, "SupportedCACertificateIdentifiers": [ "rds-ca-2019", "rds-ca-rsa2048-g1", "rds-ca-ecc384-g1", "rds-ca-rsa4096-g1" ] } ] }

DB サーバーの証明書の有効性

DB サーバー証明書の有効性は、DB エンジンのバージョンと、DB エンジンのバージョンによって異なります。DB エンジンのバージョンで、DB エンジンのバージョンで、DB サーバーのローテーションがサポートされる場合、DB サーバーの証明書の有効期間は 1 年です。それ以外の場合、有効期間は 3 年間です。

DB サーバー証明書ローテーションの詳細については、「サーバー証明書の自動ローテーション」を参照してください。

データベースの CA を表示

DB インスタンスの CA に関する詳細を確認するには、次の画像のように、コンソール内の [Connectivity & security] (接続とセキュリティ) タブを表示します。


                        認証局の詳細

AWS CLI を使用している場合は、describe-db-instances コマンドを使用して DB インスタンスの CA の詳細を表示できます。

CA 証明書バンドルの内容を確認するには、次のコマンドを使用します。

keytool -printcert -v -file global-bundle.pem

すべての AWS リージョン の証明書バンドル

すべての AWS リージョン の中間証明書とルート証明書の両方を含む証明書バンドルは、https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem からダウンロードできます。

アプリケーションが Microsoft Windows 上にあり、PKCS7 ファイルが必要な場合は、PKCS7 証明書バンドルをダウンロードできます。このバンドルには、https://truststore.pki.rds.amazonaws.com/global/global-bundle.p7b にある中間証明書とルート証明書の両方が含まれています。

注記

Amazon RDS Proxy は AWS Certificate Manager (ACM) の証明書を使用します。RDS Proxy を使用している場合は、Amazon RDS 証明書をダウンロードしたり、RDS Proxy 接続を使用するアプリケーションを更新したりする必要はありません。RDS Proxy で TLS/SSL を使用する方法の詳細については、「RDS Proxy での TLS/SSL の使用」を参照してください。

特定の AWS リージョン の証明書バンドル

AWS リージョン の中間証明書とルート証明書の両方を含む証明書バンドルを取得するには、次の表の AWS リージョン のリンクからダウンロードします。

AWS リージョン 証明書バンドル (PEM) 証明書バンドル (PKCS7)
米国東部 (バージニア北部) us-east-1-bundle.pem us-east-1-bundle.p7b
米国東部 (オハイオ) us-east-2-bundle.pem us-east-2-bundle.p7b
米国西部 (北カリフォルニア) us-west-1-bundle.pem us-west-1-bundle.p7b
米国西部 (オレゴン) us-west-2-bundle.pem us-west-2-bundle.p7b
アフリカ (ケープタウン) af-south-1-bundle.pem af-south-1-bundle.p7b
アジアパシフィック (香港) ap-east-1-bundle.pem ap-east-1-bundle.p7b
アジアパシフィック (ハイデラバード) ap-south-2-bundle.pem ap-south-2-bundle.p7b
アジアパシフィック (ジャカルタ) ap-southeast-3-bundle.pem ap-southeast-3-bundle.p7b
アジアパシフィック (メルボルン) ap-southeast-4-bundle.pem ap-southeast-4-bundle.p7b
アジアパシフィック (ムンバイ) ap-south-1-bundle.pem ap-south-1-bundle.p7b
アジアパシフィック (大阪) ap-northeast-3-bundle.pem ap-northeast-3-bundle.p7b
アジアパシフィック (東京) ap-northeast-1-bundle.pem ap-northeast-1-bundle.p7b
アジアパシフィック (ソウル) ap-northeast-2-bundle.pem ap-northeast-2-bundle.p7b
アジアパシフィック (シンガポール) ap-southeast-1-bundle.pem ap-southeast-1-bundle.p7b
アジアパシフィック (シドニー) ap-southeast-2-bundle.pem ap-southeast-2-bundle.p7b
カナダ (中部) ca-central-1-bundle.pem ca-central-1-bundle.p7b
欧州 (フランクフルト) eu-central-1-bundle.pem eu-central-1-bundle.p7b
欧州 (アイルランド) eu-west-1-bundle.pem eu-west-1-bundle.p7b
欧州 (ロンドン) eu-west-2-bundle.pem eu-west-2-bundle.p7b
ヨーロッパ (ミラノ) eu-south-1-bundle.pem eu-south-1-bundle.p7b
欧州 (パリ) eu-west-3-bundle.pem eu-west-3-bundle.p7b
欧州 (スペイン) eu-south-2-bundle.pem eu-south-2-bundle.p7b
欧州 (ストックホルム) eu-north-1-bundle.pem eu-north-1-bundle.p7b
欧州 (チューリッヒ) eu-central-2-bundle.pem eu-central-2-bundle.p7b
イスラエル (テルアビブ) il-central-1-bundle.pem il-central-1-bundle.p7b
中東 (バーレーン) me-south-1-bundle.pem me-south-1-bundle.p7b
中東 (アラブ首長国連邦) me-central-1-bundle.pem me-central-1-bundle.p7b
南米 (サンパウロ) sa-east-1-bundle.pem sa-east-1-bundle.p7b

AWS GovCloud (US) 証明書

AWS GovCloud (US) Region の中間証明書とルート証明書の両方を含む証明書バンドルは、https://truststore.pki.us-gov-west-1.rds.amazonaws.com/global/global-bundle.pem からダウンロードできます。

アプリケーションが Microsoft Windows 上にあり、PKCS7 ファイルが必要な場合は、PKCS7 証明書バンドルをダウンロードできます。このバンドルには、https://truststore.pki.us-gov-west-1.rds.amazonaws.com/global/global-bundle.p7b にある中間証明書とルート証明書の両方が含まれています。

AWS GovCloud (US) Region の中間証明書とルート証明書の両方を含む証明書バンドルを取得するには、次の表の AWS GovCloud (US) Region のリンクからダウンロードします。

AWS GovCloud (US) Region 証明書バンドル (PEM) 証明書バンドル (PKCS7)
AWS GovCloud (米国東部) us-gov-east-1-bundle.pem us-gov-east-1-bundle.p7b
AWS GovCloud (米国西部) us-gov-west-1-bundle.pem us-gov-west-1-bundle.p7b