SSL/TLS を使用した DB インスタンスまたはクラスターへの接続の暗号化
アプリケーションで Secure Socket Layer (SSL) または Transport Layer Security (TLS) を使用することで、Db2、MariaDB、Microsoft SQL Server、MySQL、Oracle、または PostgreSQL を実行するデータベースへの接続を暗号化できます。
SSL/TLS 接続は、クライアントと DB インスタンスまたはクラスターの間を移動するデータを暗号化することによって、1 つのセキュリティ層を提供します。オプションで、データベースにインストールされたサーバー証明書を検証することで、SSL/TLS 接続でサーバー ID 検証を実行できます。サーバーの ID 検証を必須にするには、次の一般的な手順に従ってください。
-
データベースの DB サーバー証明書に署名する認証局 (CA) を選択します。認証局の詳細については、「認証局」を参照してください。
-
データベースに接続するときに使用する証明書バンドルをダウンロードします。証明書バンドルをダウンロードするには、 AWS リージョン による証明書バンドル. を参照してください。
注記
証明書はすべて、SSL/TLS 接続を使用したダウンロードでのみ使用可能です。
-
DB エンジンのプロセスで、SSL/TLS Connect を実装するプロセスで、データベースに接続します。各 DB エンジンには SSL/TLS を実装する独自のプロセスがあります。ご使用のデータベースの SSL/TLS の実装方法については、ご使用の DB エンジンに対応する以下のリンクを使用してください。
認証局
認証局 (CA) は、証明書チェーンの最上位にあるルート CA を識別する証明書です。CA は、各 DB インスタンスにインストールされているサーバー証明書である、DB インスタンス証明書に署名します。DB サーバー証明書は DB インスタンスを信頼できるサーバーとして識別します。
Amazon RDS にはデータベース用の DB サーバー証明書に署名するための、以下の CA が用意されています。
認証局 (CA) | 説明 | 共通名 (CN) |
---|---|---|
rds-ca-2019 |
RSA 2048 プライベートキーアルゴリズムと SHA256 署名アルゴリズムを備えた認証局を使用します。この CA は 2024 年に有効期限が切れ、サーバー証明書の自動ローテーションはサポートされていません。この CA を使用して同じ標準を維持したい場合は、rds-ca-rsa2048-g1 CA に切り替えることをお勧めします。 |
Amazon RDS region-identifier CA 2019 |
rds-ca-rsa2048-g1 |
大半の AWS リージョン では、RSA 2048 プライベートキーアルゴリズムと SHA256 署名アルゴリズムを備えた認証局を使用します。 AWS GovCloud (US) Regions では、CA が RSA 2048 プライベートキーアルゴリズムと SHA384 署名アルゴリズムを備えた認証局を使用します。 この CA は rds-ca-2019 CA よりも長期間有効です。この CA はサーバー証明書の自動ローテーションをサポートします。 |
Amazon RDS region-identifier RSA2048 G1 |
rds-ca-rsa4096-g1 |
RSA 4096 プライベートキーアルゴリズムと SHA384 署名アルゴリズムを備えた認証局を使用します。この CA はサーバー証明書の自動ローテーションをサポートします。 |
Amazon RDS region-identifier RSA4096 G1 |
rds-ca-ecc384-g1 |
ECC 384 プライベートキーアルゴリズムと SHA384 署名アルゴリズムを備えた認証局を使用します。この CA はサーバー証明書の自動ローテーションをサポートします。 |
Amazon RDS region-identifier ECC384 G1 |
注記
AWS CLI を使用している場合は、describe-certificates を使用して、上記の認証局の有効性を確認できます。
これらの CA 証明書は、地域およびグローバル証明書バンドルに含まれています。rds-ca-rsa2048-g1、rds-ca-rsa4096-g1、または rds-ca-ecc384-g1 CA をデータベースで使用すると、RDS はデータベース上で DB サーバー証明書を管理します。RDS は、DB サーバーの証明書の有効期限が切れる前に証明書のローテーションを行います。
データベースに CA を設定する
データベースの CA は、以下のタスクの実行時に設定できます。
-
DB インスタンスまたはマルチ AZ DB クラスターの作成 - DB インスタンスまたはクラスターを作成する際に CA を設定できます。手順については、「Amazon RDS DB インスタンスの作成」または「マルチ AZ DB クラスターの作成」を参照してください。
-
DB インスタンスまたはマルチ AZ DB クラスターの変更 – DB インスタンスまたはクラスターを変更することで CA を設定できます。手順については、「Amazon RDS DB インスタンスを変更する」または「マルチ AZ DB クラスターの変更」を参照してください。
注記
デフォルトの CA は rds-ca-rsa2048-g1 に設定されています。modify-certificates コマンドを使用して、AWS アカウント のデフォルト CA をオーバーライドできます。
使用可能な CA は、DB エンジンと DB エンジンのバージョンによって異なります。AWS Management Console を使用するとき、次の図に示すように、認証局の設定を使用して CA を選択できます。
コンソールには、DB エンジンおよび DB エンジンのバージョンで利用可能な CA のみが表示されます。AWS CLI を使用しているとき、create-db-instance コマンドまたは modify-db-instance コマンドを使用して DB インスタンスの CA を設定できます。マルチ AZ DB クラスターの CA は、create-db-cluster コマンドまたは modify-db-cluster コマンドを使用して指定できます。
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 サーバー証明書ローテーションの詳細については、「サーバー証明書の自動ローテーション」を参照してください。
DB インスタンスの CA の表示
データベースの CA に関する詳細を確認するには、次の画像のように、コンソール内の [接続とセキュリティ] タブを表示します。
AWS CLI を使用している場合は、describe-db-instances コマンドを使用して DB インスタンスの CA の詳細を表示できます。マルチ AZ DB クラスターの CA の詳細は、describe-db-clusters コマンドを使用して確認できます。
Amazon RDS の証明書バンドルをダウンロードする
SSL または TLS を使用してデータベースに接続する場合、データベースインスタンスには Amazon RDS からの信頼証明書が必要です。次の表の適切なリンクを選択して、データベースをホストする AWS リージョン に対応するバンドルをダウンロードします。
AWS リージョン による証明書バンドル
すべての AWS リージョン および GovCloud (米国) リージョンの証明書バンドルには、次の証明書が含まれています。
-
rds-ca-2019
中間証明書とルート証明書。 -
rds-ca-rsa2048-g1
、rds-ca-rsa4096-g1
、およびrds-ca-ecc384-g1
ルート CA 証明書。アプリケーション信頼ストアでは、ルート CA 証明書の登録のみが必要です。
注記
Amazon RDS Proxy は AWS Certificate Manager (ACM) の証明書を使用します。RDS Proxy を使用している場合は、Amazon RDS 証明書をダウンロードしたり、RDS Proxy 接続を使用するアプリケーションを更新したりする必要はありません。詳細については、「RDS Proxy での TLS/SSL の使用」を参照してください。
AWS リージョン の証明書バンドルをダウンロードするには、次の表で、データベースをホストする AWS リージョン のリンクを選択します。
CA 証明書の内容の表示
CA 証明書バンドルの内容を確認するには、次のコマンドを使用します。
keytool -printcert -v -file global-bundle.pem