Mongo()
이 페이지의 내용
설명
Mongo(host, autoEncryptionOpts, api)
JavaScript 생성자를 사용하여
mongosh
또는 JavaScript 파일에서 데이터베이스 연결을 인스턴스화합니다.Mongo()
메서드에는 다음과 같은 매개변수가 있습니다.매개 변수유형설명host
문자열선택 사항입니다.
<host>
또는<host><:port>
형식의 호스트입니다.생략하면
Mongo()
는 기본 포트27017
에서 localhost 인터페이스에 대한 연결을 인스턴스화합니다.autoEncryptionOpts
문서선택 사항. 클라이언트 측 필드 레벨 암호화를 활성화하기 위한 구성 매개변수입니다.
autoEncryptionOpts
데이터베이스 연결의 기존 클라이언트 사이드 필드 수준 암호화 구성을 재정의합니다. 생략하면Mongo()
은(는) 현재 데이터베이스 연결의 클라이언트 사이드 필드 수준 암호화 구성을 상속합니다.사용법 및 구문에 대한 자세한 내용은
AutoEncryptionOpts
를 참조하세요.api
문서선택 사항입니다. Stable API를 활성화하기 위한 구성 옵션입니다.
사용법 및 구문에 대한 자세한 내용은
api
를 참조하세요.
팁
다음도 참조하세요.
Mongo.getDB()
개인정보 정책에 db.getMongo()
AutoEncryptionOpts
autoEncryptionOpts
문서는 클라이언트 사이드 필드 레벨 암호화에 대한 구성 옵션을 지정합니다. 데이터베이스 연결에 기존 클라이언트 사이드 필드 레벨 암호화 구성이 있는 경우 autoEncryptionOpts
를 지정하면 해당 구성이 재정의됩니다.
예를 들어 클라이언트 측 필드 레벨 암호화 명령줄 옵션으로 mongosh
를 시작하면 해당 연결에 대한 클라이언트 측 암호화가 활성화됩니다. Mongo()
를 사용하여 생성된 새 데이터베이스 연결은 Mongo()
에 autoEncryptionOpts
가 포함되지 않는 한 암호화 설정을 상속합니다.
autoEncryptionOpts
문서의 구문은 다음과 같습니다.
{ "keyVaultClient" : <object>, "keyVaultNamespace" : "<string>", "kmsProviders" : <object>, "schemaMap" : <object>, "bypassAutoEncryption" : <boolean> }
autoEncryptionOpts
문서는 다음 매개변수를 사용합니다.
매개 변수 | 유형 | 설명 | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
keyVaultClient | Mongo() 연결 객체입니다. | (선택 사항) 키 볼트 컬렉션을 호스팅하는 MongoDB cluster입니다. 클러스터를 가리키는
| ||||||||||||||||||||||||
keyVaultNamespace | 문자열 | (필수) 키 볼트 컬렉션의 전체 네임스페이스입니다. | ||||||||||||||||||||||||
kmsProviders | 문서 | (필수) 고객 마스터 키(CMK)를 관리하기 위해 클라이언트 사이드 필드 레벨 암호화에 사용되는 키 관리 서비스(KMS)입니다. 클라이언트 사이드 필드 레벨 암호화는 CMK를 사용하여 데이터 암호화 키를 암호화하고 해독합니다. 클라이언트 측 필드 레벨 암호화는 다음과 같은 KMS 제공자를 지원합니다. 가능하면
| ||||||||||||||||||||||||
schemaMap | 문서 | (선택 사항) JSON schema 초안 4 표준 구문 및 암호화별 키워드를 사용하여 지정된 자동 클라이언트 사이드 필드 수준 암호화 규칙입니다. 전체 문서는 암호화 스키마를 참조하세요. | ||||||||||||||||||||||||
bypassAutoEncryption | 부울 | (선택 사항) 자동 클라이언트 사이드 필드 수준 암호화 규칙을 우회하고 명시적(수동) 필드별 암호화를 수행하려면 true 를 지정합니다. | ||||||||||||||||||||||||
bypassQueryAnalysis | 부울 | (선택 사항) crypt_shared 라이브러리 없이 인덱스된 필드에 명시적 암호화를 사용하려면 true 를 지정합니다. 자세한 내용 은 Queryable Encryption을 위한 MongoClient 옵션을 참조하세요. |
api
api
매개변수는 stable API의 구성 옵션을 지정합니다. 다음 옵션을 사용하여 선택적 동작을 활성화 또는 비활성화할 수 있습니다.
옵션 | 유형 | 설명 |
---|---|---|
version | 문자열 | API 버전을 지정합니다. "1" 이(가) 현재 지원되는 유일한 버전입니다. |
strict | 부울 |
지정하지 않으면 기본값은 |
deprecationErrors | 부울 |
지정하지 않으면 기본값은 |
api
매개변수의 구문은 다음과 같습니다.
{ api: { version: <string>, strict: <boolean>, deprecationErrors: <boolean> } }
예제
MongoDB 클러스터에 연결
다음 작업은 mongosh
세션 내에서 새 연결 객체를 생성합니다.
cluster = Mongo("mongodb://mymongo.example.net:27017/?replicaSet=myMongoCluster")
mymongo.example.net:27017
클러스터와 상호 작용하려면 cluster
객체에 대해 작업을 실행합니다.
myDB = cluster.getDB("myDB"); //returns the database object myColl = myDB.getCollection("myColl"); // returns the collection object
클라이언트 측 암호화가 활성화된 클러스터에 연결하기
키:
줄 바꿈 없이 기본64-인코딩된 96-바이트 문자열을 생성합니다.
키를 로드하려면
mongosh
를 사용하세요.
export TEST_LOCAL_KEY=$(echo "$(head -c 96 /dev/urandom | base64 | tr -d '\n')") mongosh --nodb
다음 작업은 mongosh
세션 내에서 새 연결 객체를 생성합니다. AutoEncryptionOpts
옵션은 로컬로 관리되는 키를 사용하여 클라이언트 사이드 필드 수준 암호화를 활성화하는 데 필요한 옵션을 지정합니다.
var autoEncryptionOpts = { "keyVaultNamespace" : "encryption.__dataKeys", "kmsProviders" : { "local" : { "key" : BinData(0, process.env["TEST_LOCAL_KEY"]) } } } cluster = Mongo( "mongodb://mymongo.example.net:27017/?replicaSet=myMongoCluster", autoEncryptionOpts )
cluster
객체에 대해 작업을 실행하여 mymongo.example.net:27017
클러스터와 상호 작용하고 명시적 암호화를 수행합니다.
// returns the database object myDB = cluster.getDB("myDB"); // returns the collection object myColl = myDB.getCollection("myColl"); // returns object for managing data encryption keys keyVault = cluster.getKeyVault(); // returns object for explicit encryption/decryption clientEncryption = cluster.getClientEncryption();
클라이언트 사이드 필드 레벨 암호화 방법 의 전체 목록은 클라이언트 사이드 필드 레벨 암호화 방법을 참조하세요.
자동 클라이언트 측 암호화가 활성화된 클러스터에 연결
로컬로 관리되는 키 에 대한 클라이언트 사이드 필드 수준 암호화를 구성하려면 줄 바꿈 없이 기본64인코딩된 96바이트 문자열을 지정해야 합니다. 다음 작업은 명시된 요구 사항을 충족하는 키를 생성하여 mongosh
에 로드합니다.
TEST_LOCAL_KEY=$(echo "$(head -c 96 /dev/urandom | base64 | tr -d '\n')") mongosh --nodb --shell --eval "var TEST_LOCAL_KEY='$TEST_LOCAL_KEY'"
다음 작업은 mongosh
세션에서 새 연결 객체를 만듭니다. AutoEncryptionOpts
옵션은 hr.employees
컬렉션에서 자동 클라이언트 측 암호화를 활성화하는 데 필요한 옵션을 지정합니다.
var autoEncryptionOpts = { "keyVaultNamespace" : "encryption.dataKeys", "kmsProviders" : { "local" : { "key" : BinData(0,"BASE64-ENCODED-96-BYTE-LOCAL-KEY") } }, schemaMap : { "hr.employees" : { "bsonType": "object", "properties" : { "taxid" : { "encrypt" : { "keyId" : [UUID("bffb361b-30d3-42c0-b7a4-d24a272b72e3")], "bsonType" : "string", "algorithm" : "AEAD_AES_256_CBC_HMAC_SHA_512-Random" } }, "taxid-short": { "encrypt": { "keyId": [UUID("33408ee9-e499-43f9-89fe-5f8533870617")], "algorithm": "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", "bsonType": "string" } } } } } } cluster = Mongo( "mongodb://mymongo.example.net:27017/?replicaSet=myMongoCluster", autoEncryptionOpts )
cluster
객체에 대해 작업을 실행하여 mymongo.example.net:27017
클러스터와 상호 작용하고 자동 암호화를 활용합니다.
// returns the database object myDB = cluster.getDB("myDB"); // returns the collection object myColl = myDB.getCollection("myColl"); myColl.insertOne( { "name" : "J Doe", "taxid" : "123-45-6789", "taxid-short" : "6789" } )
지정된 자동 암호화 규칙은 지정된 데이터 암호화 키 및 알고리즘을 사용하여 taxid
및 taxid-short
필드를 암호화합니다. 올바른 KMS가 구성되고, 지정된 데이터 암호화 키에 액세스할 수 있는 클라이언트만 필드의 암호를 해독할 수 있습니다.
클라이언트 사이드 필드 레벨 암호화 방법 의 전체 목록은 클라이언트 사이드 필드 레벨 암호화 방법을 참조하세요.
Stable API를 활성화하여 클러스터에 연결
다음 작업은 mongosh
세션 내에서 새 연결 개체를 만듭니다. api
옵션은 Stable API V1을 활성화하고 사용자가 더 이상 사용되지 않는 명령 또는 Stable API 외부 명령을 실행할 수 없도록 지정합니다.
cluster = Mongo( "mongodb://mymongo.example.net:27017/?replicaSet=myMongoCluster", null, { api: { version: "1", strict: true, deprecationErrors: true } } )
mymongo.example.net:27017
클러스터와 상호 작용하려면 cluster
객체에 대한 작업을 실행하세요. Stable API 명령의 전체 목록은 Stable API 명령을 참조하세요.