보안 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을 설정합니다.

보안 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를 지원합니다.

참고 항목