다음을 통해 공유


인증서 및 Service Broker

적용 대상:SQL ServerAzure SQL Managed Instance

이 항목에서는 Service Broker 원격 보안을 위해 SQL Server가 인증서를 사용하는 방법을 설명합니다. Service Broker 원격 보안이란 작업에서 대화 보안이나 전송 보안을 사용할 때 SQL Server 인스턴스가 두 개 이상 관련되는 작업을 의미합니다.

개요

Service Broker 원격 보안은 인스턴스 외부의 작업을 SQL Server 데이터베이스 보안 주체에 매핑합니다. 그러면 이 작업은 일반적인 SQL Server 권한을 사용하여 해당 데이터베이스 보안 주체의 보안 컨텍스트에서 진행됩니다. 예를 들어 대화 보안을 사용하는 대화를 위한 메시지가 도착하면 Service Broker는 메시지의 정보를 사용하여 대화 원격 측의 데이터베이스 보안 주체를 식별합니다. 그런 다음 SQL Server는 보안 주체가 대상 서비스를 호스트하는 데이터베이스에 연결할 수 있는 권한과 대상 서비스에 메시지를 보낼 수 있는 권한이 있음을 확인합니다.

SQL Server는 인증서를 사용하여 원격 데이터베이스의 ID를 확인하고 작업에 대한 로컬 데이터베이스 보안 주체를 식별합니다. 따라서 SQL Server에 인증서를 설치하면 인증서의 프라이빗 키가 보관되는 데이터베이스에 신뢰 문이 구성됩니다. 설치하는 인증서와 만들려는 원격 서비스 바인딩을 신중하게 관리하세요.

참고 항목

신뢰할 수 있는 원본의 인증서만 설치합니다. 프라이빗 키를 배포하지 마세요.

원격 서버의 ID를 확인하려면 SQL Server에서 로컬 데이터베이스 보안 주체가 소유한 인증서의 공개 키로 암호 해독이 가능한 정보를 받아야 합니다. SQL Server가 정보의 암호를 해독할 수 있다는 것은 원격 데이터베이스에 로컬 인증서의 공개 키에 해당하는 프라이빗 키가 있다는 의미입니다. SQL Server가 원격 데이터베이스의 ID를 확인하면 원격 데이터베이스는 로컬 데이터베이스 보안 주체의 권한으로 작동할 수 있습니다.

전송 보안을 위해 각 데이터베이스는 다른 데이터베이스를 신뢰해야 합니다. 전송 보안은 인증서 또는 Windows 인증을 사용할 수 있습니다. 전송 보안에 대한 자세한 내용은 Service Broker 전송 보안을 참조하세요.

대화 보안의 경우 대화의 초기자는 대상을 신뢰해야 하며 대상의 ID를 확인할 수 있어야 합니다. 그러나 대상은 식별 정보를 제공하지 않는 초기자의 연결을 허용할 수 있습니다. 이 경우 시작자는 대상 서비스를 호스트하는 데이터베이스에서 public 역할을 사용합니다. 대화 보안은 항상 인증서를 사용합니다. 대화 보안에 대한 자세한 내용은 Service Broker 대화 보안을 참조하세요.

SQL Server는 인증서를 통한 자동화된 Service Broker 보안 구성 방법을 제공하지 않습니다.

인증서 요구 사항

Service Broker 보안에 사용하려면 인증서가 다음 요구 사항을 충족해야 합니다.

  • 키 모듈러스는 2048 미만이어야 합니다.

  • 총 인증서 길이는 32KB(KB) 미만이어야 합니다.

  • 주제 이름을 지정해야 합니다.

  • 유효 날짜를 지정해야 합니다.

  • 키 길이는 64비트 배수여야 합니다.

Transact-SQL 문 CREATE CERTIFICATE로 만든 자체 서명된 인증서는 위 목록에 있는 요구 사항을 충족합니다. 파일에서 로드된 인증서가 이러한 요구 사항을 충족하지 못할 수 있습니다.

인증서를 SQL Server에 저장할 경우 데이터베이스의 마스터 키로 인증서를 암호화해야 합니다. Service Broker는 비밀번호로만 암호화된 인증서를 사용할 수 없습니다. 또한 데이터베이스의 마스터 키는 인스턴스의 서비스 키로 암호화되어야 합니다. 그렇지 않으면 Service Broker가 마스터 키를 열 수 없습니다.

SQL Server가 인증서를 사용하여 대화를 시작하려면 인증서가 ACTIVE FOR BEGIN_DIALOG로 표시되어야 합니다. 인증서는 기본적으로 시작 대화에서 활성으로 표시됩니다. 그러나 서비스에 대한 보안 구성을 업데이트하는 동안 인증서를 일시적으로 비활성화하도록 선택할 수 있습니다. 자세한 내용은 CREATE CERTIFICATE(Transact-SQL)ALTER CERTIFICATE(Transact-SQL)를 참조하세요.

참고 항목