SSL/TLS를 사용하여 DB 인스턴스에 대한 연결 암호화 - Amazon Relational Database Service

SSL/TLS를 사용하여 DB 인스턴스에 대한 연결 암호화

애플리케이션에서 보안 소켓 계층(SSL) 또는 전송 계층 보안(TLS)을 사용하여 MariaDB, Microsoft SQL Server, MySQL, Oracle 또는 PostgreSQL을 실행하는 DB 인스턴스에 대한 연결을 암호화할 수 있습니다.

SSL/TLS 연결은 클라이언트와 DB 인스턴스 사이에 전송되는 데이터를 암호화하여 하나의 보안 계층을 제공합니다. 필요에 따라 SSL/TLS 연결에서는 DB 인스턴스에 설치된 서버 인증서를 검증하여 서버 ID 확인을 수행할 수 있습니다. 서버 ID 확인을 요구하려면 다음의 일반적인 절차를 따르세요.

  1. 데이터베이스의 DB 서버 인증서에 서명하는 인증 기관(CA)을 선택합니다. 인증 기관에 관한 자세한 내용은 인증 기관 단원을 참조하세요.

  2. 데이터베이스에 연결할 때 사용할 인증서 번들을 다운로드합니다. 인증서 번들을 다운로드하려면 모든 AWS 리전용 인증서 번들특정 AWS 리전용 인증서 번들 단원을 참조하세요.

    참고

    모든 인증서는 SSL/TLS 연결을 통한 다운로드에만 사용 가능합니다.

  3. SSL/TLS 연결을 구현하는 DB 엔진 프로세스를 사용하여 데이터베이스에 연결합니다. 각 DB 엔진에는 SSL/TLS를 구현하기 위한 고유한 프로세스가 있습니다. 데이터베이스에서 SSL/TLS를 구현하는 방법을 알아보려면 DB 엔진에 해당하는 아래 링크로 이동하세요.

인증 기관

인증 기관(CA)은 인증서 체인의 맨 위에 있는 루트 CA를 식별하는 인증서입니다. CA는 각 DB 인스턴스에 설치된 DB 서버 인증서에 서명합니다. DB 서버 인증서는 DB 인스턴스를 신뢰할 수 있는 서버로 식별합니다.


                            인증 기관 개요

Amazon RDS는 DB 인스턴스의 DB 서버 인증서에 서명할 수 있는 다음 CA를 제공합니다.

인증 기관(CA) 설명

rds-ca-2019

RSA 2048 프라이빗 키 알고리즘과 SHA256 서명 알고리즘을 갖춘 인증 기관을 사용합니다. 이 CA는 2024년에 만료되며 자동 서버 인증서 교체를 지원하지 않습니다. 이 CA를 사용 중이고 동일한 표준을 유지하려면 rds-ca-rsa2048-g1 CA로 전환하는 것이 좋습니다.

rds-ca-rsa2048-g1

대부분의 AWS 리전에서 RSA 2048 프라이빗 키 알고리즘과 SHA256 서명 알고리즘을 갖춘 인증 기관을 사용합니다.

AWS GovCloud (US) Regions에서 이 CA는 RSA 2048 프라이빗 키 알고리즘과 SHA384 서명 알고리즘을 갖춘 인증 기관을 사용합니다.

이 CA의 유효 기간은 rds-ca-2019 CA보다 깁니다. 이 CA는 자동 서버 인증서 교체를 지원합니다.

rds-ca-rsa4096-g1

RSA 4096 프라이빗 키 알고리즘과 SHA384 서명 알고리즘을 갖춘 인증 기관을 사용합니다. 이 CA는 자동 서버 인증서 교체를 지원합니다.

rds-ca-ecc384-g1

ECC 384 프라이빗 키 알고리즘과 SHA384 서명 알고리즘을 갖춘 인증 기관을 사용합니다. 이 CA는 자동 서버 인증서 교체를 지원합니다.

참고

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 인스턴스 생성 - DB 인스턴스를 생성할 때 CA를 설정할 수 있습니다. 지침은 Amazon RDS DB 인스턴스 생성 섹션을 참조하세요.

  • DB 인스턴스 수정 - DB 인스턴스를 수정하여 DB 인스턴스의 CA를 설정할 수 있습니다. 지침은 Amazon RDS 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를 설정할 수 있습니다.

AWS CLI를 사용하는 경우 describe-certificate 명령을 사용하여 계정에 사용할 수 있는 CA를 확인할 수 있습니다. 이 명령은 출력의 ValidTill에 각 CA의 만료 날짜도 표시합니다. describe-db-engine-version 명령을 사용하여 특정 DB 엔진 및 DB 엔진 버전에 사용할 수 있는 CA를 찾을 수 있습니다.

다음 예제는 기본 RDS for PostgreSQL DB 엔진 버전에 사용할 수 있는 CA를 보여 줍니다.

aws rds describe-db-engine-versions --default-only --engine postgres

다음과 같은 출력이 표시됩니다. 사용 가능한 CA는 SupportedCACertificateIdentifiers에 나열되어 있습니다. 출력은 SupportsCertificateRotationWithoutRestart에서 DB 엔진 버전이 다시 시작하지 않고 인증서를 교체하는 기능을 지원하는지 여부도 표시합니다.

{ "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 서버 인증서의 유효 기간은 1년입니다. 그렇지 않으면 유효 기간은 3년입니다.

DB 서버 인증서 교체에 대한 자세한 내용은 자동 서버 인증서 교체 단원을 참조하세요.

데이터베이스의 CA 보기

콘솔의 Connectivity & security(연결 및 보안) 탭에서 다음 이미지와 같이 DB 인스턴스의 CA에 대한 세부 정보를 볼 수 있습니다.


                        인증 기관 세부 정보

AWS CLI를 사용 중인 경우 describe-db-instances 명령을 사용하여 DB 인스턴스의 CA에 대한 세부 정보를 확인할 수 있습니다.

CA 인증서 번들의 내용을 확인하려면 다음 명령을 사용합니다.

keytool -printcert -v -file global-bundle.pem

모든 AWS 리전용 인증서 번들

모든 AWS 리전에 대한 중간 인증서와 루트 인증서를 모두 포함하는 인증서 번들을 가져오려면 https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem에서 다운로드하세요.

애플리케이션이 Microsoft Windows에서 실행되어 PKCS7 파일이 필요한 경우에는 PKCS7 인증서 번들을 다운로드할 수 있습니다. 이 번들에는 https://truststore.pki.rds.amazonaws.com/global/global-bundle.p7b의 중간 인증서와 루트 인증서가 모두 포함되어 있습니다.

참고

Amazon RDS Proxy 에서는 AWS Certificate Manager(ACM)의 인증서를 사용합니다. RDS 프록시를 사용하는 경우 Amazon RDS 인증서를 다운로드하거나 RDS 프록시 연결을 사용하는 애플리케이션을 업데이트할 필요가 없습니다. 자세한 내용은 RDS Proxy에서 TLS/SSL 사용 섹션을 참조하세요.

특정 AWS 리전용 인증서 번들

AWS 리전에 대한 중간 인증서와 루트 인증서가 모두 포함된 인증서 번들을 가져오려면 다음 표의 AWS 리전 링크에서 다운로드하세요.

AWS 리전 인증서 번들(PEM) 인증서 번들(PKCS7)
미국 동부(버지니아 북부) us-east-1-bundle.pem us-east-1-bundle.p7b
미국 동부(오하이오) us-east-2-bundle.pem us-east-2-bundle.p7b
미국 서부(캘리포니아 북부) us-west-1-bundle.pem us-west-1-bundle.p7b
미국 서부(오리건) us-west-2-bundle.pem us-west-2-bundle.p7b
Africa (Cape Town) af-south-1-bundle.pem af-south-1-bundle.p7b
Asia Pacific (Hong Kong) ap-east-1-bundle.pem ap-east-1-bundle.p7b
아시아 태평양(하이데라바드) ap-south-2-bundle.pem ap-south-2-bundle.p7b
아시아 태평양(자카르타) ap-southeast-3-bundle.pem ap-southeast-3-bundle.p7b
아시아 태평양(멜버른) ap-southeast-4-bundle.pem ap-southeast-4-bundle.p7b
아시아 태평양(뭄바이) ap-south-1-bundle.pem ap-south-1-bundle.p7b
Asia Pacific (Osaka) ap-northeast-3-bundle.pem ap-northeast-3-bundle.p7b
아시아 태평양(도쿄) ap-northeast-1-bundle.pem ap-northeast-1-bundle.p7b
Asia Pacific (Seoul) ap-northeast-2-bundle.pem ap-northeast-2-bundle.p7b
아시아 태평양(싱가포르) ap-southeast-1-bundle.pem ap-southeast-1-bundle.p7b
아시아 태평양(시드니) ap-southeast-2-bundle.pem ap-southeast-2-bundle.p7b
Canada (Central) ca-central-1-bundle.pem ca-central-1-bundle.p7b
캐나다 서부(캘거리) ca-west-1-bundle.pem ca-west-1-bundle.p7b
유럽(프랑크푸르트) eu-central-1-bundle.pem eu-central-1-bundle.p7b
유럽(아일랜드) eu-west-1-bundle.pem eu-west-1-bundle.p7b
Europe (London) eu-west-2-bundle.pem eu-west-2-bundle.p7b
Europe (Milan) eu-south-1-bundle.pem eu-south-1-bundle.p7b
Europe (Paris) eu-west-3-bundle.pem eu-west-3-bundle.p7b
유럽(스페인) eu-south-2-bundle.pem eu-south-2-bundle.p7b
유럽(스톡홀름) eu-north-1-bundle.pem eu-north-1-bundle.p7b
유럽(취리히) eu-central-2-bundle.pem eu-central-2-bundle.p7b
이스라엘(텔아비브) il-central-1-bundle.pem il-central-1-bundle.p7b
Middle East (Bahrain) me-south-1-bundle.pem me-south-1-bundle.p7b
중동(UAE) me-central-1-bundle.pem me-central-1-bundle.p7b
남아메리카(상파울루) sa-east-1-bundle.pem sa-east-1-bundle.p7b

AWS GovCloud (US) 인증서

AWS GovCloud (US) Region에 대한 중간 인증서와 루트 인증서를 모두 포함하는 인증서 번들을 가져오려면 https://truststore.pki.us-gov-west-1.rds.amazonaws.com/global/global-bundle.pem에서 다운로드하세요.

애플리케이션이 Microsoft Windows에서 실행되어 PKCS7 파일이 필요한 경우에는 PKCS7 인증서 번들을 다운로드할 수 있습니다. 이 번들에는 https://truststore.pki.us-gov-west-1.rds.amazonaws.com/global/global-bundle.p7b의 중간 인증서와 루트 인증서가 모두 포함되어 있습니다.

AWS GovCloud (US) Region에 대한 중간 인증서와 루트 인증서가 모두 포함된 인증서 번들을 가져오려면 다음 표의 AWS GovCloud (US) Region 링크에서 다운로드하세요.

AWS GovCloud (US) Region 인증서 번들(PEM) 인증서 번들(PKCS7)
AWS GovCloud (미국 동부) us-gov-east-1-bundle.pem us-gov-east-1-bundle.p7b
AWS GovCloud(미국 서부) us-gov-west-1-bundle.pem us-gov-west-1-bundle.p7b