다음을 통해 공유


복제 보안을 위한 최선의 구현 방법

적용 대상:SQL ServerAzure SQL Managed Instance

복제는 단일 도메인의 인트라넷에서 신뢰할 수 없는 도메인과 인터넷을 통해 데이터에 액세스하는 애플리케이션에 이르기까지 분산 환경의 데이터를 이동합니다. 이러한 다양한 상황에서 복제 연결을 보호하는 가장 좋은 방법을 이해하는 것이 중요합니다.

다음 정보는 모든 환경에서의 복제와 관련이 있습니다.

  • VPN(가상 프라이빗 네트워크), TLS(전송 계층 보안, 이전 명칭: SSL(Secure Sockets Layer)) 또는 IPSEC(IP 보안)과 같은 산업 표준 방법을 사용하여 복제 토폴로지의 컴퓨터 간 연결을 암호화합니다. 자세한 내용은 데이터베이스 엔진에 대한 암호화된 연결 사용(SQL Server 구성 관리자)을 참조하세요. 인터넷을 통해 데이터를 복제하기 위해 VPN 및 TLS를 사용하는 방법에 대한 자세한 내용은 인터넷을 통해 복제 보안 설정을 참조하세요.

    TLS 1.2를 사용하여 복제 토폴로지의 컴퓨터 간 연결을 보호하는 경우 각 복제 에이전트의 -EncryptionLevel 매개 변수에 대해 1 또는 2 값을 지정합니다(값 2가 권장됨). 값 1을 지정하면 암호화가 사용되지만 에이전트에서 TLS/SSL 서버 인증서가 신뢰할 수 있는 발급자에 의해 서명된 것인지 확인하지는 않습니다. 값 2를 지정하면 인증서가 확인됩니다. Azure SQL Managed Instance는 인스턴스 간 연결을 위해 값 3을 지정하고, Azure SQL Managed Instance에서 SQL Server로의 연결을 위해 값 4를 지정하여 TLS 1.3을 지원합니다.

    에이전트 작업에 대한 자세한 내용은 다음을 참조하세요.

  • 각 복제 에이전트를 서로 다른 Windows 계정으로 실행하고 모든 복제 에이전트 연결에 Windows 인증을 사용합니다. 계정 지정에 대한 자세한 내용은 복제에 대한 ID 및 액세스 제어를 참조하세요.

  • 각 에이전트에 필요한 권한만 부여합니다. 자세한 내용은 복제 에이전트 보안 모델의 "에이전트에 필요한 사용 권한" 섹션을 참조하세요.

  • 모든 병합 에이전트 및 배포 에이전트 계정이 PAL(게시 액세스 목록)에 있는지 확인합니다. 자세한 내용은 게시자 보안 설정을 참조하세요.

  • PAL의 계정에 복제 작업 수행에 필요한 권한만 허용하는 최소 권한 원칙을 따릅니다. 복제에 필요하지 않은 고정 서버 역할에 로그인을 추가하지 마세요.

  • 모든 병합 에이전트 및 배포 에이전트 읽기 액세스를 허용하도록 스냅샷 공유를 구성합니다. 매개 변수가 있는 필터가 있는 게시에 대한 스냅샷의 경우 각 폴더가 적절한 병합 에이전트 계정에만 액세스를 허용하도록 구성되어 있는지 확인합니다.

  • 스냅샷 에이전트 쓰기 액세스를 허용하도록 스냅샷 공유를 구성합니다.

  • 끌어오기 구독을 사용하는 경우 스냅샷 폴더의 로컬 경로 대신 네트워크 공유를 사용합니다.

복제 토폴로지에서 동일한 도메인에 있지 않거나 서로 트러스트 관계가 없는 도메인에 있는 컴퓨터를 포함하는 경우 에이전트에서 만든 연결에 Windows 인증 또는 SQL Server 인증을 사용할 수 있습니다(도메인에 대한 자세한 내용은 Windows 설명서 참조). Windows 인증을 사용하는 보안 모범 사례로 권장됩니다.

  • Windows 인증을 사용하려면

    • 적절한 노드에서 각 에이전트에 대한 로컬 Windows 계정(도메인 계정이 아님)을 추가합니다(각 노드에서 동일한 이름과 암호 사용). 예를 들어, 푸시 구독의 배포 에이전트는 배포자에서 실행되며 배포자와 구독자에 연결을 설정합니다. 배포 에이전트에 대한 Windows 계정은 배포자와 구독자에 추가해야 합니다.

    • 지정된 에이전트(예: 구독에 대한 배포 에이전트)가 각 컴퓨터에서 동일한 계정으로 실행되는지 확인합니다.

  • SQL Server 인증 사용을 사용하려면

    • 적절한 노드에서 각 에이전트에 대한 SQL Server 계정을 추가합니다(각 노드에서 동일한 계정 이름 및 암호 사용). 예를 들어, 푸시 구독의 배포 에이전트는 배포자에서 실행되며 배포자와 구독자에 연결을 설정합니다. 배포 에이전트에 대한 SQL Server 계정은 배포자와 구독자에 추가해야 합니다.

    • 지정된 에이전트(예: 구독에 대한 배포 에이전트)가 각 컴퓨터에서 동일한 계정으로 연결되는지 확인합니다.

    • SQL Server 인증이 필요한 경우 UNC 스냅샷 공유에 대한 액세스를 사용할 수 없는 경우가 많습니다(예: 방화벽에 의해 액세스가 차단될 수 있음). 이 경우 FTP(파일 전송 프로토콜)를 통해 스냅샷을 구독자에게 전송할 수 있습니다. 자세한 내용은 FTP를 통해 스냅샷 전송을 참조하세요.

데이터베이스 마스터 키를 사용하여 보안 상태 개선

비고

이 섹션의 지침은 현재 SQL Server 2022 CU18 이상 및 SQL Server 2019 CU31 이상에 적용할 수 있습니다. 이러한 지침은 Azure SQL Managed Instance에 적용되지 않습니다.

복제에 SQL Server 인증을 사용하는 경우 복제를 구성할 때 제공하는 비밀은 특히 배포 데이터베이스 및 끌어오기 구독의 경우 구독자 데이터베이스에 SQL Server 내에 저장됩니다.

복제 구성을 시작하기 전에 복제에 대한 보안 태세를 강화하려면 다음 수행 합니다.

  • 배포자를 호스트하는 서버의 배포 데이터베이스에 DMK(데이터베이스 마스터 키) 를 만듭니다.
  • 끌어오기 구독의 경우 구독자 데이터베이스에도 DMK를 만듭니다.

DMK 이전에 복제를 만든 경우 먼저 DMK를 만든 다음 복제 작업에 대한 암호를 업데이트하여 복제 비밀을 업데이트합니다. 동일한 암호로 작업을 업데이트하거나 새 암호를 사용할 수 있습니다.

복제 비밀을 업데이트하려면 다음 관련 저장 프로시저 중 하나를 사용하여 복제 작업에 대한 암호를 업데이트합니다.

DMK 없이 트랜잭션 복제를 구성하면 SQL Server 14130 경고가 발생할 수 있습니다.

  • Azure SQL 관리형 인스턴스
  • SQL Server 2022 CU18 이상
  • SQL Server 2019 CU31 이상