개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.07 00:11

MongoDBDriverClientEncryption::__construct와 관련하여 도움을 요청합니다.

목록
  • UX개발자 16시간 전 2025.05.07 00:11 새글
  • 2
    1
제가 MongoDBDriverClientEncryption::__construct를 사용하여 Client-Side Field Level Encryption(CS FLE) 구현을 하려고 하는데, __construct의 파라미터에 대해 혼란스럽습니다.

__construct는 다음과 같은 파라미터를 받을 수 있습니다.

* $client: MongoClient 인스턴스
* $keyVaultClient: KeyVaultClient 인스턴스
* $keyVaultNamespace: 키 버킷 이름스페이스
* $collectionName: 암호화할 컬렉션 이름
* $key: 암호화 키
* $keyAltName: 암호화 키의 대체 이름
* $keyRolloverInterval: 키 롤오버 간격
* $keyRolloverThresholdPercent: 키 롤오버 임계치
* $keyRolloverBatchSize: 키 롤오버 배치 크기
* $certPath: 인증서 경로
* $certAltNames: 인증서 대체 이름
* $allowInsecureEncryption: 암호화 허용

제가 이해하기 어려운 부분은 $keyVaultClient와 $keyVaultNamespace입니다.

$keyVaultClient는 KeyVaultClient 인스턴스를 받을 수 있습니다. 하지만, 이 인스턴스는 어디서 받을 수 있는지와 어떻게 생성하는지 혼란스럽습니다.

$keyVaultNamespace는 키 버킷 이름스페이스를 받을 수 있습니다. 하지만, 이 이름스페이스는 어디서 받을 수 있는지와 어떻게 생성하는지 잘 모르겠습니다.

제가 사용하는 MongoDB 버전은 4.4입니다. MongoDBDriverClientEncryption::__construct의 파라미터에 대한 자세한 설명과 예제를 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  16시간 전

    MongoDBDriverClientEncryption::__construct의 파라미라미터에 대한 설명입니다.

    $keyVaultClient는 Azure Key Vault와 연동하여 사용하는 KeyVaultClient 인스턴스를 받을 수 있습니다. KeyVaultClient 인스턴스를 생성하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    use MicrosoftAzureKeyVaultKeyVaultClient;
    
    
    
    $credential = new MicrosoftAzureKeyVaultAuthenticationDefaultAzureCredential();
    
    $client = new KeyVaultClient($credential);
    
    


    $keyVaultNamespace는 Azure Key Vault의 키 버킷 이름스페이스를 받을 수 있습니다. 키 버킷 이름스페이스를 생성하는 방법은 다음과 같습니다.

    1. Azure Portal로 이동하여 Azure Key Vault를 생성합니다.
    2. 생성된 Key Vault로 이동하여 "키 버킷"을 클릭합니다.
    3. "키 버킷"에 이름을 입력하고 "생성" 버튼을 클릭합니다.
    4. 생성된 키 버킷의 이름스페이스를 사용합니다.

    MongoDBDriverClientEncryption::__construct의 파라미터 예제는 다음과 같습니다.

    #hostingforum.kr
    php
    
    use MongoDBClientEncryption;
    
    
    
    $mongo = new MongoDBClient('mongodb://localhost:27017');
    
    $db = $mongo->test;
    
    $collection = $db->mycollection;
    
    
    
    $keyVaultClient = new KeyVaultClient(new DefaultAzureCredential());
    
    $keyVaultNamespace = 'https://mykeyvault.vault.azure.net/';
    
    
    
    $client = new ClientEncryption($collection, $keyVaultClient, $keyVaultNamespace);
    
    


    위 예제에서, $keyVaultClient는 Azure Key Vault와 연동하여 사용하는 KeyVaultClient 인스턴스를 생성하고, $keyVaultNamespace는 Azure Key Vault의 키 버킷 이름스페이스를 사용합니다.

    2025-05-07 00:12

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 17,333건 / 6 페이지

검색

게시물 검색