Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / / / /

CSFLE 전용 몽고클라이언트 옵션

이 페이지의 내용

  • 개요
  • 자동 암호화 옵션
  • 예시

MongoClient 인스턴스에 대한 CSFLE(클라이언트 측 필드 레벨 암호화) 관련 구성 옵션에 대한 정보를 확인합니다.

autoEncryptionOpts 객체를 MongoClient 인스턴스에 전달하여 CSFLE 관련 옵션을 지정합니다.

다음 표에서는 autoEncryptionOpts 객체의 구조를 설명합니다.

Parameter
유형
필수 사항
설명
keyVaultClient
MongoClient
No

키 볼트 컬렉션을 호스팅하는 MongoDB 인스턴스에 연결하도록 구성된 MongoClient 인스턴스입니다.

keyVaultClient 옵션을 생략하면 autoEncryptionOpts 구성을 포함하는 MongoClient 인스턴스에 지정된 MongoDB 인스턴스가 키 볼트 collection의 호스트로 사용됩니다.

키 볼트 컬렉션에 학습 보려면 키 볼트 컬렉션을 참조하세요 .

keyVaultNamespace
문자열
키 볼트 컬렉션 의 전체 네임스페이스 입니다.
kmsProviders
객체

고객 마스터 키(CMK)를 관리하기 위해 클라이언트 측 필드 레벨 암호화에서 사용하는 키 관리 시스템(KMS)입니다.

kmsProviders 객체에 대해 자세히 알아보려면 CSFLE KMS 제공자를 참조하세요.

고객 마스터 키에 대해 자세히 알아보려면 키 및 키 볼트를 참조하세요.

tlsOptions
객체
No

키 관리 시스템 제공자 이름을 TLS 구성 옵션에 매핑하는 객체입니다.

TLS 옵션에 대해 자세히 알아보려면 TLS 옵션을 참조하세요 .

TLS에 대해 자세히 알아보려면 TLS/SSL(전송 암호화)을 참조하세요.

schemaMap
객체
No

암호화 스키마입니다.

암호화 스키마를 구성하는 방법을 알아보려면 암호화 스키마를 참조하세요.

암호화 스키마에 대한 전체 문서는 CSFLE 암호화 스키마를 참조하세요.

bypassAutoEncryption
부울
No

자동 클라이언트 측 필드 레벨 암호화 규칙을 우회하고 명시적 암호화를 수행하려면 true 를 지정합니다. bypassAutoEncryption 은 자동 암호 해독을 비활성화하지 않습니다.

이 옵션에 대해 자세히 알아보려면 자동 암호 해독을 참조하세요.

autoEncryptionOpts 을 사용하여 MongoClient 인스턴스를 구성하는 방법을 보여주는 코드 스니펫을 보려면 드라이버에 해당하는 탭을 선택합니다.

var autoEncryptionOpts =
{
"keyVaultNamespace" : "<database>.<collection>",
"kmsProviders" : { ... },
"schemaMap" : { ... }
}
cluster = Mongo(
"<Your Connection String>",
autoEncryptionOpts
);

환경 변수

가능하면 에 제공된 자격 kmsProviders 증명 을 환경 변수로 mongosh 정의한 --eval 다음 옵션을 사용하여 에 전달하는 것이 좋습니다. 이렇게 하면 자격 증명 이 로그에 유출될 가능성을 최소화할 수 있습니다.

var clientSettings = MongoClientSettings.FromConnectionString(_connectionString);
var autoEncryptionOptions = new AutoEncryptionOptions(
keyVaultNamespace: keyVaultNamespace,
kmsProviders: kmsProviders,
schemaMap: schemaMap,
extraOptions: extraOptions);
clientSettings.AutoEncryptionOptions = autoEncryptionOptions;
var client = new MongoClient(clientSettings);
autoEncryptionOpts := options.AutoEncryption().
SetKmsProviders(provider.Credentials()).
SetKeyVaultNamespace(keyVaultNamespace).
SetSchemaMap(schemaMap).
SetExtraOptions(extraOptions)
client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri).SetAutoEncryptionOptions(autoEncryptionOpts))
MongoClientSettings clientSettings = MongoClientSettings.builder()
.applyConnectionString(new ConnectionString("mongodb://localhost:27017"))
.autoEncryptionSettings(AutoEncryptionSettings.builder()
.keyVaultNamespace(keyVaultNamespace)
.kmsProviders(kmsProviders)
.schemaMap(schemaMap)
.extraOptions(extraOptions)
.build())
.build();
MongoClient mongoClient = MongoClients.create(clientSettings);
const secureClient = new MongoClient(connectionString, {
useNewUrlParser: true,
useUnifiedTopology: true,
monitorCommands: true,
autoEncryption: {
keyVaultNamespace,
kmsProviders,
schemaMap: patientSchema,
extraOptions: extraOptions,
},
});
fle_opts = AutoEncryptionOpts(
kms_providers,
key_vault_namespace,
schema_map=patient_schema,
**extra_options
)
client = MongoClient(connection_string, auto_encryption_opts=fle_opts)

돌아가기

지원되는 작업