AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.

MongoDB\Database::createEncryptedCollection()

버전 1.16에 추가 되었습니다.

MongoDB\Database::createEncryptedCollection()

암호화된 collection을 명시적으로 생성합니다.

function createEncryptedCollection( string $collectionName, MongoDB\Driver\ClientEncryption $clientEncryption, string $kmsProvider, ?array $masterKey, array $options): array

이 메서드는 keyId 이 null인 암호화됨 모든 필드에 대한 데이터 키를 자동으로 생성합니다. 데이터 키는 MongoDB\ 드라이버\ClientEncryption::createDataKey() 와 제공된 $kmsProvider 및 $masterKey 매개 변수를 사용하여 생성됩니다. 컬렉션 생성 결과와 함께 수정된 encryptedFields 옵션의 복사본이 반환됩니다.

이 메서드는 기존 MongoDB\Client 객체의 자동 암호화 설정에 영향을 주지 않습니다. 사용자는 createEncryptedCollection() 을 사용하여 암호화된 collection을 생성한 후 자동 암호화를 구성해야 합니다.

$collectionName : 문자열
생성할 암호화된 collection의 이름입니다.
$clientEncryption : MongoDB\ 드라이버\ClientEncryption
데이터 키를 만드는 데 사용되는 ClientEncryption 객체입니다.
$kmsProvider : 문자열
KMS 제공자 (예 'local', ' Amazon Web Services')는 새 데이터 키를 암호화하는 데 사용됩니다. 이는 MongoDB\ 드라이버\ClientEncryption::createDataKey()의 $kmsProvider 매개 변수에 해당합니다.
$masterKey : 배열|null

KMS-새 데이터 키를 암호화하는 데 사용할 특정 키 옵션입니다. 이는 masterKey MongoDB\ 드라이버\ClientEncryption::createDataKey()의옵션에 해당합니다.

$kmsProvider 이 'local'인 경우 null 이어야 합니다.

$options : 배열

원하는 옵션을 지정하는 배열입니다.

$options 매개변수는 MongoDB\Database::createCollection() 과 동일한 옵션을 지원합니다. encryptedFields 옵션은 필수입니다.

튜플(즉, 생성 명령의 결과 문서( typeMap 옵션에 따른 배열 또는 객체)와 수정된 encryptedFields 옵션을 포함하는 요소를 2개 가진 배열).

데이터 키 또는 collection을 생성하는 동안 오류가 발생한 경우 MongoDB\Exception\CreateEncryptedCollectionException 를 반환합니다. 원래의 예외와 수정된 encryptedFields 옵션은 각각 getPrevious() 및 getEncryptedFields() 메서드를 통해 액세스할 수 있습니다.

MongoDB\Exception\InvalidArgumentException 매개변수 또는 옵션의 구문 분석과 관련된 오류의 경우입니다.

다음 예제에서는 test 데이터베이스에 암호화된 users collection을 생성합니다. users 컬렉션 내의 ssn 필드는 암호화된 문자열 필드로 정의됩니다.

<?php // 96-byte master key used to encrypt/decrypt data keysdefine('LOCAL_MASTERKEY', '...'); $client = new MongoDB\Client; $clientEncryption = $client->createClientEncryption([ 'keyVaultNamespace' => 'keyvault.datakeys', 'kmsProviders' => [ 'local' => ['key' => new MongoDB\BSON\Binary(base64_decode(LOCAL_MASTERKEY), 0)], ],); [$result, $encryptedFields] = $client->test->createEncryptedCollection( 'users', $clientEncryption, 'local', null, [ 'encryptedFields' => [ 'fields' => [ ['path' => 'ssn', 'bsonType' => 'string', 'keyId' => null], ], ], ]);

암호화됨 컬렉션 성공적으로 생성된 경우 에는$result 명령의 응답 문서 포함되고 create 에는 $encryptedFields['fields'][0]['keyId'] 하위 유형이 인 MongoDB\ BSON\Binary 객체 4 포함됩니다(즉, UUID).

그런 다음 수정된 encryptedFields 옵션을 사용하여 자동 암호화가 활성화된 새 MongoDB\Client 를 구성할 수 있습니다.

<?php $encryptedClient = new MongoDB\Client( null, // Connection string [], // Additional connection string options [ 'autoEncryption' => [ 'keyVaultNamespace' => 'keyvault.datakeys', 'kmsProviders' => [ 'local' => ['key' => new MongoDB\BSON\Binary(base64_decode(LOCAL_MASTERKEY), 0)], ], 'encryptedFieldsMap' => [ 'test.users' => $encryptedFields, ], ], ]);