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
-
Spotlight Search를 엽니다(Command + 스페이스).
-
Keychain Access를 검색합니다.
-
System Keychains에서 System Roots를 선택합니다.
-
인증서 목록에서 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 인증서를 설치합니다.
-
루트 인증서를 다운로드합니다.
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 인증서 설치
이러한 인증서 설치 단계는 선택 사항입니다. macOS에서도 Linux 인증서 설치가 적용됩니다.
-
루트 인증서를 다운로드합니다.
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 \ --host
your-cluster-endpoint
-
또는 다운로드한 인증서를 사용하여 연결합니다.
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
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 \ --host
your-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 ^ --host
your-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 ` --host
your-cluster-endpoint