Aurora DSQL 연결을 위한 SSL/TLS 인증서 구성 - Amazon Aurora DSQL

Aurora DSQL 연결을 위한 SSL/TLS 인증서 구성

Aurora DSQL은 Transport Layer Security(TLS) 암호화를 사용하려면 모든 연결이 필요합니다. 보안 연결을 설정하려면 클라이언트 시스템이 Amazon Root Certificate Authority(Amazon Root CA 1)를 신뢰해야 합니다. 이 인증서는 많은 운영 체제에 사전 설치되어 있습니다. 이 섹션에서는 다양한 운영 체제에서 사전 설치된 Amazon Root CA 1 인증서를 확인하는 지침을 제공하고 인증서가 아직 없는 경우 수동으로 설치하는 프로세스를 안내합니다.

PostgreSQL 버전 17을 사용하는 것이 좋습니다.

중요

프로덕션 환경의 경우 verify-full SSL 모드를 사용하여 최고 수준의 연결 보안을 보장하는 것이 좋습니다. 이 모드는 서버 인증서가 신뢰할 수 있는 인증 기관에서 서명되었고 서버 호스트 이름이 인증서와 일치하는지 확인합니다.

사전 설치된 인증서 확인

대부분의 운영 체제에서 Amazon Root CA 1은 이미 사전 설치되어 있습니다. 이를 검증하려면 아래 단계를 따르세요.

Linux(RedHat/CentOS/Fedora)

터미널에서 다음 명령을 실행합니다.

trust list | grep "Amazon Root CA 1"

인증서가 설치된 경우 다음 출력이 표시됩니다.

label: Amazon Root CA 1

macOS

  1. Spotlight Search를 엽니다(Command + 스페이스).

  2. Keychain Access를 검색합니다.

  3. System Keychains에서 System Roots를 선택합니다.

  4. 인증서 목록에서 Amazon Root CA 1을 찾습니다.

Windows

참고

psql Windows 클라이언트에서 알려진 문제로 인해 시스템 루트 인증서(sslrootcert=system)를 사용하면 SSL error: unregistered scheme 오류가 반환될 수 있습니다. SSL을 사용하여 클러스터에 연결하는 다른 방법으로 Windows에서 연결를 따를 수 있습니다.

운영 체제에 Amazon Root CA 1이 설치되어 있지 않은 경우 아래 단계를 따릅니다.

인증서 설치

운영 체제에 Amazon Root CA 1 인증서가 사전 설치되어 있지 않은 경우 Aurora DSQL 클러스터에 대한 보안 연결을 설정하려면 인증서를 수동으로 설치해야 합니다.

Linux 인증서 설치

다음 단계에 따라 Linux 시스템에 Amazon Root 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 인증서 설치

이러한 인증서 설치 단계는 선택 사항입니다. macOS에서도 Linux 인증서 설치가 적용됩니다.

  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

추가 리소스