데이터베이스의 복구 데이터 암호화

적용 대상: Configuration Manager(현재 분기)

BitLocker 관리 정책을 만들 때 Configuration Manager 관리 지점에 복구 서비스를 배포합니다. BitLocker 관리 정책의 클라이언트 관리 페이지에서 BitLocker Management Services를 구성할 때 클라이언트는 사이트 데이터베이스에 키 복구 정보를 백업합니다. 이 정보에는 BitLocker 복구 키, 복구 패키지 및 TPM 암호 해시가 포함됩니다. 사용자가 보호된 디바이스에서 잠긴 경우 이 정보를 사용하여 디바이스에 대한 액세스를 복구할 수 있습니다.

이 정보의 중요한 특성을 감안할 때, 당신은 그것을 보호해야합니다. Configuration Manager 네트워크를 통해 전송 중인 데이터를 암호화하려면 클라이언트와 복구 서비스 간의 HTTPS 연결이 필요합니다. 자세한 내용은 네트워크를 통해 복구 데이터 암호화를 참조하세요.

사이트 데이터베이스에 저장할 때도 이 데이터를 암호화하는 것이 좋습니다. SQL Server 인증서를 설치하는 경우 Configuration Manager SQL에서 데이터를 암호화합니다.

BitLocker 관리 암호화 인증서를 만들지 않으려면 복구 데이터의 일반 텍스트 스토리지에 옵트인합니다. BitLocker 관리 정책을 만들 때 복구 정보를 일반 텍스트로 저장할 수 있도록 허용 옵션을 사용하도록 설정합니다.

참고

또 다른 보안 계층은 전체 사이트 데이터베이스를 암호화하는 것입니다. 데이터베이스에서 암호화를 사용하도록 설정하면 Configuration Manager 기능 문제가 없습니다.

특히 대규모 환경에서는 주의해서 암호화합니다. 암호화하는 테이블과 SQL 버전에 따라 성능이 최대 25% 저하될 수 있습니다. 암호화된 데이터를 성공적으로 복구할 수 있도록 백업 및 복구 계획을 업데이트합니다.

참고

Configuration Manager 클라이언트가 비활성 상태이거나 삭제된 경우에도 데이터베이스에서 디바이스에 대한 복구 정보를 제거하거나 삭제하지 않습니다. 이 동작은 보안상의 이유로 수행됩니다. 디바이스가 도난당했지만 나중에 복구되는 시나리오에 도움이 됩니다. 대규모 환경의 경우 데이터베이스 크기에 미치는 영향은 암호화된 볼륨당 약 9KB의 데이터입니다.

암호화 인증서 SQL Server

Configuration Manager 이 SQL Server 인증서를 사용하여 사이트 데이터베이스에서 BitLocker 복구 데이터를 암호화합니다. SQL Server 스크립트를 사용하여 자체 서명된 인증서를 만들 수 있습니다.

또는 다음 요구 사항을 충족하는 한 사용자 고유의 프로세스를 사용하여 이 인증서를 만들고 배포할 수 있습니다.

  • BitLocker 관리 암호화 인증서의 이름은 이어야 BitLockerManagement_CERT합니다.

  • 데이터베이스 마스터 키를 사용하여 이 인증서를 암호화합니다.

  • 다음 SQL Server 사용자는 인증서에 대한 제어 권한이 필요합니다.

    • RecoveryAndHardwareCore
    • RecoveryAndHardwareRead
    • RecoveryAndHardwareWrite
  • 계층 구조의 모든 사이트 데이터베이스에 동일한 인증서를 배포합니다.

  • 최신 버전의 SQL Server 사용하여 인증서를 만듭니다.

    중요

    • SQL Server 2016 이상으로 만든 인증서는 SQL Server 2014 이전 버전과 호환됩니다.
    • SQL Server 2014 이전 버전으로 만든 인증서는 SQL Server 2016 이상과 호환되지 않습니다.

SQL Server 업그레이드에서 암호화 인증서 관리

사이트 데이터베이스가 2014년 SQL Server 이전 버전인 경우 SQL Server 버전 2016 이상으로 업그레이드하기 전에 다음 절차를 사용하여 인증서를 지원되는 버전으로 회전합니다.

  1. 사용 가능한 최신 버전을 실행하는 SQL Server 인스턴스에서 적어도 버전 2016:

    1. 새 인증서 만들기

    2. 새 인증서 백업

  2. 업그레이드하려는 암호화된 사이트 데이터베이스가 있는 SQL Server 인스턴스에서 다음을 수행합니다.

    1. 사이트 데이터베이스 서버 SQL Server 인스턴스의 기존 인증서를 다른 이름으로 이동합니다.

    2. 새 인증서를 복원합니다.

    3. 기존 인증서에 대해 에서 새 인증서를 회전합니다. 제공된 SQL 함수 사용 [RecoveryAndHardwareCore].[RecryptKey]

중요

인증서를 회전하기 전에 SQL Server 업그레이드하는 경우 Microsoft 지원 문의하여 해결에 대한 도움을 받으세요.

비즈니스 요구 사항에서 이 인증서를 정기적으로 갱신해야 한다고 지정하는 경우에도 이 프로세스를 사용할 수 있습니다.

예제 스크립트

이러한 SQL 스크립트는 Configuration Manager 사이트 데이터베이스에서 BitLocker 관리 암호화 인증서를 만들고 배포하는 예제입니다.

인증서 만들기

이 샘플 스크립트는 다음 작업을 수행합니다.

  • 인증서 만들기
  • 사용 권한 설정
  • 데이터베이스 마스터 키 만들기

프로덕션 환경에서 이 스크립트를 사용하기 전에 다음 값을 변경합니다.

  • 사이트 데이터베이스 이름(CM_ABC)
  • 마스터 키를 만드는 암호(MyMasterKeyPassword)
  • 인증서 만료 날짜(20391022)
USE CM_ABC
IF NOT EXISTS (SELECT name FROM sys.symmetric_keys WHERE name = '##MS_DatabaseMasterKey##')
BEGIN
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MyMasterKeyPassword'
END

IF NOT EXISTS (SELECT name from sys.certificates WHERE name = 'BitLockerManagement_CERT')
BEGIN
    CREATE CERTIFICATE BitLockerManagement_CERT AUTHORIZATION RecoveryAndHardwareCore
    WITH SUBJECT = 'BitLocker Management',
    EXPIRY_DATE = '20391022'

    GRANT CONTROL ON CERTIFICATE ::BitLockerManagement_CERT TO RecoveryAndHardwareRead
    GRANT CONTROL ON CERTIFICATE ::BitLockerManagement_CERT TO RecoveryAndHardwareWrite
END

참고

인증서가 데이터베이스 암호화에 사용되는 경우 인증서 만료 날짜는 SQL Server 검사하거나 적용하지 않습니다.

비즈니스 요구 사항에서 이 인증서를 정기적으로 갱신하도록 지정하는 경우 동일한 프로세스를 사용하여 SQL Server 업그레이드할 때 암호화 인증서를 관리합니다.

인증서 백업

이 샘플 스크립트는 인증서를 백업합니다. 인증서를 파일에 저장하면 계층 구조의 다른 사이트 데이터베이스로 복원 할 수 있습니다.

프로덕션 환경에서 이 스크립트를 사용하기 전에 다음 값을 변경합니다.

  • 사이트 데이터베이스 이름(CM_ABC)
  • 파일 경로 및 이름(C:\BitLockerManagement_CERT_KEY)
  • 키 암호 내보내기(MyExportKeyPassword)
USE CM_ABC
BACKUP CERTIFICATE BitLockerManagement_CERT TO FILE = 'C:\BitLockerManagement_CERT'
    WITH PRIVATE KEY ( FILE = 'C:\BitLockerManagement_CERT_KEY',
        ENCRYPTION BY PASSWORD = 'MyExportKeyPassword')

중요

항상 인증서를 백업합니다. 사이트 데이터베이스를 복구해야 하는 경우 복구 키에 대한 액세스 권한을 다시 가져오기 위해 인증서를 복원해야 할 수 있습니다.

내보낸 인증서 파일 및 연결된 암호를 안전한 위치에 저장합니다.

인증서 복원

이 샘플 스크립트는 파일에서 인증서를 복원합니다. 이 프로세스를 사용하여 다른 사이트 데이터베이스에 만든 인증서를 배포합니다.

프로덕션 환경에서 이 스크립트를 사용하기 전에 다음 값을 변경합니다.

  • 사이트 데이터베이스 이름(CM_ABC)
  • 마스터 키 암호(MyMasterKeyPassword)
  • 파일 경로 및 이름(C:\BitLockerManagement_CERT_KEY)
  • 키 암호 내보내기(MyExportKeyPassword)
USE CM_ABC
IF NOT EXISTS (SELECT name FROM sys.symmetric_keys WHERE name = '##MS_DatabaseMasterKey##')
BEGIN
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MyMasterKeyPassword'
END

IF NOT EXISTS (SELECT name from sys.certificates WHERE name = 'BitLockerManagement_CERT')
BEGIN

CREATE CERTIFICATE BitLockerManagement_CERT AUTHORIZATION RecoveryAndHardwareCore
FROM FILE  = 'C:\BitLockerManagement_CERT'
    WITH PRIVATE KEY ( FILE = 'C:\BitLockerManagement_CERT_KEY',
        DECRYPTION BY PASSWORD = 'MyExportKeyPassword')

GRANT CONTROL ON CERTIFICATE ::BitLockerManagement_CERT TO RecoveryAndHardwareRead
GRANT CONTROL ON CERTIFICATE ::BitLockerManagement_CERT TO RecoveryAndHardwareWrite
END

인증서 확인

이 SQL 스크립트를 사용하여 SQL Server 필요한 권한으로 인증서를 성공적으로 만들 수 있는지 확인합니다.

USE CM_ABC
declare @count int
select @count = count(distinct u.name) from sys.database_principals u
join sys.database_permissions p on p.grantee_principal_id = u.principal_id or p.grantor_principal_id = u.principal_id
join sys.certificates c on c.certificate_id = p.major_id
where u.name in('RecoveryAndHardwareCore', 'RecoveryAndHardwareRead', 'RecoveryAndHardwareWrite') and
c.name = 'BitLockerManagement_CERT' and p.permission_name like 'CONTROL'
if(@count >= 3) select 1
else select 0

인증서가 유효한 경우 스크립트는 값을 반환합니다 1.

참고 항목

이러한 SQL 명령에 대한 자세한 내용은 다음 문서를 참조하세요.

다음 단계

BitLocker 관리 클라이언트 배포