보안 관리(Service Broker)
Service Broker가 제공하는 융통성 있는 보안 프레임워크를 이용하여 응용 프로그램에 보안 설정을 할 수 있습니다. 이 항목에서는 Service Broker 보안 관리에 대해 고려할 사항을 설명합니다.
보안 계획
보안 요구 사항은 응용 프로그램마다 다릅니다. 응용 프로그램에 대한 요구 사항을 잘 계획하는 것이 보안 관리의 일부입니다. 전송 보안, 대화 보안 및 SQL Server의 기본 제공 보안 인프라가 응용 프로그램의 보안을 통합적으로 지원합니다.
모든 응용 프로그램은 SQL Server의 기본 제공 보안 인프라를 사용합니다. SQL Server의 각 작업은 특정 보안 컨텍스트에서 발생합니다. 대부분의 경우 특히 응용 프로그램에 대한 SQL Server 데이터베이스 보안 주체를 만듭니다. 이렇게 하면 응용 프로그램의 각 단계가 해당 단계에 필요한 권한만 있는 보안 컨텍스트에서 실행되도록 할 수 있습니다. 예를 들어 내부 활성화에 대해 지정하는 보안 주체는 Service Broker가 활성화하는 저장 프로시저에 대한 실행 권한이 필요합니다. 저장 프로시저 자체가 큐에 대한 RECEIVE 권한과 특정 테이블에 대한 UPDATE 권한이 있는 사용자를 가장할 수도 있습니다. 각 단계에서 응용 프로그램에 대한 보안 컨텍스트에 예기치 않은 작업을 수행할 수 있는 권한이 없도록 응용 프로그램을 설계합니다.
SQL Server 인스턴스 간에 메시지를 보내는 응용 프로그램은 전송 보안이나 대화 보안 또는 둘 다를 사용할 수 있습니다. 전송 보안과 대화 보안이 제공하는 보안은 서로 다릅니다.
Service Broker 대화 보안은 특정 서비스 간의 대화에 종단 간 암호화 및 권한 부여를 제공합니다. 따라서 대화 보안을 통해 전송 중 수정 또는 검사에 대해 데이터를 보호할 수 있습니다. 기밀 또는 중요한 데이터를 전송하는 응용 프로그램이나 트러스트되지 않은 네트워크를 통해 메시지를 전송하는 응용 프로그램은 대화 보안을 사용해야 합니다. 대화 보안을 통해 대화의 참가자가 대화의 다른 참가자를 식별할 수 있습니다.
대화 보안은 특정 서비스에 적용되므로 대화 보안을 사용하는 서비스마다 대화 보안을 구성해야 합니다. 그러나 인스턴스를 통해 일부 대화에 대화 보안을 사용할 수 있고 다른 대화는 암호화되지 않은 상태로 전송할 수 있습니다. 예를 들어 고객 정보를 업데이트하는 서비스에 대한 대화에는 대화 보안을 사용할 수 있지만 부품 번호 정보를 조회하기만 하는 대화에는 대화 보안이 필요하지 않을 수도 있습니다.
Service Broker는 대화를 시작하는 데이터베이스의 원격 서비스 바인딩을 사용하여 대화의 보안을 확인합니다. 따라서 Service Broker는 서비스에 대한 보안을 확인하는 데 서비스 이름을 사용합니다. 동일한 대상 서비스의 인스턴스가 두 개 이상 있는 경우 시작 서비스가 일치하는 인증서를 가진 대상 서비스하고만 통신하도록 시작 서비스에 대한 라우팅을 주의해서 관리해야 합니다. 이름이 같은 서비스는 모두 같은 인증서를 사용하여 구성해야 합니다.
Service Broker 전송 보안은 Service Broker 끝점에 대한 무단 네트워크 연결을 막고, 전송 중인 메시지에 대한 변경을 감지하고, 필요한 경우 지점 간 암호화를 제공합니다. 이를 통해 원치 않는 메시지를 데이터베이스가 받지 않도록 보호할 수 있습니다. 전송 보안은 네트워크 연결에 적용되므로 SQL Server 인스턴스 간의 모든 대화에 전송 보안이 자동으로 적용됩니다. 그러나 전송 보안은 종단 간 암호화를 제공하지 않으며 개별 대화에 대한 인증도 제공하지 않습니다.
보안 유지 관리
Service Broker 응용 프로그램에 대한 보안 유지 관리는 응용 프로그램 구성을 감사하고 응용 프로그램이 사용하는 인증서를 교체하는 두 가지 주요 태스크로 구성됩니다.
응용 프로그램을 주기적으로 감사하여 보안 구성이 변경되지 않았는지, 보안 구성이 응용 프로그램의 비즈니스 요구에 맞는지 확인합니다.
대화 보안은 인증과 암호화에 대한 인증서를 사용하며 전송 보안도 인증서를 사용할 수 있습니다. 인증서에는 인증서 유효 기간이 지정되어 있습니다. 이 기간이 시작되기 전이나 만료된 후에는 인증서가 유효하지 않습니다. Service Broker는 현재 유효하지 않은 인증서는 사용하지 않습니다. 또한 SQL Server에는 ACTIVE FOR BEGIN_DIALOG 옵션이 포함되어 있어 Service Broker에 인증서를 사용할 수 있습니다. 인증서를 업데이트하려면 시작 대화 옵션이 OFF로 설정되도록 활성화된 새 인증서를 만들거나 로드합니다. 인증서를 모두 로드했으면 모든 데이터베이스의 현재 인증서를 변경하여 Service Broker에 인증서를 사용할 수 없도록 합니다. 그런 다음 ACTIVE FOR BEGIN_DIALOG 옵션을 설정하여 새 인증서를 변경하면 Service Broker에 해당 인증서를 사용할 수 있습니다.
인증서에 대한 자세한 내용은 인증서 및 Service Broker 및 CREATE CERTIFICATE(Transact-SQL)를 참조하십시오.