Microsoft SQL Server DB 인스턴스와 함께 SSL 사용 - Amazon Relational Database Service

Microsoft SQL Server DB 인스턴스와 함께 SSL 사용

SSL(Secure Sockets Layer)을 사용하여 클라이언트 애플리케이션과 Microsoft SQL Server를 실행하는 Amazon RDS DB 인스턴스 사이의 연결을 암호화할 수 있습니다. 지원되는 모든 SQL Server 버전의 모든 AWS 리전에서 SSL 지원 기능을 사용할 수 있습니다.

SQL Server DB 인스턴스를 생성할 때 Amazon RDS는 인스턴스의 SSL 인증서를 만듭니다. SSL 인증서에는 스푸핑 공격으로부터 보호해주는 SSL 인증서를 위한 일반 이름(CN)으로 DB 인스턴스 엔드포인트가 포함되어 있습니다.

SSL을 사용하여 SQL Server DB 인스턴스에 연결하는 방법은 두 가지입니다.

  • 모든 연결에 대해 SSL 지정 – 이것은 클라이언트에 투명하게 발생하며, 클라이언트는 SSL 사용을 위해 작업을 수행할 필요가 없습니다.

    참고

    rds.force_ssl1로 설정하고 SSMS 버전 19.3, 20.0 및 20.2를 사용하는 경우 다음을 확인합니다.

    • SSMS에서 신뢰 서버 인증서를 활성화합니다.

    • 사용 중인 시스템으로 인증서를 가져옵니다.

  • 특정 연결 암호화 – 이것은 특정 클라이언트 컴퓨터로부터 SSL 연결을 설정하며, 연결 암호화를 위해 클라이언트에서 작업을 수행해야 합니다.

SQL Server의 TLS(전송 계층 보안)에 대한 자세한 내용은 Microsoft SQL Server에 대한 TLS 1.2 지원을 참조하십시오.

DB 인스턴스 연결이 SSL을 사용하도록 지정

DB 인스턴스에 대한 모든 연결에서 SSL을 사용하도록 지정할 수 있습니다. 연결이 SSL을 사용하도록 지정하면 클라이언트에 투명하게 발생하며, 클라이언트는 SSL 사용을 위해 작업을 수행할 필요가 없습니다.

SSL을 지정하려면 rds.force_ssl 파라미터를 사용하십시오. 기본적으로 rds.force_ssl 파라미터는 0 (off)로 설정됩니다. 연결이 SSL을 사용하도록 지정하려면 rds.force_ssl 파라미터를 1 (on)로 설정하십시오. rds.force_ssl 파라미터는 정적이기 때문에 값을 변경하면 DB 인스턴스를 재부팅해야만 변경 사항이 적용됩니다.

모든 DB 인스턴스 연결이 SSL을 사용하도록 지정
  1. DB 인스턴스에 첨부할 파라미터 그룹을 결정합니다.

    1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

    2. Amazon RDS 콘솔의 오른쪽 상단에서 DB 인스턴스의 AWS 리전을 선택합니다.

    3. 탐색 창에서 데이터베이스를 선택한 후, DB 인스턴스의 이름을 선택하여 세부 정보를 표시합니다.

    4. 구성 탭을 선택합니다. 섹션에서 [파라미터 그룹(Parameter group)]을 찾습니다.

  2. 필요하다면 새 파라미터 그룹을 만듭니다. DB 인스턴스가 기본 파라미터 그룹을 사용한다면, 새 파라미터 그룹을 생성해야 합니다. DB 인스턴스가 기본이 아닌 파라미터 그룹을 사용한다면, 기존 파라미터 그룹을 편집하거나 새 파라미터 그룹을 생성할 수 있습니다. 기존 파라미터 그룹을 편집하면, 해당 파라미터 그룹을 사용하면 모든 DB 인스턴스가 영향받게 됩니다.

    새 파라미터 그룹을 만들려면, Amazon RDS에서 DB 파라미터 그룹 생성의 지침을 따르십시오.

  3. 신규 또는 기존 파라미터 그룹을 편집해 rds.force_ssl 파라미터를 true로 설정하십시오. 파라미터 그룹을 편집하려면, Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정의 지침을 따르십시오.

  4. 새 파라미터 그룹을 생성했다면, DB 인스턴스를 수정해 새 파라미터 그룹을 첨부하십시오. DB 인스턴스의 DB Parameter Group 설정을 수정합니다. 자세한 내용은 Amazon RDS DB 인스턴스 수정 섹션을 참조하세요.

  5. DB 인스턴스를 재부팅합니다. 자세한 내용은 DB 인스턴스 재부팅 섹션을 참조하세요.

특정 연결 암호화

모든 DB 인스턴스 연결이 SSL을 사용하도록 지정하거나, 특정 클라이언트 컴퓨터 연결만 암호화할 수 있습니다. 특정 클라이언트에서 SSL을 사용하려면, 클라이언트 컴퓨터의 인증서를 획득하고 클라이언트 컴퓨터에서 인증서를 가져온 다음 클라이언트 컴퓨터 연결을 암호화해야 합니다.

참고

2014년 8월 5일 이후에 만든 모든 SQL Server 인스턴스는 SSL 인증서의 일반 이름(CN) 필드에 DB 인스턴스 엔드포인트를 사용합니다. 2014년 8월 5일 이전에는 VPC 기반 SQL Server 인스턴스에 대해 SSL 인증서 확인 기능을 사용할 수 없었습니다. 2014년 8월 5일 이전에 생성된 VPC 기반 SQL Server DB 인스턴스가 있는 상태에서 SSL 인증서 확인을 사용하고 DB 인스턴스용 SSL 인증서에 대한 CN으로 인스턴스 엔드포인트를 반드시 포함시키려면, DB 인스턴스의 이름을 변경합니다. DB 인스턴스의 이름을 변경하면 새 인증서가 배포되고 인스턴스가 재부팅되어 새 인증서를 활성화합니다.

클라이언트 컴퓨터의 인증서 획득

클라이언트 컴퓨터와 Microsoft SQL Server를 실행하는 Amazon RDS DB 인스턴스 사이의 연결을 암호화하려면, 클라이언트 컴퓨터에 인증서가 있어야 합니다.

인증서를 얻으려면, 클라이언트 컴퓨터에 인증서를 다운로드하십시오. 모든 리전에 적용되는 루트 인증서를 다운로드할 수 있습니다. 이전 루트 인증서와 새 루트 인증서를 모두 포함하는 인증서 번들도 다운로드할 수 있습니다. 또한 리전별 중간 인증서를 다운로드할 수 있습니다. 인증서 다운로드에 대한 자세한 내용은 SSL/TLS를 사용하여 DB 인스턴스 또는 클러스터에 대한 연결 암호화 단원을 참조하십시오.

적절한 인증서를 다운로드했다면, 아래 항목에 있는 절차를 따라 Microsoft Windows 운영 체제로 인증서를 가져오십시오.

클라이언트 컴퓨터로 인증서 가져오기

다음 절차를 이용해 클라이언트 컴퓨터의 Microsoft Windows 운영 체제로 인증서를 가져올 수 있습니다.

Windows 운영 체제로 인증서를 가져오는 방법:
  1. 시작 메뉴에서 검색 상자에 Run을 입력하고 Enter 키를 누릅니다.

  2. 열기 상자에 MMC를 입력하고 확인을 선택합니다.

  3. MMC 콘솔의 파일 메뉴에서 스냅인 추가/제거를 선택합니다.

  4. 스냅인 추가/제거 대화 상자의 사용 가능한 스냅인에서 Certificates를 선택하고 추가를 선택합니다.

  5. 인증서 스냅인 대화 상자에서 컴퓨터 계정을 선택한 후 다음을 선택합니다.

  6. 컴퓨터 선택 대화 상자에서 마침을 선택합니다.

  7. 스냅인 추가/제거 대화 상자에서 확인을 선택합니다.

  8. MMC 콘솔에서 인증서를 확장하고, 문맥 메뉴(우클릭)를 열어 신뢰할 수 있는 루트 인증 기관을 선택하고, 모든 작업을 선택한 후 가져오기를 선택합니다.

  9. 인증서 가져오기 마법사의 첫 페이지에서 다음을 선택합니다.

  10. 인증서 가져오기 마법사의 두 번째 페이지에서 찾아보기를 선택합니다. .pem은 표준 인증서 확장명이 아니기 때문에 브라우저 창에서 파일 유형을 모든 파일(*.*)로 변경합니다. 이전에 다운로드한 .pem 파일을 찾습니다.

  11. 열기를 선택해 인증서 파일을 선택하고 다음을 선택합니다.

  12. 인증서 가져오기 마법사의 세 번째 페이지에서 다음을 선택합니다.

  13. 인증서 가져오기 마법사의 네 번째 페이지에서 종료를 선택합니다. 가져오기에 성공했음을 표시하는 대화 상자가 나타날 것입니다.

  14. MMC 콘솔에서 인증서신뢰할 수 있는 루트 인증 기관을 차례로 확장한 다음 인증서를 선택합니다. 다음과 같이 인증서를 찾아 인증서 존재를 확인하십시오.

    MMC 콘솔의 탐색 창에서 콘솔 루트, 인증서(로컬 컴퓨터) 및 신뢰할 수 있는 루트 인증 기관 중에서 검색하여 인증서 폴더를 선택합니다. 기본 페이지에서 필요한 CA 인증서를 선택합니다.

Microsoft SQL Server 기반 Amazon RDS DB 인스턴스 연결 암호화

클라이언트 컴퓨터로 인증서를 가져오면, 클라이언트 컴퓨터와 Microsoft SQL Server를 실행하는 Amazon RDS DB 인스턴스 사이의 연결을 암호화할 수 있습니다.

SQL Server Management Studio의 경우, 다음 절차를 사용합니다. SQL Server Management Studio에 대한 자세한 내용은 SQL Server Management Studio 사용을 참조하십시오.

SQL Server Management Studio 연결 암호화
  1. SQL Server Management Studio를 시작합니다.

  2. [서버에 연결(Connect to server)]에 서버 정보, 로그인 사용자 이름 및 암호를 입력합니다.

  3. Options를 선택합니다.

  4. [연결 암호화]를 선택합니다.

  5. [Connect]를 선택합니다.

  6. 다음 쿼리를 실행하여 연결이 암호화되는지 확인합니다. 쿼리가 true에 대해 encrypt_option를 반환하는지 확인합니다.

    select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID

다른 SQL 클라이언트에는 다음 절차를 적용하십시오.

다른 SQL 클라이언트 연결 암호화
  1. 연결 문자열에 encrypt=true를 추가합니다. 이 문자열은 GUI 도구의 연결 페이지에서 옵션 또는 속성으로 사용할 수 있습니다.

    참고

    JDBC를 사용하여 연결하는 클라이언트에 대해 SSL 암호화를 활성화하려면 Java CA 인증서(cacert) 저장소에 Amazon RDS SQL 인증서를 추가해야 할 수도 있습니다. keytool 유틸리티를 사용하여 이 작업을 수행할 수 있습니다.

  2. 다음 쿼리를 실행하여 연결이 암호화되는지 확인합니다. 쿼리가 true에 대해 encrypt_option를 반환하는지 확인합니다.

    select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID