문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

CSFLE 제한

이 페이지의 내용

  • 개요
  • 읽기 및 쓰기 작업 지원
  • 조회수
  • 데이터 정렬
  • 고유 인덱스
  • 샤드 키
  • 읽기/쓰기 쿼리 지원

CSFLE를 활성화하기 전에 이러한 제한 사항을 고려하세요. 일부 작업은 지원되지 않으며, 다른 작업은 다르게 동작합니다.

호환성 제한은 호환성을 참조하세요.

mongod 은 암호화된 BinData } 만 저장하고 BinData 값에 대해 암호화된 필드를 지정하는 집계 표현식 또는 쿼리 연산자를 적용합니다. 표현식 또는 연산자가 BinData 필드를 지원할 수 있지만, 해독된 값에 대해 동일한 표현식 또는 연산자를 실행하는 것과 비교할 때 결과 값이 부정확하거나 예기치 않을 수 있습니다. 표현식 또는 연산자가 BinData 값을 지원하지 않으면 mongod 에서 오류가 발생합니다.

예를 들어, 결정론적으로 암호화된 정수 Salary 을 생각해 보세요. 쿼리는 Salary100000 보다 큰 문서를 필터링합니다. 애플리케이션이 쿼리를 실행하기 전에 결정론적 암호화를 사용하여 쿼리 값을 명시적으로(수동으로) 암호화합니다. mongod100000암호화된 BinData 값을 각 문서에 저장된 암호화된 BinData 값과 비교합니다. 작업이 성공적으로 반환되는 동안 BinData 값을 비교하면 해독된 정수 값을 비교한 결과와 다른 결과가 반환될 수 있습니다.

클라이언트 측 자동 필드 레벨 암호화는 암호화된 필드에 대해 실행 시 부정확하거나 예기치 않은 결과를 반환하는 읽기 또는 쓰기 작업을 거부합니다. 전체 설명서 는 자동 암호화에 지원되는 작업을 참조하세요.

명시적(수동) 암호화를 수행하는 애플리케이션은 암호화된 필드에 대한 읽기/쓰기 작업을 실행하기 위한 지침으로 링크된 페이지를 참고할 수 있습니다.

클라이언트 측 필드 레벨 암호화로 암호화된 값이 포함된 collection에 대한 에 대한 쿼리는 기본 뷰 집계 파이프라인 또는 쿼리가 필드를 참고하는 경우 예기치 않거나 잘못된 결과를 반환할 수 있습니다. 클라이언트 측 필드 레벨 암호화로 암호화된 값이 포함된 collection에 대한 뷰를 만드는 경우 예기치 않거나 잘못된 결과의 위험을 완화하기 위해 암호화된 필드에서 작업을 피해야 합니다.

자동 클라이언트 측 필드 레벨 암호화로 구성된 4.2 이상 호환 드라이버는 자동 암호화 작업을 지원 했지만, 지원되지 않는 읽기 및 쓰기 작업의 경우 기본 지원 라이브러리가 뷰 카탈로그를 검사하여 지정된 collection을 뷰로 식별할 수 없습니다. 따라서 애플리케이션은 암호화된 필드가 있는 collection의 뷰에 대해 지원되지 않는 쿼리를 방지하기 위해 자동 클라이언트 측 필드 레벨 암호화 유효성 검사에 의존할 수 없습니다.

암호화된 값이 포함된 collection에 대한 뷰를 쿼리하기 위해 명시적(수동) 암호화를 사용하는 애플리케이션의 경우, 암호화된 필드에 대해 실행될 때 정상적인 동작 이 알려진 쿼리 연산자 만을 사용하여 쿼리를 구성하는 것이 좋습니다.

클라이언트 측 필드 레벨 암호화는 사용자 지정 데이터 정렬 또는 collection 기본 데이터 정렬 을 따르지 않습니다. 필드 수준 암호화는 필드 값을 숨기고 정상적인 데이터 정렬 동작을 방지합니다. 암호화된 필드에 대한 데이터 정렬에 민감한 쿼리는 예기치 않거나 잘못된 결과를 반환할 수 있습니다.

자동 클라이언트 측 필드 레벨 암호화로 구성된 4.2 이상 호환 드라이버는 자동 암호화 작업을 지원하지만, 지원되지 않는 읽기 및 쓰기 작업의 경우 기본 지원 라이브러리에서 collection 카탈로그를 자체 검사하여 기본 데이터 정렬을 식별할 수 없습니다. 따라서 애플리케이션은 데이터 정렬 기본값으로 암호화된 필드에 대한 쿼리를 방지하기 위해 클라이언트 측 필드 레벨 암호화 유효성 검사에 의존할 수 없습니다.

고유 인덱스 인덱스 키가 무작위로 암호화된 필드를 지정하는 경우 고유성을 보장 할 수 없습니다 .

무작위 알고리즘을 사용하여 암호화된 필드는 특정 입력이 주어지면 항상 다른 암호화된 값을 생성합니다. 서버는 해독된 값 자체가 고유하지 않더라도 암호화된 각 값을 고유한 것으로 간주합니다. 따라서 collection에는 인덱스 적용 고유 제약 조건이 있는 필드에 대해 해독된 값이 중복된 여러 문서가 포함될 수 있습니다.

자동 클라이언트 측 필드 레벨 암호화로 구성된 4.2+ 호환 드라이버는 지원되지 않는 읽기 및 쓰기 작업에 대한 자동 암호화 작업을 지원하지만, 기본 지원 라이브러리는 인덱스 카탈로그를 자체 검사하여 지정된 필드를 고유한 것으로 식별할 수 없습니다. 따라서 애플리케이션은 무작위로 암호화된 필드에 대한 고유 제약 조건 위반을 방지하기 위해 자동 클라이언트 측 필드 레벨 암호화 유효성 검사에 의존할 수 없습니다.

암호화된 필드에 샤드 키 를 지정 하거나 기존 샤드 키의 필드를 암호화하면 예기치 않거나 잘못된 샤딩 동작이 발생할 수 있습니다.

자동 클라이언트 측 필드 레벨 암호화로 구성된 4.2+ 호환 드라이버 는 자동 암호화 작업을 지원 했지만, 지원되지 않는 읽기 및 쓰기 작업의 경우 기본 지원 라이브러리는 샤딩 카탈로그 메타데이터를 인트로스펙션하여 샤드 키 필드를 식별할 수 없습니다. 따라서 애플리케이션은 샤드 키 필드의 암호화를 방지하기 위해 자동 필드 수준 암호화 유효성 검사에 의존할 수 없습니다.

자동 클라이언트 측 필드 레벨 암호화는 명령, 쿼리 연산자, 업데이트 연산자, 애그리게이션 단계 및 애그리게이션 표현식의 하위 집합을 지원합니다. 전체 설명서 는 자동 암호화에 지원되는 작업을 참조하세요.

← Queryable Encryption 제한