보안 enclave를 사용한 Always Encrypted를 이용하여 애플리케이션 개발
적용 대상: SQL Server 2019(15.x) 이상 - Windows만 해당 Azure SQL 데이터베이스
보안 Enclave를 사용한 Always Encrypted는 Always Encrypted를 확장하여 암호화된 중요한 데이터베이스 열에서 애플리케이션 쿼리의 다양한 기능을 가능하게 합니다. 보안 Enclave 기술을 활용하여 데이터베이스 엔진의 쿼리 실행기가 암호화된 열에 대한 계산을 데이터베이스 엔진 프로세스 내 보안 Enclave로 위임할 수 있도록 합니다.
필수 조건
보안 Enclave를 사용하여 Always Encrypted를 지원하려면 사용자 환경이 다음 요구 사항을 충족해야 합니다.
- 해당/필요한 경우 Enclave 및 증명을 지원하도록 SQL Server 인스턴스 또는 Azure SQL 데이터베이스의 데이터베이스 서버를 올바르게 구성해야 합니다. 자세한 정보는 보안 Enclave와 증명 설정을 참조하세요.
- 애플리케이션을 확인합니다.
클라이언트 드라이버 버전을 사용하여 보안 Enclave를 사용한 Always Encrypted를 지원합니다.
데이터베이스에 연결할 때 Always Encrypted를 사용하도록 설정합니다.
Enclave 쿼리를 제출하기 전에 클라이언트 드라이버가 Enclave를 증명해야 하는지 여부와 이 경우 사용해야 하는 증명 서비스를 결정하는 증명 프로토콜을 설정합니다. 최신 드라이버 버전은 다음 증명 프로토콜을 지원합니다.
- Microsoft Azure Attestation - Microsoft Azure Attestation을 이용한 증명을 집행합니다.
- 호스트 보호 서비스 - 호스트 보호 서비스를 사용하여 증명을 적용합니다.
- None - 증명 없이 Enclave를 사용할 수 있습니다.
아래 표에서는 특정 SQL 제품 및 Enclave 기술에 유효한 증명 프로토콜을 지정합니다.
Product Enclave 기술 지원되는 증명 프로토콜 SQL Server 2019(15.x) 이상 VBS enclave 호스트 보호 서비스, None Azure SQL Database SGX Enclave(DC 시리즈 데이터베이스) Microsoft Azure Attestation Azure SQL Database VBS enclave None 증명을 사용하는 경우 사용자 환경에 유효한 증명 URL을 설정합니다.
- SQL Server 및 HGS(호스트 보호 서비스)를 사용하는 경우 HGS 증명 URL 확인 및 공유를 참조하세요.
- Intel SGX Enclave 및 Microsoft Azure Attestation와 함께 Azure SQL 데이터베이스를 사용하는 경우 증명 정책의 증명 URL 결정을 참조하세요.
보안 Enclave를 사용한 Always Encrypted의 클라이언트 드라이버
보안 Enclave를 사용한 Always Encrypted를 사용하여 애플리케이션을 개발하려면 보안 Enclave를 지원하는 버전의 SQL 클라이언트 드라이버가 있어야 합니다. 클라이언트 드라이버는 다음 주요 역할을 수행합니다.
- 보안 Enclave를 사용한 쿼리를 실행하기 위해 SQL Server 또는 Azure SQL 데이터베이스에 제출하기 전에 드라이버가 Enclave 증명(구성되어 있을 경우)을 시작하여 보안 Enclave를 신뢰할 수 있고 중요한 데이터를 처리하는 데 안전하게 사용할 수 있는지 확인합니다. 증명에 대한 자세한 내용은 보안 Enclave 증명을 참조하세요.
- 클라이언트 드라이버는 공유 비밀을 협상하여 Enclave와 보안 세션을 설정합니다.
- 드라이버가 공유 비밀을 사용하여 Enclave에서 쿼리를 처리하는 데 필요한 열 암호화 키를 암호화하고 SQL Server로 키를 보냅니다. SQL Server는 키를 보안 Enclave로 전달하여 암호 해독합니다.
- 마지막으로 드라이버는 실행 쿼리를 제출하여 보안 Enclave 내에서 계산을 트리거합니다.
보안 Enclave로 Always Encrypted를 지원하는 클라이언트 드라이버:
.NET Framework 4.6 이상 및 .NET Core 2.1 이상의 MICROSOFT .NET Data Provider for SQL Server. 증명 없이 VBS Enclave를 사용하려면 .NET Framework 4.6.1 이상 및 .NET Core 3.1과 호환되는 버전 4.1 이상이 필요합니다.
- 자세한 내용은 Microsoft .NET Data Provider for SQL Server와 Always Encrypted 사용을 참조하세요.
- 단계별 자습서를 보려면 자습서: 보안 Enclave를 사용한 Always Encrypted를 이용하여 .NET 애플리케이션 개발을 참조하세요.
- 또한 Azure Key Vault 공급자 및 보안 Enclave를 사용한 Always Encrypted 사용을 보여 주는 예제를 참조하세요.
Microsoft ODBC Driver for SQL Server 버전 17.4 이상 증명 없이 VBS Enclave를 사용하려면 버전 18.1 이상이 필요합니다.
- 자세한 내용은 ODBC 드라이버와 함께 Always Encrypted 사용을 참조하세요.
- ODBC를 사용하여 데이터베이스 연결에 Enclave 계산을 사용하도록 설정하는 방법에 대한 자세한 정보는 보안 Enclave를 사용하여 Always Encrypted 사용 섹션을 참조하세요.
Microsoft JDBC Driver for SQL Server 버전 8.2 이상 증명 없이 VBS Enclave를 사용하려면 버전 12.2 이상이 필요합니다.
- 자세한 정보는 JDBC 드라이버와 함께 보안 Encalve로 Always Encrypted 사용을 참조하세요.
.NET Framework 4.7.2 이상의 SQL Server용 .NET Framework 데이터 공급자입니다.
- 자세한 정보는 .NET Framework Data Provider for SQL Server와 함께 Always Encrypted 사용을 참조하세요.
- 단계별 자습서를 보려면 자습서: 보안 Enclave를 사용한 Always Encrypted를 이용하여 .NET Framework 애플리케이션 개발을 참조하세요.
참고 항목
새 개발에는 .NET Framework Data Provider for SQL Server(System.Data.SqlClient)를 사용하지 않는 것이 좋습니다. 자세한 정보는 System.Data.SqlClient를 참조 하세요.