기존 암호화된 열에 관해 보안 Enclave를 사용한 Always Encrypted 사용
적용 대상: SQL Server 2019(15.x) 이상 - Windows만 해당 Azure SQL 데이터베이스
이 문서에서는 보안 Enclave를 사용하여 Always Encrypted의 기능을 잠금 해제하고 기존 암호화된 열에 대해 Enclave 계산을 사용하도록 설정하는 방법을 설명합니다.
Enclave를 사용하지 않는 키로 암호화된 기존 열이 있는 경우 Enclave 사용 키로 암호화된 열을 만들 수 있습니다. 이렇게 하면 열의 쿼리에서 보안 Enclave를 사용할 수 있습니다.
다음과 같이 몇 가지 방법으로 기존 암호화된 열에 enclave 계산을 사용하도록 설정할 수 있습니다.
- 범위/세분성: 열의 하위 집합 또는 지정된 열 마스터 키로 보호되는 모든 열에 Enclave 기능을 사용하도록 설정하시겠습니까?
- 데이터 크기: Enclave 사용 열로 지정하려는 열이 포함된 테이블의 크기는 얼마나 되나요?
- 열의 암호화 유형도 변경하시겠습니까? 임의 암호화만 풍부한 계산(패턴 일치, 비교 연산자)을 지원합니다. 결정적 암호화를 사용하여 열을 암호화한 경우에도, 임의 암호화로 다시 암호화하여 리치 계산을 잠금 해제해야 합니다.
다음 섹션에서는 기존 열에 Enclave를 사용하도록 설정하는 세 가지 방법을 설명합니다.
방법 1: 열 마스터 키를 회전하여 Enclave 사용 열 마스터 키로 바꿉
기존 열 마스터 키(Enclave가 활성화되지 않은)를 Enclave가 활성화된 새 열 마스터 키로 교체하면 모든 열 암호화 키(열 마스터 키와 연결된)도 효과적으로 Enclave가 활성화됩니다.
장점:
- 데이터를 다시 암호화하지 않으므로 일반적으로 가장 빠른 방법입니다. 이것은 이미 리치 계산에 사용하도록 설정되어 있고 결정적 암호화를 사용하는 대량 데이터를 포함하는 열에 대해 권장되는 방법입니다.
- 대규모로 여러 열에 Enclave 기능을 사용하도록 설정할 수 있습니다. 열 마스터 키를 Enclave 사용 열 마스터 키로 바꿔서 모든 열 암호화 키와 원래 열 마스터 키와 연결된 모든 암호화된 열을 Enclave 사용으로 만듭니다.
단점:
- 암호화 유형을 결정적에서 임의로 변경하는 것을 지원하지 않습니다. 결정적 암호화를 사용하여 암호화된 열에 대한 내부 암호화를 잠금 해제하지만 리치 계산은 설정하지 않습니다. 임의 암호화를 사용하여 열을 다시 암호화해야 합니다.
- 지정된 열 마스터 키와 연결된 일부 열을 선택적으로 변환할 수 없습니다.
- 키 관리 오버 헤드가 발생합니다. 새 열 마스터 키를 만들고 영향을 받는 열을 쿼리하는 애플리케이션에서 사용하도록 해야 합니다.
열 마스터 키를 회전하는 방법에 대한 자세한 정보는 Enclave 사용 키 회전을 참조하세요.
방법 2: 열 마스터 키를 회전하고 임의 암호화를 사용하여 열을 다시 암호화합니다.
이 메서드에는 첫 번째 단계로 메서드 1을 실행한 다음 열을 다시 암호화하는 작업이 포함됩니다. 열은 결정적 암호화를 사용하여 시작한 다음 임의 암호화로 다시 암호화되어 풍부한 쿼리의 잠금을 해제합니다.
장점:
- 현재 위치에서 데이터를 다시 암호화합니다. 현재 확실한 암호화를 이용하고 대량의 데이터를 포함하는 열을 암호화하기 위해 리치 쿼리를 사용하도록 설정하는 데 권장되는 방법입니다. 1단계(열 마스터 키 회전)는 결정적 암호화를 사용하여 열의 바로 암호화를 잠금 해제하며 2단계는 바로 수행할 수 있습니다.
- 대규모로 여러 열에 Enclave 기능을 사용하도록 설정할 수 있습니다.
단점:
- 지정된 열 마스터 키와 연결된 일부 열을 선택적으로 변환할 수 없습니다.
- 키 관리 오버 헤드가 발생합니다. 새 열 마스터 키를 만들고 영향을 받는 열을 쿼리하는 애플리케이션에서 사용하도록 해야 합니다.
열 마스터 키를 회전하고 열을 현재 위치에서 다시 암호화하여 열 암호화 키를 회전하는 방법에 대한 자세한 정보는 Enclave 사용 키 회전을 참조하세요.
메서드 3: 클라이언트 쪽에서 Enclave 사용 열 암호화 키를 사용하여 선택한 열을 다시 암호화
이 메서드는 Enclave 사용 열 암호화 키를 사용하여 열을 다시 암호화하고 임의 암호화를 사용하여 풍부한 쿼리를 사용하도록 설정하는 방법을 포함합니다. 현재 열 암호화 키는 Enclave 사용이 아니므로 현재 위치에서 열을 다시 암호화할 수 없습니다. Always Encrypted 마법사 또는 Set-SqlColumnEncryption cmdlet을 사용하여 데이터베이스의 열을 다시 암호화합니다.
장점:
- 단일 열 또는 열의 작은 하위 집합에 대해 Enclave 기능(임의 암호화를 사용하여 열을 다시 암호화하는 경우 바로 암호화 및 풍부한 쿼리)을 선택적으로 사용하도록 설정할 수 있습니다.
- 열의 리치 계산을 한 단계로 사용하도록 설정할 수 있습니다.
단점:
- 데이터를 다시 암호화하기 위해 도구는 데이터베이스 밖으로 이동하므로 시간이 오래 걸릴 수 있으며 네트워크 오류가 발생하기 쉽습니다.
- 키 관리 오버 헤드가 발생합니다. 새 열 마스터 키를 만들고 영향을 받는 열을 쿼리하는 애플리케이션에서 사용하도록 해야 합니다.
클라이언트 쪽 도구를 통해 열 암호화를 회전하는 방법에 대한 자세한 정보는 SQL Server Management Studio를 사용하여 Always Encrypted 키 회전 및 PowerShell을 사용하여 Always Encrypted 키 회전을 참조하세요.