보안 enclave를 사용한 Always Encrypted를 이용하여 애플리케이션 개발
적용 대상: SQL Server 2019(15.x) 이상 - Windows 전용 Azure SQL Database
보안 enclave를 사용한 Always Encrypted는 상시 암호화를 확장하여 암호화된 중요한 데이터베이스 열에서 애플리케이션 쿼리의 다양한 기능을 가능하게 합니다. 보안 Enclave 기술을 활용하여 데이터베이스 엔진의 쿼리 실행기가 암호화된 열에 대한 계산을 데이터베이스 엔진 프로세스 내 보안 Enclave로 위임할 수 있도록 합니다.
필수 조건
보안 Enclave를 사용하여 Always Encrypted를 지원하려면 사용자 환경이 다음 요구 사항을 충족해야 합니다.
- 해당/필요한 경우 Enclave 및 증명을 지원하도록 SQL Server 인스턴스 또는 Azure SQL Database의 데이터베이스 서버를 올바르게 구성해야 합니다. 자세한 내용은 보안 Enclave 및 증명 설정을 참조하세요.
- 애플리케이션을 확인합니다.
클라이언트 드라이버 버전을 사용하여 보안 enclave를 사용한 Always Encrypted를 지원합니다.
데이터베이스에 연결할 때 Always Encrypted를 사용하도록 설정합니다.
enclave 쿼리를 제출하기 전에 클라이언트 드라이버가 enclave를 증명해야 하는지 여부와 이 경우 사용해야 하는 증명 서비스를 결정하는 증명 프로토콜을 설정합니다. 최신 드라이버 버전은 다음 증명 프로토콜을 지원합니다.
- Microsoft Azure Attestation - Microsoft Azure Attestation을 사용하여 증명을 적용합니다.
- 호스트 보호 서비스 - 호스트 보호 서비스를 사용하여 증명을 적용합니다.
- 없음 - 증명 없이 enclave를 사용할 수 있습니다.
아래 표에서는 특정 SQL 제품 및 enclave 기술에 유효한 증명 프로토콜을 지정합니다.
Product Enclave 기술 지원되는 증명 프로토콜 SQL Server 2019(15.x) 이상 VBS enclave 호스트 보호자 서비스, 없음 Azure SQL Database SGX enclave(DC 시리즈 데이터베이스) Microsoft Azure Attestation Azure SQL Database VBS enclave 없음 증명을 사용하는 경우 사용자 환경에 유효한 증명 URL을 설정합니다.
- SQL Server 및 HGS(호스트 보호 서비스)를 사용하는 경우 HGS 증명 URL 확인 및 공유를 참조하세요.
- Intel SGX Enclave 및 Microsoft Azure Attestation에서 Azure SQL Database를 사용하는 경우 증명 정책에 대한 증명 URL 확인(Determine the Attestation)을 참조하세요.
보안 Enclave를 사용한 Always Encrypted의 클라이언트 드라이버
보안 Enclave를 사용한 Always Encrypted를 사용하여 애플리케이션을 개발하려면 보안 Enclave를 지원하는 버전의 SQL 클라이언트 드라이버가 있어야 합니다. 클라이언트 드라이버는 다음 주요 역할을 수행합니다.
- 실행을 위해 SQL Server 또는 Azure SQL Database에 보안 Enclave를 사용하는 쿼리를 제출하기 전에 드라이버는 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 이상이 필요합니다.
.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를 참조 하세요.
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기