개발자 Q&A

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

2025.06.08 20:04

MongoDBDriverManager::createClientEncryption 사용 시 오류 해결 방법을 알려주세요.

목록
  • C언어전사 10일 전 2025.06.08 20:04 인기
  • 130
    1
제가 MongoDBDriverManager::createClientEncryption를 사용하여 클라이언트 암호화 키를 생성하였으나, 다음과 같은 오류 메시지가 발생합니다.

java

com.mongodb.MongoException: Key not found in key vault.



이 오류는 key vault에 등록된 키가 없거나, 키가 만료된 경우에 발생하는 것 같습니다. 그러나 key vault에 키가 등록되어 있고, 만료도 아닌 경우에도 발생합니다.

createClientEncryption 메소드를 사용할 때, 어떤 설정이나 옵션을 추가하거나 변경해야 하는지 알려주시겠어요?

또한, key vault를 생성하고, 키를 등록하는 방법을 알려주시면 감사하겠습니다.

이러한 오류를 해결하기 위한 방법을 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  10일 전



    MongoDBDriverManager::createClientEncryption를 사용할 때 오류가 발생하는 경우, 다음과 같은 설정이나 옵션을 확인해 보시길 바랍니다.

    1. 키 버킷 이름: 키 버킷 이름이 정확하게 입력되었는지 확인하세요. 키 버킷 이름이 잘못 입력된 경우, 키가 등록되지 않습니다.
    2. 키 이름: 키 이름이 정확하게 입력되었는지 확인하세요. 키 이름이 잘못 입력된 경우, 키가 등록되지 않습니다.
    3. 키 버킷 권한: 키 버킷에 대한 권한이 올바르게 설정되었는지 확인하세요. 키 버킷에 대한 권한이 부족한 경우, 키를 등록할 수 없습니다.
    4. 키 만료: 키 만료일이 올바르게 설정되었는지 확인하세요. 만료된 키는 사용할 수 없습니다.
    5. 키 버킷 위치: 키 버킷이 올바르게 위치한지 확인하세요. 키 버킷이 다른 데이터베이스에 위치한 경우, 키를 등록할 수 없습니다.

    키 버킷을 생성하고, 키를 등록하는 방법은 다음과 같습니다.

    1. 키 버킷 생성: MongoDB 데이터베이스에서 키 버킷을 생성합니다. 키 버킷은 데이터베이스의 `system.keys` 컬렉션에 저장됩니다.

    #hostingforum.kr
    java
    
    MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
    
    MongoDatabase database = mongoClient.getDatabase("mydatabase");
    
    MongoCollection keyVaultCollection = database.getCollection("system.keys");
    
    Document keyVaultDocument = new Document("keyVault", new Document("key", "mykey").append("value", "myvalue"));
    
    keyVaultCollection.insertOne(keyVaultDocument);
    
    

    2. 키 등록: 키 버킷에 키를 등록합니다. 키는 데이터베이스의 `system.keys` 컬렉션에 저장됩니다.
    #hostingforum.kr
    java
    
    Document keyDocument = new Document("key", "mykey").append("value", "myvalue");
    
    keyVaultCollection.insertOne(keyDocument);
    
    

    3. 키 버킷 권한 설정: 키 버킷에 대한 권한을 설정합니다. 권한은 데이터베이스의 `system.keys` 컬렉션에 저장됩니다.
    #hostingforum.kr
    java
    
    Document permissionDocument = new Document("keyVault", new Document("key", "mykey").append("value", "myvalue"));
    
    permissionDocument.append("read", true).append("write", true);
    
    keyVaultCollection.insertOne(permissionDocument);
    
    

    4. 키 만료 설정: 키 만료일을 설정합니다. 만료일은 데이터베이스의 `system.keys` 컬렉션에 저장됩니다.
    #hostingforum.kr
    java
    
    Document expirationDocument = new Document("keyVault", new Document("key", "mykey").append("value", "myvalue"));
    
    expirationDocument.append("expires", new Date(System.currentTimeMillis() + 86400000));
    
    keyVaultCollection.insertOne(expirationDocument);
    
    

    이러한 설정이나 옵션을 확인하고, 키 버킷을 생성하고, 키를 등록하는 방법을 따라하면 오류를 해결할 수 있습니다.

    2025-06-08 20:05

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

검색

게시물 검색