Queryable Encryption 제한
이 페이지의 내용
Atlas Search
Queryable Encryption은 MongoDB Atlas Search와 호환되지 않습니다.
특정 제한 사항 미리보기
참고
Queryable Encryption에 대한 테크니컬 프리뷰 중에는 다음과 같은 제한 사항이 적용됩니다.
경합 요인
경합 요인은 동시 연결 수에 따라 성능을 조정하는 데 도움이 되는 설정입니다.
경합 요인은 변경할 수 없으며 암호화할 필드를 지정할 때만 설정할 수 있습니다. 기본값은 0
입니다.
수동 데이터 키 생성
암호화하려는 각 필드에 대해 고유한 데이터 암호화 키를 수동으로 생성해야 합니다. 향후 릴리스에서는 encryptedFieldsMap
에서 keyId
필드를 생략할 수 있으며 Queryable Encryption 호환 드라이버가 DEK 를 자동으로 생성합니다.
수동 압축
기술 미리 보기 중에 메타데이터 컬렉션이 1 GB 를 초과하면 인덱스 압축 을 수동으로 실행 해야 합니다. 향후 출시하다 에서는 메타데이터 컬렉션이 정의된 크기를 초과할 때 압축 이 자동으로 실행 됩니다.
압축은 암호화된 필드와 연결된 메타데이터 컬렉션의 크기를 줄이고 성능을 향상시키는 프로세스입니다.
encryptedFieldsMap
수정
테크니컬 프리뷰 중에 MongoClient
으)로 전달된 encryptedFieldsMap
을(를) 수정하지 마세요. 이로 인해 쿼리할 때 예기치 않은 잘못된 동작이 발생할 수 있습니다.
읽기 및 쓰기 작업 지원
mongod
는 암호화된 BinData
만 저장하고 BinData
값에 대해 암호화된 필드를 지정하는 집계 표현식 또는 쿼리 연산자를 적용합니다. 표현식 또는 연산자가 BinData
필드를 지원할 수 있지만, 동일한 표현식 또는 연산자를 해독된 값과 비교했을 때 결과 값이 부정확하거나 예기치 않은 값이 나올 수 있습니다. 표현식 또는 연산자가 BinData
값을 지원하지 않는 경우 mongod
에서 오류가 발생합니다.
토폴로지 지원
복제본 세트 및 샤딩된 클러스터가 지원됩니다.
독립형 배포는 지원되지 않습니다.
세컨더리 읽기는 지원되지 않음
샤딩
메타데이터 컬렉션은 샤딩되어서는 안 됩니다.
샤드 키는 암호화된 필드일 수 없음
CRUD
Queryable Encryption은 배치 작업을 지원하지 않습니다. 다음 작업은 지원되지 않습니다: -
db.collection.insertMany()
-db.collection.updateMany()
-db.collection.deleteMany()
Queryable Encryption은
db.collection.findAndModify()
인수를 제한합니다. -fields
은 허용되지 않습니다. -new
는 false여야 합니다.
컬렉션
Queryable Encryption는 새 컬렉션만 지원합니다. 기존 컬렉션에 Queryable Encryption을 추가하거나 제거할 수 없습니다.
jsonSchema
에encrypt
키워드가 포함된 경우 Queryable Encryption 컬렉션을 생성할 때jsonSchema
~db.createCollection()
를 지정할 수 없습니다. 동일한 collection에서 클라이언트 측 필드 레벨 암호화를 Queryable Encryption과 함께 사용할 수 없습니다.jsonSchema에 암호화된 필드에 대한 유효성 검사가 포함되어 있지 않은 한
encryptedFields
(과)와jsonSchema
(을)를 모두db.createCollection()
(으)로 지정할 수 있습니다.Queryable Encryption는 암호화되지 않은 collection에서의 자동 마이그레이션을 지원하지 않습니다. 문서를 하나씩 가져와야 합니다.
Queryable Encryption은 Client-Side 필드 레벨 암호화로 암호화된 collection에서의 마이그레이션을 지원하지 않습니다. 문서를 해독하고 하나씩 가져와야 합니다.
Queryable Encryption는 뷰, time series 컬렉션 또는 고정 사이즈 컬렉션을 지원하지 않습니다.
암호화된 필드가 있는 컬렉션의 이름은 변경할 수 없습니다.
jsonSchema
유효성 검사는 비활성화할 수 없습니다.collection 정보에
encryptedFields
이(가) 있는 경우 자동 암호화 문서 유효성 검사.validationLevel
을none
으로 설정할 수 없습니다.validationAction
을warn
으로 설정할 수 없습니다.
제거 collection
Queryable Encryption 이 구성되지 않은
MongoClient
에서 컬렉션을 삭제해도 연결된 메타데이터 컬렉션은 삭제되지 않습니다.``mongod`` 메타데이터 collection을 삭제하기 전에 암호화된 필드가 있는 collection을 삭제하면 경고를 기록합니다.
팁
Queryable Encryption 호환 드라이버는 Queryable Encryption용으로 구성된 MongoClient
를 사용할 때 collection을 삭제할 때 메타데이터 collection을 삭제합니다.
컬렉션 생성
당신은 항상 Queryable Encryption에 사용할 collection을 명시적으로 생성해야 합니다. 암시적 collection 생성을 사용하면 필요한 인덱스와 메타데이터 컬렉션 생성되지 않으므로 쿼리 성능이 저하됩니다.
쿼리 유형
encryptedFieldsMap
에서 컬렉션을 만들 때 필드에 대해 지정하는 쿼리 형식은 변경할 수 없습니다. 기존 필드에 새 쿼리 유형을 추가할 수 없으며 기존 쿼리 유형은 변경할 수 없습니다.
암호화된 필드 이름
암호화된 필드 이름은 변경할 수 없습니다. 예를 들어 ssn
(을)를 암호화할 필드로 지정하면 $rename
의 필드 이름을 taxPayerID
(으)로 지정할 수 없습니다.
조회수
애플리케이션은 자동 암호화 유효성 검사에 의존하여 암호화된 필드가 있는 컬렉션의 뷰에 대해 지원되지 않는 쿼리를 방지할 수 없습니다.
Queryable Encryption으로 암호화된 값을 포함하는 컬렉션의 뷰에 대한 쿼리는 기본 뷰 집계 파이프라인 또는 쿼리가 암호화된 필드를 참조하는 경우 예기치 않거나 잘못된 결과를 반환할 수 있습니다. Queryable Encryption으로 암호화된 값이 포함된 컬렉션에서 뷰를 만드는 경우 예기치 않거나 잘못된 결과가 발생할 위험을 줄이려면 암호화된 필드에 대한 작업을 피하세요.
뷰에 대한 자세한 내용은 뷰를 참조하세요.
데이터 정렬
Queryable Encryption은 사용자가 지정한 데이터 정렬 또는 컬렉션 기본 데이터 정렬을 무시합니다. 암호화는 필드 값을 가리고 정상적인 데이터 정렬 동작을 방지합니다. 암호화된 필드에 대한 데이터 정렬에 민감한 쿼리는 예기치 않거나 잘못된 결과를 반환할 수 있습니다.
데이터 정렬에 대한 자세한 내용은 데이터 정렬 문서에서 확인하세요.
자동 암호화를 위해 구성된 MongoDB 버전 6.0 이상 호환 드라이버는 자동 암호화 작업을 지원 하지만, 지원되지 않는 읽기 및 쓰기 작업의 경우 기본 지원 라이브러리에서 collection 카탈로그를 자체 검사하여 기본 데이터 정렬을 식별할 수 없습니다. 따라서 애플리케이션은 데이터 정렬 기본값으로 암호화된 필드에 대한 쿼리를 방지하기 위해 Queryable Encryption 유효성 검사에 의존할 수 없습니다.
Unique Indexes
Unique indexes 인덱스 키가 암호화된 필드를 지정하는 경우 고유성을 보장 할 수 없습니다 .
Queryable Encryption은 특정 입력이 주어지면 항상 다른 암호화된 값을 생성합니다. 서버는 해독된 값이 고유하지 않더라도 암호화된 각 값을 고유한 것으로 간주합니다. 따라서 collection에는 인덱스 적용 고유 제약 조건이 있는 필드에 대해 중복된 일반 텍스트 값이 있는 여러 문서가 포함될 수 있습니다.
자동 암호화를 위해 구성된 MongoDB 버전 6.0 이상 호환 드라이버는 지원되지 않는 읽기 및 쓰기 작업에 대한 자동 암호화 작업을 지원했지만, 기본 지원 라이브러리는 인덱스 카탈로그를 자체 검사하여 지정된 필드를 고유한 것으로 식별할 수 없습니다. 애플리케이션은 무작위로 암호화된 필드에서 고유 제약 조건 위반을 방지하기 위해 자동 암호화 유효성 검사에 의존할 수 없습니다.
_id 필드
_id
필드는 MongoDB에서 자동 생성된 값에 의존하기 때문에 Queryable Encryption을 사용하여 암호화하도록 지시할 수 없습니다.
읽기/쓰기 쿼리 지원
자동 암호화는 명령, 쿼리 연산자, 업데이트 연산자, 애그리게이션 단계 및 애그리게이션 표현식의 하위 집합을 지원합니다. 전체 설명서 는 자동 암호화에 지원되는 작업을 참조하세요.