버전 7.0에 추가 되었습니다.:
ClientEncryption.createEncryptedCollection(dbName, collName, clientEncOpts)ClientEncryption.createEncryptedCollectiondbName로 지정된 데이터베이스에collName로 지정된 암호화된 collection을 만듭니다.
팁
mongosh에서는 현재 데이터베이스의 컨텍스트에서 실행되고 keyId 값이 지정되지 않은 경우 데이터 키를 자동으로 생성하는 헬퍼 db.createEncryptedCollection()를 사용할 수 있습니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
- MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
ClientEncryption.createEncryptedCollection 의 구문은 다음과 같습니다:
clientEncryption = db.getMongo().getClientEncryption() clientEncryption.createEncryptedCollection( dbName, collName, { provider: kmsProviderName, createCollectionOptions: encryptedFieldsMap, masterKey: customerMasterKeyCredentials } )
명령 필드
createEncryptedCollection 는 다음 필드를 사용합니다.
필드 | 유형 | 필요성 | 설명 |
|---|---|---|---|
| 문자열 | 필수 사항 | 암호화할 데이터베이스의 이름입니다. |
| 문자열 | 필수 사항 | 암호화할 collection의 이름입니다. |
| 문서 | 필수 사항 | 암호화된 collection을 구성하는 옵션입니다. |
| 문자열 | 필수 사항 | 고객 마스터 키를 저장하는 데 사용하는 KMS입니다. |
| 문서 | 필수 사항 | 암호화할 필드입니다. |
| 문서 | 옵션 | KMS 제공자가 AWS, GCP 또는 Azure 인 경우 마스터 키에 액세스 데 필요한 자격 증명 및 키 식별 필드를 지정합니다. KMS 제공자가 |
행동
mongosh 클라이언트 사이드 필드 수준 및 Queryable Encryption 메서드를 사용하려면 클라이언트 사이드 암호화를 위해 구성된 데이터베이스 연결이 필요합니다. 클라이언트 사이드 필드 수준 암호화가 활성화된 상태에서 현재 데이터베이스 연결이 시작되지 않은 경우 다음 중 하나를 수행합니다.
mongosh의Mongo()생성자를 사용하여 필요한 클라이언트 사이드 필드 수준 암호화 옵션과 연결을 설정합니다.Mongo()메서드는 고객 마스터 키(CMK) 관리를 위해 다음과 같은 키 관리 서비스(KMS) 공급자를 지원합니다.
or
예시
다음 예에서는 Queryable Encryption 구성을 위해 로컬로 관리되는 KMS를 사용합니다.
암호화된 연결 만들기
mongosh 시작
실행:
mongosh --nodb --nodb데이터베이스 에 연결하지 않음을 의미합니다.키 string생성
기본 64 96바이트 string 을 생성합니다.
const TEST_LOCAL_KEY = require("crypto").randomBytes(96).toString("base64") 암호화 옵션 객체 만들기
클라이언트 사이드 필드 수준 암호화 옵션 객체 를 만들려면 이전 단계의
TEST_LOCAL_KEYstring 을 사용합니다.var autoEncryptionOpts = { "keyVaultNamespace" : "encryption.__dataKeys", "kmsProviders" : { "local" : { "key" : BinData(0, TEST_LOCAL_KEY) } } } 암호화된 클라이언트 객체 만들기
암호화됨 클라이언트 객체 를 만들려면
Mongo()생성자를 사용합니다.mongodb://myMongo.example.netURI를 대상 클러스터 의 연결 string URI 로 바꿉니다. 예를 예시 다음과 같습니다.encryptedClient = Mongo( "mongodb://myMongo.example.net:27017/?replSetName=myMongo", autoEncryptionOpts )
암호화된 컬렉션 만들기
암호화된 enc.users collection을 생성합니다.
clientEncryption = encryptedClient.getClientEncryption(); let result = clientEncryption.createEncryptedCollection( "enc", "users", { provider: "local", createCollectionOptions: encryptedFieldsMap, masterKey: {} // masterKey is optional when provider is local } )
자세히 알아보기
클라이언트 사이드 필드 레벨 암호화가 활성화된 상태에서 MongoDB 연결을 시작하는 방법에 대한 전체 설명서는
Mongo()를 참조하세요.암호화됨 컬렉션 만들고 쿼리 방법에 대한 전체 예시는 Queryable Encryption 빠른 시작을 참조하세요.