다음을 통해 공유


보안 enclave를 사용한 Always Encrypted를 이용하여 애플리케이션 개발

적용 대상: SQL Server 2019(15.x) 이상 - Windows만 해당 Azure SQL 데이터베이스

보안 Enclave를 사용한 Always EncryptedAlways 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을 설정합니다.

보안 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를 지원하는 클라이언트 드라이버:

참고 항목