Aurora DSQL 接続用の SSL/TLS 証明書の設定 - Amazon Aurora DSQL

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

  1. Spotlight 検索 (Command + スペース) を開く

  2. [キーチェーンアクセス] を検索する

  3. [システムキーチェーン][システムルート] を選択する

  4. 証明書リストで [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 証明書をインストールするには、次の手順に従います。

  1. ルート証明書をダウンロードします。

    wget https://www.amazontrust.com/repository/AmazonRootCA1.pem
  2. 証明書をコピーしてトラストストアに追加します。

    sudo cp ./AmazonRootCA1.pem /etc/pki/ca-trust/source/anchors/
  3. CA トラストストアを更新します。

    sudo update-ca-trust
  4. インストールを確認します。

    trust list | grep "Amazon Root CA 1"

macOS 証明書のインストール

これらの証明書のインストール手順はオプションです。「Linux 証明書のインストール」も macOS で機能します。

  1. ルート証明書をダウンロードします。

    wget https://www.amazontrust.com/repository/AmazonRootCA1.pem
  2. 証明書をシステムキーチェーンに追加します。

    sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain AmazonRootCA1.pem
  3. インストールを確認します。

    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 からの接続

  1. 認証トークンを生成および設定します。

    export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token --region=your-cluster-region --hostname your-cluster-endpoint)
  2. システム証明書を使用して接続します (プリインストールされている場合)。

    PGSSLROOTCERT=system \ PGSSLMODE=verify-full \ psql --dbname postgres \ --username admin \ --host your-cluster-endpoint
  3. または、ダウンロードした証明書を使用して接続します。

    PGSSLROOTCERT=/full/path/to/root.pem \ PGSSLMODE=verify-full \ psql --dbname postgres \ --username admin \ --host your-cluster-endpoint
注記

PGSSLMODE 設定の詳細については、PostgreSQL 17「Database Connection Control Functions」ドキュメントの「sslmode」を参照してください。

macOS からの接続

  1. 認証トークンを生成および設定します。

    export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token --region=your-cluster-region --hostname your-cluster-endpoint)
  2. システム証明書を使用して接続します (プリインストールされている場合)。

    PGSSLROOTCERT=system \ PGSSLMODE=verify-full \ psql --dbname postgres \ --username admin \ --host your-cluster-endpoint
  3. または、ルート証明書をダウンロードして root.pem として保存します (証明書がプリインストールされていない場合)。

    PGSSLROOTCERT=/full/path/to/root.pem \ PGSSLMODE=verify-full \ psql —dbname postgres \ --username admin \ --host your_cluster_endpoint
  4. psql を使用して接続します。

    PGSSLROOTCERT=/full/path/to/root.pem \ PGSSLMODE=verify-full \ psql —dbname postgres \ --username admin \ --host your_cluster_endpoint

Windows からの接続

コマンドプロンプトを使用する

  1. 認証トークンを生成する

    aws dsql generate-db-connect-admin-auth-token ^ --region=your-cluster-region ^ --expires-in=3600 ^ --hostname=your-cluster-endpoint
  2. パスワード環境変数を設定する

    set "PGPASSWORD=token-from-above"
  3. SSL を設定します。

    set PGSSLROOTCERT=C:\full\path\to\root.pem set PGSSLMODE=verify-full
  4. データベースに接続します。

    "C:\Program Files\PostgreSQL\17\bin\psql.exe" --dbname postgres ^ --username admin ^ --host your-cluster-endpoint

PowerShell を使用する

  1. 認証トークンを生成および設定します。

    $env:PGPASSWORD = (aws dsql generate-db-connect-admin-auth-token --region=your-cluster-region --expires-in=3600 --hostname=your-cluster-endpoint)
  2. SSL を設定します。

    $env:PGSSLROOTCERT='C:\full\path\to\root.pem' $env:PGSSLMODE='verify-full'
  3. データベースに接続します。

    "C:\Program Files\PostgreSQL\17\bin\psql.exe" --dbname postgres ` --username admin ` --host your-cluster-endpoint

その他のリソース