Aurora DSQL 接続用の SSL/TLS 証明書の設定
Aurora DSQL では、すべての接続で Transport Layer Security (TLS) 暗号化を使用する必要があります。安全な接続を確立するには、クライアントシステムが Amazon ルート認証局 (Amazon ルート CA 1) を信頼する必要があります。この証明書は、多くのオペレーティングシステムにプリインストールされています。このセクションでは、さまざまなオペレーティングシステムにプリインストールされている Amazon ルート CA 1 証明書を検証する手順と、証明書が存在しない場合は手動でインストールする手順について説明します。
PostgreSQL バージョン 17 を使用することをお勧めします。
重要
本番環境では、最高レベルの接続セキュリティを確保するために verify-full SSL モードを使用することをお勧めします。このモードでは、サーバー証明書が信頼できる認証局によって署名されていること、およびサーバーのホスト名が証明書と一致することを確認します。
プリインストールされた証明書の検証
ほとんどのオペレーティングシステムでは、Amazon ルート CA 1 は既にプリインストールされています。これを検証するには、以下の手順に従います。
Linux (RedHat/CentOS/Fedora)
ターミナルで以下のコマンドを実行します。
trust list | grep "Amazon Root CA 1"
証明書がインストールされている場合、次の出力が表示されます。
label: Amazon Root CA 1
macOS
-
Spotlight 検索 (Command + スペース) を開く
-
[キーチェーンアクセス] を検索する
-
[システムキーチェーン] で [システムルート] を選択する
-
証明書リストで [Amazon ルート CA 1] を検索する
Windows
注記
psql Windows クライアントの既知の問題により、システムルート証明書 (sslrootcert=system) を使用すると、SSL error: unregistered scheme エラーが返されることがあります。SSL を使用してクラスターに接続する代替方法として「Windows からの接続」を使用できます。
Amazon ルート CA 1 がオペレーティングシステムにインストールされていない場合は、以下の手順に従います。
証明書のインストール
Amazon Root CA 1 証明書がオペレーティングシステムにプリインストールされていない場合は、Aurora DSQL クラスターへの安全な接続を確立するために、証明書を手動でインストールする必要があります。
Linux 証明書のインストール
Linux システムに Amazon ルート CA 証明書をインストールするには、次の手順に従います。
-
ルート証明書をダウンロードします。
wget https://www.amazontrust.com/repository/AmazonRootCA1.pem -
証明書をコピーしてトラストストアに追加します。
sudo cp ./AmazonRootCA1.pem /etc/pki/ca-trust/source/anchors/ -
CA トラストストアを更新します。
sudo update-ca-trust -
インストールを確認します。
trust list | grep "Amazon Root CA 1"
macOS 証明書のインストール
これらの証明書のインストール手順はオプションです。「Linux 証明書のインストール」も macOS で機能します。
-
ルート証明書をダウンロードします。
wget https://www.amazontrust.com/repository/AmazonRootCA1.pem -
証明書をシステムキーチェーンに追加します。
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain AmazonRootCA1.pem -
インストールを確認します。
security find-certificate -a -c "Amazon Root CA 1" -p /Library/Keychains/System.keychain
SSL/TLS 検証を使用した接続
Aurora DSQL クラスターへの安全な接続のために SSL/TLS 証明書を設定する前に、次の動作条件を満たしていることを確認してください。
-
PostgreSQL バージョン 17 がインストールされている
-
AWS CLI が適切な認証情報で設定されている
-
Aurora DSQL クラスターエンドポイント情報
Linux からの接続
-
認証トークンを生成および設定します。
export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token --region=your-cluster-region--hostnameyour-cluster-endpoint) -
システム証明書を使用して接続します (プリインストールされている場合)。
PGSSLROOTCERT=system \ PGSSLMODE=verify-full \ psql --dbname postgres \ --username admin \ --hostyour-cluster-endpoint -
または、ダウンロードした証明書を使用して接続します。
PGSSLROOTCERT=/full/path/to/root.pem \ PGSSLMODE=verify-full \ psql --dbname postgres \ --username admin \ --hostyour-cluster-endpoint
注記
PGSSLMODE 設定の詳細については、PostgreSQL 17「Database Connection Control Functions
macOS からの接続
-
認証トークンを生成および設定します。
export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token --region=your-cluster-region--hostnameyour-cluster-endpoint) -
システム証明書を使用して接続します (プリインストールされている場合)。
PGSSLROOTCERT=system \ PGSSLMODE=verify-full \ psql --dbname postgres \ --username admin \ --hostyour-cluster-endpoint -
または、ルート証明書をダウンロードして
root.pemとして保存します (証明書がプリインストールされていない場合)。PGSSLROOTCERT=/full/path/to/root.pem \ PGSSLMODE=verify-full \ psql —dbname postgres \ --username admin \ --host your_cluster_endpoint -
psql を使用して接続します。
PGSSLROOTCERT=/full/path/to/root.pem \ PGSSLMODE=verify-full \ psql —dbname postgres \ --username admin \ --host your_cluster_endpoint
Windows からの接続
コマンドプロンプトを使用する
-
認証トークンを生成する
aws dsql generate-db-connect-admin-auth-token ^ --region=your-cluster-region^ --expires-in=3600 ^ --hostname=your-cluster-endpoint -
パスワード環境変数を設定する
set "PGPASSWORD=token-from-above" -
SSL を設定します。
set PGSSLROOTCERT=C:\full\path\to\root.pem set PGSSLMODE=verify-full -
データベースに接続します。
"C:\Program Files\PostgreSQL\17\bin\psql.exe" --dbname postgres ^ --username admin ^ --hostyour-cluster-endpoint
PowerShell を使用する
-
認証トークンを生成および設定します。
$env:PGPASSWORD = (aws dsql generate-db-connect-admin-auth-token --region=your-cluster-region--expires-in=3600 --hostname=your-cluster-endpoint) -
SSL を設定します。
$env:PGSSLROOTCERT='C:\full\path\to\root.pem' $env:PGSSLMODE='verify-full' -
データベースに接続します。
"C:\Program Files\PostgreSQL\17\bin\psql.exe" --dbname postgres ` --username admin ` --hostyour-cluster-endpoint