연결을 위한 보안 옵션 구성 - Amazon Redshift

연결을 위한 보안 옵션 구성

Amazon Redshift는 데이터와 서버 인증서 암호화를 위한 보안 소켓 계층(SSL) 연결을 지원하여 클라이언트에서 연결할 서버 인증서를 검증합니다.

SSL을 사용해 연결하기

SSL 연결을 지원하기 위해 Amazon Redshift는 AWS Certificate Manager(ACM)가 발급한 SSL 인증서를 생성해 각 클러스터에 설치합니다. ACM 인증서는 대부분의 운영 체제, 웹 브라우저 및 클라이언트에서 공개적으로 신뢰합니다. SQL 클라이언트 또는 애플리케이션이 sslmode 연결 옵션이 require, verify-ca 또는 verify-full로 설정된 상태에서 SSL을 사용하여 Amazon Redshift에 연결하는 경우 인증서 번들을 다운로드해야 합니다. 클라이언트에 인증서가 필요한 경우 Amazon Redshift는 다음과 같이 번들 인증서를 제공합니다.

  • https://s3.amazonaws.com/redshift-downloads/amazon-trust-ca-bundle.crt에서 번들을 다운로드합니다.

    • 예상 MD5 체크섬 번호는 418dea9b6d5d5de7a8f1ac42e164cdcf입니다.

    • sha256 체크섬 번호는 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550입니다.

    https://s3.amazonaws.com/redshift-downloads/redshift-ca-bundle.crt에 있던 이전 인증서 번들을 사용하지 마세요.

  • 중국 AWS 리전에서는 https://s3.cn-north-1.amazonaws.com.cn/redshift-downloads-cn/amazon-trust-ca-bundle.crt에서 번들을 다운로드합니다.

    • 예상 MD5 체크섬 번호는 418dea9b6d5d5de7a8f1ac42e164cdcf입니다.

    • sha256 체크섬 번호는 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550입니다.

    https://s3.cn-north-1.amazonaws.com.cn/redshift-downloads-cn/redshift-ca-bundle.crthttps://s3.cn-north-1.amazonaws.com.cn/redshift-downloads-cn/redshift-ssl-ca-cert.pem에 있던 이전 인증서 번들을 사용하지 마세요.

중요

Amazon Redshift는 SSL 인증서 관리 방법을 바꿨습니다. 계속해서 SSL을 사용하여 클러스터에 연결하려면 현재 신뢰하는 루트 CA 인증서를 업데이트해야 할 수 있습니다. 자세한 내용은 SSL 연결을 위해 ACM 인증서로 이전 섹션을 참조하세요.

기본적으로 클러스터 데이터베이스는 SSL의 사용 여부와 상관없이 연결을 허용합니다. 클러스터가 SSL 연결을 요구하도록 구성하려면 클러스터와 연결된 파라미터 그룹에서 require_SSL 파라미터를 true로 설정해야 합니다.

Amazon Redshift는 연방 정보 처리 표준(FIPS) 140-2를 준수하는 SSL 모드를 지원합니다. FIPS 준수 SSL 모드는 기본적으로 비활성화되어 있습니다.

중요

시스템에서 FIPS를 준수해야 하는 경우에만 FIPS 준수 SSL 모드를 활성화합니다.

FIPS 준수 SSL 모드를 활성화하려면 Amazon Redshift 클러스터 또는 Redshift Serverless 작업 그룹에 연결된 파라미터 그룹에서 use_fips_ssl 파라미터와 require_SSL 파라미터를 true로 설정합니다. 클러스터의 파라미터 그룹 수정에 대한 자세한 내용은 Amazon Redshift 파라미터 그룹 섹션을 참조하세요. 작업 그룹의 파라미터 그룹 수정에 대한 자세한 내용은 Amazon Redshift Serverless에 대한 FIPS 준수 SSL 연결 구성 섹션을 참조하세요.

Amazon Redshift는 ECDHE(Elliptic Curve Diffie—Hellman Ephemeral) 키 계약 프로토콜을 지원합니다. ECDHE 프로토콜에서는 클라이언트와 서버가 비보안 채널을 통해 공유 비밀을 구성하는 데 사용하는 타원 곡선 공개-비공개 키 페어를 갖습니다. ECDHE를 사용하기 위해 Amazon Redshift에서 아무 것도 구성할 필요가 없습니다. ECDHE를 통해 클라이언트와 서버 간 통신을 암호화하는 SQL 클라이언트 도구에서 연결하는 경우 Amazon Redshift가 제공된 암호 목록을 사용해 적절히 연결합니다. 자세한 내용은 Wikipedia의 Elliptic curve diffie—hellman 및 OpenSSL 웹 사이트의 Ciphers 섹션을 참조하세요.

ODBC에서 SSL 및 신뢰하는 CA 인증서 사용하기

최신 Amazon Redshift ODBC 드라이버(버전 1.3.7.1000 이상)을 사용하여 연결하는 경우 이 섹션을 건너뛸 수 있습니다. 최신 드라이버를 다운로드하려면 ODBC 연결 구성 섹션을 참조하세요.

계속해서 SSL을 사용하여 클러스터에 연결하려면 현재 신뢰하는 루트 CA 인증서를 업데이트해야 할 수 있습니다. 자세한 내용은 SSL을 사용해 연결하기 섹션을 참조하세요.

다운로드한 인증서가 예상 MD5 체크섬 번호와 일치하는지 확인할 수 있습니다. 이렇게 하려면 Linux 운영 체제에서 MD5sum 프로그램을 사용하거나 Windows 및 macOS X 운영 체제에서 다른 도구를 사용할 수 있습니다.

ODBC DSN에 포함되어 있는 sslmode 설정은 클라이언트 연결이나 서버 인증서 확인 시 암호화 처리 방법을 결정합니다. Amazon Redshift는 클라이언트 연결에서 다음 sslmode 값을 지원합니다.

  • disable

    SSL이 비활성화되고 연결이 암호화되지 않았습니다.

  • allow

    서버에서 요구할 경우 SSL이 사용됩니다.

  • prefer

    서버에서 지원할 경우 SSL이 사용됩니다. Amazon Redshift는 SSL을 지원하므로 sslmodeprefer로 설정할 때 SSL을 사용합니다.

  • require

    SSL이 필요합니다.

  • verify-ca

    SSL을 사용하고, 서버 인증서의 검증을 받아야 합니다.

  • verify-full

    SSL을 사용해야 합니다. 또한 서버 인증서의 검증을 받아야 하며, 서버 호스트 이름이 인증서의 호스트 이름 속성과 일치해야 합니다.

클라이언트와 서버 간의 연결에서 SSL 사용 여부 및 서버 인증서 확인 여부를 확인할 수 있습니다. 이렇게 하려면 클라이언트의 ODBC DSN에 대한 sslmode 설정과 서버의 Amazon Redshift 클러스터에 대한 require_SSL 설정을 검토해야 합니다. 다음 표는 클라이언트와 서버 설정을 다양하게 조합한 암호화 결과를 설명한 것입니다.

sslmode(클라이언트) require_SSL(서버) Result
disable false 연결이 암호화되지 않았습니다.
disable true 서버가 SSL을 요구하지만 클라이언트는 SSL이 비활성화되어 있어서 연결이 이루어지지 않습니다.
allow true 연결이 암호화됩니다.
allow false 연결이 암호화되지 않았습니다.
prefer 또는 require true 연결이 암호화됩니다.
prefer 또는 require false 연결이 암호화됩니다.
verify-ca true 연결이 암호화되고, 서버 인증서가 검증됩니다.
verify-ca false 연결이 암호화되고, 서버 인증서가 검증됩니다.
verify-full true 연결이 암호화되고, 서버 인증서 및 호스트 이름이 검증됩니다.
verify-full false 연결이 암호화되고, 서버 인증서 및 호스트 이름이 검증됩니다.

서버 인증서를 사용하여 Microsoft Windows 기반 ODBC와 연결하기

SSL 및 서버 인증서를 사용하여 클러스터에 연결하려면 먼저 인증서를 클라이언트 컴퓨터 또는 Amazon EC2 인스턴스에 다운로드합니다. 그런 다음 ODBC DSN을 구성합니다.

  1. Amazon Redshift 인증 기관 번들을 클라이언트 컴퓨터의 드라이버 설치 디렉터리에 있는 lib 폴더로 다운로드하고 root.crt 파일로 저장합니다. 다운로드 정보는 SSL을 사용해 연결하기 섹션을 참조하세요.

  2. ODBC Data Source Administrator(ODBC 데이터 원본 관리자)를 열고 ODBC 연결에 필요한 시스템 DSN 항목을 추가 또는 편집합니다. DNS 별칭을 사용하지 않는 경우 SSL 모드(SSL Mode)verify-full을 선택합니다. DNS 별칭을 사용하는 경우에는 verify-ca를 선택합니다. 그런 다음 저장(Save)을 선택합니다.

    ODBC DSN 구성에 대한 자세한 내용은 ODBC 연결 구성 섹션을 참조하세요.

Java에서 SSL 및 서버 인증서 사용하기

SSL은 클라이언트와 클러스터 사이에 전송되는 데이터를 암호화하여 하나의 보안 계층으로서 역할을 합니다. 서버 인증서를 사용하여 해당 클러스터가 Amazon Redshift 클러스터라는 사실을 검증하면 보안 계층이 추가됩니다. 프로비저닝하는 모든 클러스터에 자동으로 설치되는 서버 인증서를 검사하기 때문에 이러한 검증이 가능합니다. JDBC에서 서버 인증서를 사용하는 방법에 대한 자세한 내용은 PostgreSQL 설명서에서 클라이언트 구성을 참조하세요.

Java에서 신뢰하는 CA 인증서를 사용해 연결

중요

Amazon Redshift는 SSL 인증서 관리 방법을 바꿨습니다. 계속해서 SSL을 사용하여 클러스터에 연결하려면 현재 신뢰하는 루트 CA 인증서를 업데이트해야 할 수 있습니다. 자세한 내용은 SSL을 사용해 연결하기 섹션을 참조하세요.

신뢰하는 CA 인증서를 사용해 연결하려면

redshift-keytool.jar 파일을 사용하여 Amazon Redshift 인증 기관 번들에 들어 있는 CA 인증서를 Java TrustStore 또는 프라이빗 TrustStore로 가져올 수 있습니다.

  1. Java 명령줄 -Djavax.net.ssl.trustStore 옵션을 사용하는 경우 가능하면 명령줄에서 이 옵션을 제거합니다.

  2. redshift-keytool.jar를 다운로드합니다.

  3. 다음 중 하나를 수행하십시오.

    • Amazon Redshift 인증 기관 번들을 Java TrustStore로 가져오려면 다음 명령을 실행합니다.

      java -jar redshift-keytool.jar -s
    • Amazon Redshift 인증 기관 번들을 프라이빗 TrustStore로 가져오려면 다음 명령을 실행합니다.

      java -jar redshift-keytool.jar -k <your_private_trust_store> -p <keystore_password>