전송 보안 - 데이터베이스 미러링 - Always On 가용성
적용 대상: SQL Server
전송 보안에는 인증 및 선택적으로 데이터베이스 간에 교환되는 메시지의 암호화가 포함됩니다. 데이터베이스 미러링 및 Always On 가용성 그룹의 경우 데이터베이스 미러링 엔드포인트에 인증과 암호화가 구성됩니다. 데이터베이스 미러링 엔드포인트에 대한 개요를 보려면 데이터베이스 미러링 엔드포인트(SQL Server)를 참조하세요.
항목 내용:
인증
인증은 사용자의 신원을 확인하는 과정입니다. 데이터베이스 미러링 엔드포인트 간 연결에는 인증이 필요합니다. 파트너 또는 미러링 모니터의 연결 요청은 (있는 경우) 인증되어야 합니다.
서버 인스턴스에서 데이터베이스 미러링 또는 Always On 가용성 그룹에 사용하는 인증 유형은 데이터베이스 미러링 엔드포인트의 속성입니다. 데이터베이스 미러링 엔드포인트에서 사용할 수 있는 두 가지 전송 보안 유형: Windows 인증(SSPI(Security Support Provider Interface)) 및 인증서 기반 인증.
Windows 인증
Windows 인증에서 각 서버 인스턴스는 프로세스가 실행 중인 Windows 사용자 계정의 Windows 자격 증명을 사용하여 다른 쪽에 로그인합니다. Windows 인증에는 다음과 같은 로그인 계정에 대한 수동 구성이 필요할 수 있습니다.
SQL Server 인스턴스가 동일 도메인 계정에서 서비스로 실행될 경우 추가 구성이 필요하지 않습니다.
SQL Server 인스턴스가 동일 도메인 또는 트러스트된 도메인의 서로 다른 도메인 계정을 사용하여 서비스로 실행될 경우 각 계정의 로그인을 다른 각 서버 인스턴스에서 master로 만들어야 하며, 해당 로그인에는 해당 엔드포인트에 대한 CONNECT 권한이 부여되어 있어야 합니다.
SQL Server 인스턴스가 네트워크 서비스 계정으로 실행될 경우 각 호스트 컴퓨터 계정(DomainName\ComputerName$)의 로그인은 다른 각 서버에서 master로 만들어야 하며, 해당 로그인에는 해당 엔드포인트에 대한 CONNECT 권한이 부여되어 있어야 합니다. 네트워크 서비스 계정으로 실행되는 서버 인스턴스가 호스트 컴퓨터의 도메인 계정을 사용하여 인증하기 때문입니다.
참고
Windows 인증을 사용하여 데이터베이스 미러링 세션을 설정하는 예제는 예제: Windows 인증을 사용하여 데이터베이스 미러링 설정(Transact-SQL)을 참조하세요.
인증서
서버 인스턴스가 트러스트된 도메인에 없거나 SQL Server가 로컬 서비스로 실행되고 있는 경우와 같이 Windows 인증을 사용할 수 없는 경우가 있습니다. 이러한 경우 사용자 자격 증명 대신 연결 요청을 인증하려면 인증서가 필요합니다. 각 서버 인스턴스의 미러링 엔드포인트는 로컬로 만든 자체 인증서를 사용하여 구성되어야 합니다.
암호화 방법은 인증서가 만들어질 때 설정됩니다. 자세한 내용은 데이터베이스 미러링 엔드포인트의 아웃바운드 연결에 대한 인증서 사용 허용(Transact-SQL)을 참조하세요. 사용하는 인증서를 신중하게 관리합니다.
서버 인스턴스는 자체 인증서의 프라이빗 키를 사용하여 연결을 설정할 때 ID를 설정합니다. 연결 요청을 수신하는 서버 인스턴스는 보낸 사람의 인증서 공개 키를 사용하여 보낸 사람의 ID를 인증합니다. 예를 들어 Server_A 및 Server_B 두 개의 서버 인스턴스를 고려합니다. Server_A는 Server_B에 연결 요청을 보내기 전에 자체 프라이빗 키를 사용하여 연결 헤더를 암호화합니다. Server_B는 Server_A의 인증서의 공개 키를 사용하여 연결 헤더의 암호를 해독합니다. 암호 해독된 헤더가 올바르면 Server_B는 헤더가 Server_A에 의해 암호화되고 연결이 인증된다는 것을 인식합니다. 암호 해독된 헤더가 올바르지 않으면 Server_B는 연결 요청이 인증되지 않은 것으로 인식하고 연결을 거부합니다.
데이터 암호화
기본적으로 데이터베이스 미러링 엔드포인트를 사용하려면 미러링 연결을 통해 전송되는 데이터의 암호화가 필요합니다. 이 경우 엔드포인트는 암호화를 사용하는 엔드포인트에만 연결할 수 있습니다. 네트워크 보안을 보장할 수 없는 경우에는 데이터베이스 미러링 연결에 암호화를 사용하는 것이 좋습니다. 그러나 암호화를 사용하지 않도록 설정하거나 지원하지만 필수는 아닙니다. 암호화를 사용하지 않도록 설정하면 데이터가 암호화되지 않으며 엔드포인트는 암호화가 필요한 엔드포인트에 연결될 수 없습니다. 암호화가 지원되면 반대쪽 엔드포인트가 암호화를 지원하거나 암호화를 요구하는 경우에만 데이터가 암호화됩니다.
참고 항목
SQL Server Management Studio에서는 암호화가 필요하거나 사용되지 않는 미러링 엔드포인트를 만듭니다. 암호화 설정을 SUPPORTED로 변경하려면 ALTER ENDPOINT Transact-SQL 문을 사용합니다. 자세한 내용은 ALTER ENDPOINT(Transact-SQL)를 참조하세요.
필요에 따라 CREATE ENDPOINT 문 또는 ALTER ENDPOINT 문에서 ALGORITHM 옵션에 대해 다음 값 중 하나를 지정하여 엔드포인트에서 사용될 수 있는 암호화 알고리즘을 제어할 수 있습니다.
ALGORITHM 값 | 설명 |
---|---|
RC4 | 엔드포인트가 반드시 RC4 알고리즘을 사용하도록 지정합니다. 기본값입니다. ** 경고 ** RC4 알고리즘은 더 이상 사용되지 않습니다. SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. AES를 사용하는 것이 좋습니다. |
AES | 엔드포인트가 반드시 AES 알고리즘을 반드시 사용하도록 지정합니다. |
AES RC4 | 두 엔드포인트가 암호화 알고리즘에 대해 협상하고 이 엔드포인트가 AES 알고리즘에 우선권을 주도록 지정합니다. |
RC4 AES | 두 엔드포인트가 암호화 알고리즘에 대해 협상하고 이 엔드포인트가 RC4 알고리즘에 우선권을 주도록 지정합니다. |
연결 엔드포인트가 두 알고리즘을 모두 지정하지만 순서가 다른 경우 연결을 수락하는 엔드포인트의 알고리즘이 적용됩니다.
참고 항목
RC4 알고리즘은 이전 버전과의 호환성을 위해서만 지원됩니다. 데이터베이스의 호환성 수준이 90 또는 100인 경우 새 자료는 RC4 또는 RC4_128로만 암호화할 수 있습니다. 이 옵션은 사용하지 않는 것이 좋습니다. 대신 AES 알고리즘 중 하나와 같은 새 알고리즘을 사용하십시오. SQL Server 2012(11.x) 이상 버전에서 RC4 또는 RC4_128을 사용하여 암호화된 자료는 모든 호환성 수준에서 암호 해독할 수 있습니다.
AES에 비해 상당히 빠르긴 하지만 RC4는 비교적 취약한 알고리즘인 반면 AES는 비교적 강력한 알고리즘입니다. 따라서 AES 알고리즘을 사용하는 것이 좋습니다.
암호화를 지정하는 Transact-SQL 구문에 대한 내용은 CREATE ENDPOINT(Transact-SQL)를 참조하세요.
관련 작업
데이터베이스 미러링 엔드포인트용 전송 보안을 구성하려면
참고 항목
암호화 알고리즘 선택
ALTER ENDPOINT(Transact-SQL)
DROP ENDPOINT(Transact-SQL)
SQL Server 데이터베이스 엔진 및 Azure SQL Database용 Security Center
다른 서버 인스턴스에서 데이터베이스를 사용할 수 있도록 할 때 메타데이터 관리(SQL Server)
데이터베이스 미러링 엔드포인트(SQL Server)
sys.database_mirroring_endpoints(Transact-SQL)
sys.dm_db_mirroring_connections (Transact-SQL)
데이터베이스 미러링 구성 문제 해결(SQL Server)
Always On 가용성 그룹 구성 문제 해결(SQL Server)