ClientEncryption.decrypt(encryptedValue)ClientEncryption.decrypt()encryptionValue현재 데이터베이스 연결이 암호화에 사용되는 키 관리 서비스( KMS ) 및 키 볼트에 대한 액세스 로 구성된 경우encryptionValue는 를 해독합니다.반환합니다: 암호 해독된 값입니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
- MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
ClientEncryption.decrypt 의 구문은 다음과 같습니다:
clientEncryption = db.getMongo().getClientEncryption() clientEncryption.decrypt(encryptedValue)
은 encryptedValue 클라이언트 사이드 필드 수준 암호화 사용하여 생성된 하위 6 binary data 유형 를 가진 객체 여야 합니다.
행동
올바른 키 관리 서비스( KMS ) 및 Key Vault에 액세스 있는 데이터베이스 연결 에서 실행된 읽기 configured ClientEncryption.encrypt() decrypt() 작업은 를 사용하여 암호화됨 Binary 필드 값을 6 자동으로 해독할 수 있습니다. 클라이언트는 문서 필드 에 저장되지 않은 하위 유형 값을 해독하기 위해 만 사용하면 됩니다.
데이터베이스 연결에서 클라이언트 측 필드 레벨 암호화 활성화
mongosh ClientEncryption 메서드를 사용하려면 사용 중 암호화 활성화된 데이터베이스 연결이 필요합니다. 사용 중 암호화 활성화된 상태에서 현재 데이터베이스 연결이 시작되지 않은 경우 다음 중 하나를 수행합니다.
mongosh명령줄 옵션을 사용하여 필요한 옵션과의 연결을 설정합니다. 명령줄 옵션은 CMK 관리 위한 Amazon Web Services KMS 제공자 만 지원 .
예시
다음 예에서는 클라이언트 사이드 필드 수준 암호화 구성을 위해 로컬로 managed KMS를 사용합니다.
암호화된 연결 만들기
mongosh 시작
실행:
mongosh --nodb --nodb데이터베이스 에 연결하지 않음을 의미합니다.키 string생성
기본 64 96바이트 string 을 생성합니다.
const TEST_LOCAL_KEY = require("crypto").randomBytes(96).toString("base64") 암호화 옵션 객체 만들기
클라이언트 사이드 필드 수준 암호화 옵션 객체 를 만들려면 이전 단계의
TEST_LOCAL_KEYstring 을 사용합니다.var autoEncryptionOpts = { "keyVaultNamespace" : "encryption.__dataKeys", "kmsProviders" : { "local" : { "key" : BinData(0, TEST_LOCAL_KEY) } } } 암호화된 클라이언트 객체 만들기
암호화됨 클라이언트 객체 를 만들려면
Mongo()생성자를 사용합니다.mongodb://myMongo.example.netURI를 대상 클러스터 의 연결 string URI 로 바꿉니다. 예를 예시 다음과 같습니다.encryptedClient = Mongo( "mongodb://myMongo.example.net:27017/?replSetName=myMongo", autoEncryptionOpts )
데이터 복호화
ClientEncryption 객체 검색하고 ClientEncryption.decrypt() 메서드를 사용하여 로 암호화됨 값을 ClientEncryption.encrypt() 해독합니다.
clientEncryption = encryptedClient.getClientEncryption(); clientEncryption.decrypt(BinData(6,"AmTi2H3xaEk8u9+jlFNaLLkC3Q/+kmwDbbWrq+h9nuv9W+u7A5a0UnpULBNZH+Q21fAztPpU09wpKPrju9dKfpN1Afpj1/ZhFcH6LYZOWSBBOAuUNjPLxMNSYOOuITuuYWo="))
결과 예시
성공적인 하면 가 해독된 값을decrypt() 반환합니다.
"123-45-6789"
자세히 알아보기
클라이언트 사이드 필드 레벨 암호화가 활성화된 상태에서 MongoDB 연결을 시작하는 방법에 대한 전체 설명서는 Mongo() 를 참조하세요.