Crie seu aplicativo habilitado para Queryable Encryption
Visão geral
Este guia mostra como criar um aplicação que implemente o Queryable Encryption para criptografar e descriptografar automaticamente os campos de documento .
Depois de concluir as etapas deste guia, você deve ter um aplicação cliente em funcionamento que esteja pronto para inserir documentos com campos criptografados com sua Chave mestre do cliente.
Antes de começar
Certifique-se de ter concluído as seguintes tarefas de pré-requisito antes de criar seu aplicativo:
Instale um driver e dependências compatíveis com a Queryable Encryption
Instalar e configurar uma biblioteca de Queryable Encryption
Código completo do aplicativo
Para ver o código completo do aplicação de amostra , selecione sua linguagem de programação no seletor de idioma.
Cada repositório de aplicação de amostra inclui um arquivo README.md
que você pode usar para saber como configurar seu ambiente e executar o aplicação.
Procedimento
Selecione a guia do seu provedor de chaves abaixo.
Atribuir variáveis de aplicação
Os exemplos de código neste tutorial usam as seguintes variáveis para executar o fluxo de trabalho com Queryable Encryption:
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
keyVaultDatabaseName
ekeyVaultCollectionName
, separados por um período.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" const kmsProviderName = "<Your KMS Provider Name>"; const uri = process.env.MONGODB_URI; // Your connection URI const keyVaultDatabaseName = "encryption"; const keyVaultCollectionName = "__keyVault"; const keyVaultNamespace = `${keyVaultDatabaseName}.${keyVaultCollectionName}`; const encryptedDatabaseName = "medicalRecords"; const encryptedCollectionName = "patients";
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina
keyVaultDatabaseName
como"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina
keyVaultCollectionName
como"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina
keyVaultNamespace
para um novo objetoCollectionNamespace
cujo nome são os valores das variáveiskeyVaultDatabaseName
ekeyVaultCollectionName
, separados por um ponto.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina
encryptedDatabaseName
como"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina
encryptedCollectionName
como"patients"
.uri - URI de conexão de implantação do MongoDB. Defina seu URI de conexão no arquivo
appsettings.json
ou substitua o valor diretamente.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" const string kmsProviderName = "<your KMS provider name>"; const string keyVaultDatabaseName = "encryption"; const string keyVaultCollectionName = "__keyVault"; var keyVaultNamespace = CollectionNamespace.FromFullName($"{keyVaultDatabaseName}.{keyVaultCollectionName}"); const string encryptedDatabaseName = "medicalRecords"; const string encryptedCollectionName = "patients"; var appSettings = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build(); var uri = appSettings["MongoDbUri"];
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
keyVaultDatabaseName
ekeyVaultCollectionName
, separados por um período.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" kmsProviderName := "<KMS provider name>" uri := os.Getenv("MONGODB_URI") // Your connection URI keyVaultDatabaseName := "encryption" keyVaultCollectionName := "__keyVault" keyVaultNamespace := keyVaultDatabaseName + "." + keyVaultCollectionName encryptedDatabaseName := "medicalRecords" encryptedCollectionName := "patients"
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
keyVaultDatabaseName
ekeyVaultCollectionName
, separados por um período.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" String kmsProviderName = "<KMS provider name>"; String uri = QueryableEncryptionHelpers.getEnv("MONGODB_URI"); // Your connection URI String keyVaultDatabaseName = "encryption"; String keyVaultCollectionName = "__keyVault"; String keyVaultNamespace = keyVaultDatabaseName + "." + keyVaultCollectionName; String encryptedDatabaseName = "medicalRecords"; String encryptedCollectionName = "patients";
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
keyVaultDatabaseName
ekeyVaultCollectionName
, separados por um período.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" const kmsProviderName = "<Your KMS Provider Name>"; const uri = process.env.MONGODB_URI; // Your connection URI const keyVaultDatabaseName = "encryption"; const keyVaultCollectionName = "__keyVault"; const keyVaultNamespace = `${keyVaultDatabaseName}.${keyVaultCollectionName}`; const encryptedDatabaseName = "medicalRecords"; const encryptedCollectionName = "patients";
kms_provider_name - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.key_vault_database_name - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.key_vault_collection_name - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.key_vault_namespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
key_vault_database_name
ekey_vault_collection_name
, separados por um período.encryption_database_name - O banco de banco de dados do MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryption_collection_name - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
# KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" kms_provider_name = "<KMS provider name>" uri = os.environ['MONGODB_URI'] # Your connection URI key_vault_database_name = "encryption" key_vault_collection_name = "__keyVault" key_vault_namespace = f"{key_vault_database_name}.{key_vault_collection_name}" encrypted_database_name = "medicalRecords" encrypted_collection_name = "patients"
Importante
Permissões de namespace da coleção de cofre de chaves
A collection de cofre de chaves está no namespace encryption.__keyVault
. Certifique-se de que o trigger de banco de dados que sua aplicação usa para se conectar ao MongoDB tenha permissões de ReadWrite nesse namespace.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Adicione suas credenciais KMS
Crie uma variável contendo suas credenciais KMS com a seguinte estrutura. Use o ID da chave de acesso e a chave de acesso secreta que você usou na etapa 2.2 quando criou um usuário Amazon Web Services IAM.
kmsProviderCredentials = { aws: { accessKeyId: process.env["AWS_ACCESS_KEY_ID"], // Your AWS access key ID secretAccessKey: process.env["AWS_SECRET_ACCESS_KEY"], // Your AWS secret access key }, };
var kmsProviderCredentials = new Dictionary<string, IReadOnlyDictionary<string, object>>(); var kmsOptions = new Dictionary<string, object> { { "accessKeyId", _appSettings["Aws:AccessKeyId"] }, // Your AWS access key ID { "secretAccessKey", _appSettings["Aws:SecretAccessKey"] } // Your AWS secret access key }; kmsProviderCredentials.Add("aws", kmsOptions);
kmsProviderCredentials := map[string]map[string]interface{}{ "aws": { "accessKeyId": os.Getenv("AWS_ACCESS_KEY_ID"), // AWS access key ID "secretAccessKey": os.Getenv("AWS_SECRET_ACCESS_KEY"), // AWS secret access key }, }
Map<String, Object> kmsProviderDetails = new HashMap<>(); kmsProviderDetails.put("accessKeyId", getEnv("AWS_ACCESS_KEY_ID")); // Your AWS access key ID kmsProviderDetails.put("secretAccessKey", getEnv("AWS_SECRET_ACCESS_KEY")); // Your AWS secret access key Map<String, Map<String, Object>> kmsProviderCredentials = new HashMap<String, Map<String, Object>>(); kmsProviderCredentials.put("aws", kmsProviderDetails);
kmsProviders = { aws: { accessKeyId: process.env.AWS_ACCESS_KEY_ID, // Your AWS access key ID secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY, // Your AWS secret access key }, };
kms_provider_credentials = { "aws": { "accessKeyId": os.environ['AWS_ACCESS_KEY_ID'], # Your AWS access key ID "secretAccessKey": os.environ['AWS_SECRET_ACCESS_KEY'] # Your AWS secret access key } }
Importante
Lembrete: autenticar com funções IAM em produção
Para utilizar um papelIAM do em vez de um usuário IAM para autenticar seu aplicação, especifique um objeto vazio para suas credenciais em seu objeto do provedor de KMS. Isto instrui o condutor a recuperar automaticamente as credenciais do ambiente:
kmsProviders = { aws: { } };
kmsProviderCredentials.Add("aws", new Dictionary<string, object>);
kmsProviderCredentials := map[string]map[string]interface{}{ "aws": { }, }
kmsProviderCredentials.put("aws", new HashMap<>());
kmsProviders = { aws: { } };
kms_provider_credentials = { "aws": { } }
Adicionar suas credenciais da CMK
Crie uma variável contendo suas credenciais da Chave Mestre do Cliente com a seguinte estrutura. Use o ARN e a região que você registrou na etapa 1.3 quando criou uma CMK.
customerMasterKeyCredentials = { key: process.env["AWS_KEY_ARN"], // Your AWS Key ARN region: process.env["AWS_KEY_REGION"], // Your AWS Key Region };
var customerMasterKeyCredentials = new BsonDocument { { "key", _appSettings["Aws:KeyArn"] }, // Your AWS Key ARN { "region", _appSettings["Aws:KeyRegion"] } // Your AWS Key Region };
customerMasterKeyCredentials := map[string]string{ "key": os.Getenv("AWS_KEY_ARN"), // Your AWS Key ARN "region": os.Getenv("AWS_KEY_REGION"), // Your AWS Key Region }
BsonDocument customerMasterKeyCredentials = new BsonDocument(); customerMasterKeyCredentials.put("provider", new BsonString(kmsProviderName)); customerMasterKeyCredentials.put("key", new BsonString(getEnv("AWS_KEY_ARN"))); // Your AWS Key ARN customerMasterKeyCredentials.put("region", new BsonString(getEnv("AWS_KEY_REGION"))); // Your AWS Key Region
customerMasterKeyCredentials = { key: process.env.AWS_KEY_ARN, // Your AWS Key ARN region: process.env.AWS_KEY_REGION, // Your AWS Key Region };
customer_master_key_credentials = { "key": os.environ['AWS_KEY_ARN'], # Your AWS Key ARN "region": os.environ['AWS_KEY_REGION'] # Your AWS Key Region }
Definir opções de criptografia automática
Observação
Opções de criptografia automática
As opções de criptografia automática fornecem informações de configuração para a Biblioteca compartilhada de criptografia automática, que modifica o comportamento do aplicativo ao acessar campos criptografados.
Para saber mais sobre a Biblioteca compartilhada de criptografia automática, consulte a página Biblioteca compartilhada de criptografia automática .
Crie um objeto autoEncryptionOptions
com as seguintes opções:
O namespace da sua coleção do Key Vault
O objeto
kmsProviderCredentials
, que contém suas credenciais do Amazon Web Services KMS
const autoEncryptionOptions = { keyVaultNamespace: keyVaultNamespace, kmsProviders: kmsProviderCredentials, };
Crie um objeto AutoEncryptionOptions
com as seguintes opções:
O namespace da sua coleção do Key Vault
O objeto
kmsProviderCredentials
, que contém suas credenciais do Amazon Web Services KMSO objeto
extraOptions
, que contém o caminho para sua Biblioteca Compartilhada de Criptografia Automática
var extraOptions = new Dictionary<string, object> { { "cryptSharedLibPath", _appSettings["CryptSharedLibPath"] } // Path to your Automatic Encryption Shared Library }; var autoEncryptionOptions = new AutoEncryptionOptions( keyVaultNamespace, kmsProviderCredentials, extraOptions: extraOptions);
Crie um objeto AutoEncryption
com as seguintes opções:
O namespace da sua coleção do Key Vault
O objeto
kmsProviderCredentials
, que contém suas credenciais do Amazon Web Services KMSO objeto
cryptSharedLibraryPath
, que contém o caminho para sua Biblioteca Compartilhada de Criptografia Automática
cryptSharedLibraryPath := map[string]interface{}{ "cryptSharedLibPath": os.Getenv("SHARED_LIB_PATH"), // Path to your Automatic Encryption Shared Library } autoEncryptionOptions := options.AutoEncryption(). SetKeyVaultNamespace(keyVaultNamespace). SetKmsProviders(kmsProviderCredentials). SetExtraOptions(cryptSharedLibraryPath)
Crie um objeto AutoEncryptionSettings
com as seguintes opções:
O namespace da sua coleção do Key Vault
O objeto
kmsProviderCredentials
, que contém suas credenciais do Amazon Web Services KMSO objeto
extraOptions
, que contém o caminho para sua Biblioteca Compartilhada de Criptografia Automática
Map<String, Object> extraOptions = new HashMap<String, Object>(); extraOptions.put("cryptSharedLibPath", getEnv("SHARED_LIB_PATH")); // Path to your Automatic Encryption Shared Library AutoEncryptionSettings autoEncryptionSettings = AutoEncryptionSettings.builder() .keyVaultNamespace(keyVaultNamespace) .kmsProviders(kmsProviderCredentials) .extraOptions(extraOptions) .build();
Crie um objeto autoEncryptionOptions
com as seguintes opções:
O namespace da sua coleção do Key Vault
O objeto
kmsProviders
, que contém suas credenciais do Amazon Web Services KMSO objeto
sharedLibraryPathOptions
, que contém o caminho para sua Biblioteca Compartilhada de Criptografia Automática
const extraOptions = { cryptSharedLibPath: process.env.SHARED_LIB_PATH, // Path to your Automatic Encryption Shared Library }; const autoEncryptionOptions = { keyVaultNamespace, kmsProviders, extraOptions, };
Crie um objeto AutoEncryptionOpts
com as seguintes opções:
O objeto
kms_provider_credentials
, que contém suas credenciais do Amazon Web Services KMSO namespace da sua coleção do Key Vault
O caminho para sua biblioteca compartilhada de criptografia automática
auto_encryption_options = AutoEncryptionOpts( kms_provider_credentials, key_vault_namespace, crypt_shared_lib_path=os.environ['SHARED_LIB_PATH'] # Path to your Automatic Encryption Shared Library> )
Criar um cliente para configurar uma coleção criptografada
Para criar um cliente utilizado para criptografar e descriptografar dados em sua coleção, instancie um novo MongoClient
usando seu URI de conexão e suas opções de criptografia automática.
const encryptedClient = Mongo(uri, autoEncryptionOptions);
IMPORTANTE: se você estiver usando o .NET/C# Driver versão 3.0 ou posterior, deverá adicionar o seguinte código ao seu aplicação antes de instanciar um novo MongoClient
:
MongoClientSettings.Extensions.AddAutoEncryption(); // .NET/C# Driver v3.0 or later only
Instancie um novo MongoClient
usando seu URI de conexão e as opções de criptografia automática :
var clientSettings = MongoClientSettings.FromConnectionString(uri); clientSettings.AutoEncryptionOptions = qeHelpers.GetAutoEncryptionOptions( keyVaultNamespace, kmsProviderCredentials); var encryptedClient = new MongoClient(clientSettings);
encryptedClient, err := mongo.Connect( context.TODO(), options.Client().ApplyURI(uri).SetAutoEncryptionOptions(autoEncryptionOptions), ) if err != nil { panic(fmt.Sprintf("Unable to connect to MongoDB: %v\n", err)) } defer func() { _ = encryptedClient.Disconnect(context.TODO()) }()
MongoClientSettings clientSettings = MongoClientSettings.builder() .applyConnectionString(new ConnectionString(uri)) .autoEncryptionSettings(autoEncryptionSettings) .build(); try (MongoClient encryptedClient = MongoClients.create(clientSettings)) {
const encryptedClient = new MongoClient(uri, { autoEncryption: autoEncryptionOptions, });
encrypted_client = MongoClient( uri, auto_encryption_opts=auto_encryption_options)
Atribuir variáveis de aplicação
Os exemplos de código neste tutorial usam as seguintes variáveis para executar o fluxo de trabalho com Queryable Encryption:
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
keyVaultDatabaseName
ekeyVaultCollectionName
, separados por um período.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" const kmsProviderName = "<Your KMS Provider Name>"; const uri = process.env.MONGODB_URI; // Your connection URI const keyVaultDatabaseName = "encryption"; const keyVaultCollectionName = "__keyVault"; const keyVaultNamespace = `${keyVaultDatabaseName}.${keyVaultCollectionName}`; const encryptedDatabaseName = "medicalRecords"; const encryptedCollectionName = "patients";
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina
keyVaultDatabaseName
como"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina
keyVaultCollectionName
como"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina
keyVaultNamespace
para um novo objetoCollectionNamespace
cujo nome são os valores das variáveiskeyVaultDatabaseName
ekeyVaultCollectionName
, separados por um ponto.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina
encryptedDatabaseName
como"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina
encryptedCollectionName
como"patients"
.uri - URI de conexão de implantação do MongoDB. Defina seu URI de conexão no arquivo
appsettings.json
ou substitua o valor diretamente.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" const string kmsProviderName = "<your KMS provider name>"; const string keyVaultDatabaseName = "encryption"; const string keyVaultCollectionName = "__keyVault"; var keyVaultNamespace = CollectionNamespace.FromFullName($"{keyVaultDatabaseName}.{keyVaultCollectionName}"); const string encryptedDatabaseName = "medicalRecords"; const string encryptedCollectionName = "patients"; var appSettings = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build(); var uri = appSettings["MongoDbUri"];
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
keyVaultDatabaseName
ekeyVaultCollectionName
, separados por um período.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" kmsProviderName := "<KMS provider name>" uri := os.Getenv("MONGODB_URI") // Your connection URI keyVaultDatabaseName := "encryption" keyVaultCollectionName := "__keyVault" keyVaultNamespace := keyVaultDatabaseName + "." + keyVaultCollectionName encryptedDatabaseName := "medicalRecords" encryptedCollectionName := "patients"
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
keyVaultDatabaseName
ekeyVaultCollectionName
, separados por um período.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" String kmsProviderName = "<KMS provider name>"; String uri = QueryableEncryptionHelpers.getEnv("MONGODB_URI"); // Your connection URI String keyVaultDatabaseName = "encryption"; String keyVaultCollectionName = "__keyVault"; String keyVaultNamespace = keyVaultDatabaseName + "." + keyVaultCollectionName; String encryptedDatabaseName = "medicalRecords"; String encryptedCollectionName = "patients";
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
keyVaultDatabaseName
ekeyVaultCollectionName
, separados por um período.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" const kmsProviderName = "<Your KMS Provider Name>"; const uri = process.env.MONGODB_URI; // Your connection URI const keyVaultDatabaseName = "encryption"; const keyVaultCollectionName = "__keyVault"; const keyVaultNamespace = `${keyVaultDatabaseName}.${keyVaultCollectionName}`; const encryptedDatabaseName = "medicalRecords"; const encryptedCollectionName = "patients";
kms_provider_name - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.key_vault_database_name - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.key_vault_collection_name - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.key_vault_namespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
key_vault_database_name
ekey_vault_collection_name
, separados por um período.encryption_database_name - O banco de banco de dados do MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryption_collection_name - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
# KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" kms_provider_name = "<KMS provider name>" uri = os.environ['MONGODB_URI'] # Your connection URI key_vault_database_name = "encryption" key_vault_collection_name = "__keyVault" key_vault_namespace = f"{key_vault_database_name}.{key_vault_collection_name}" encrypted_database_name = "medicalRecords" encrypted_collection_name = "patients"
Importante
Permissões de namespace da coleção de cofre de chaves
A collection de cofre de chaves está no namespace encryption.__keyVault
. Certifique-se de que o trigger de banco de dados que sua aplicação usa para se conectar ao MongoDB tenha permissões de ReadWrite nesse namespace.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Adicione suas credenciais KMS
Crie uma variável contendo suas credenciais KMS com a seguinte estrutura. Use as credenciais do Azure Key Vault que você registrou no quando registrou seu aplicação no Azure.
kmsProviderCredentials = { azure: { tenantId: process.env["AZURE_TENANT_ID"], // Your Azure tenant ID clientId: process.env["AZURE_CLIENT_ID"], // Your Azure client ID clientSecret: process.env["AZURE_CLIENT_SECRET"], // Your Azure client secret }, };
var kmsProviderCredentials = new Dictionary<string, IReadOnlyDictionary<string, object>>(); var kmsOptions = new Dictionary<string, object> { { "tenantId", _appSettings["Azure:TenantId"] }, // Your Azure tenant ID { "clientId", _appSettings["Azure:ClientId"] }, // Your Azure client ID { "clientSecret", _appSettings["Azure:ClientSecret"] } // Your Azure client secret }; kmsProviderCredentials.Add("azure", kmsOptions);
kmsProviderCredentials := map[string]map[string]interface{}{ "azure": { "tenantId": os.Getenv("AZURE_TENANT_ID"), // Azure tenant ID "clientId": os.Getenv("AZURE_CLIENT_ID"), // Azure client ID "clientSecret": os.Getenv("AZURE_CLIENT_SECRET"), // Azure client secret }, }
Map<String, Object> kmsProviderDetails = new HashMap<>(); kmsProviderDetails.put("tenantId", getEnv("AZURE_TENANT_ID")); // Your Azure tenant ID kmsProviderDetails.put("clientId", getEnv("AZURE_CLIENT_ID")); // Your Azure client ID kmsProviderDetails.put("clientSecret", getEnv("AZURE_CLIENT_SECRET")); // Your Azure client secret Map<String, Map<String, Object>> kmsProviderCredentials = new HashMap<String, Map<String, Object>>(); kmsProviderCredentials.put("azure", kmsProviderDetails);
kmsProviders = { azure: { tenantId: process.env.AZURE_TENANT_ID, // Your Azure tenant ID clientId: process.env.AZURE_CLIENT_ID, // Your Azure client ID clientSecret: process.env.AZURE_CLIENT_SECRET, // Your Azure client secret }, };
kms_provider_credentials = { "azure": { "tenantId": os.environ['AZURE_TENANT_ID'], # Your Azure tenant ID "clientId": os.environ['AZURE_CLIENT_ID'], # Your Azure client ID "clientSecret": os.environ['AZURE_CLIENT_SECRET'] # Your Azure client secret } }
Adicionar suas credenciais da CMK
Crie uma variável contendo suas credenciais da Chave Mestre do Cliente com a seguinte estrutura. Use os detalhes da CMK que você registrou ao criar uma CMK.
customerMasterKeyCredentials = { keyVaultEndpoint: process.env["AZURE_KEY_VAULT_ENDPOINT"], // Your Azure Key Vault Endpoint keyName: process.env["AZURE_KEY_NAME"], // Your Azure Key Name };
var customerMasterKeyCredentials = new BsonDocument { { "keyVaultEndpoint", _appSettings["Azure:KeyVaultEndpoint"] }, // Your Azure Key Vault Endpoint { "keyName", _appSettings["Azure:KeyName"] } // Your Azure Key Name };
customerMasterKeyCredentials := map[string]string{ "keyVaultEndpoint": os.Getenv("AZURE_KEY_VAULT_ENDPOINT"), // Your Azure Key Vault Endpoint "keyName": os.Getenv("AZURE_KEY_NAME"), // Your Azure Key Name }
BsonDocument customerMasterKeyCredentials = new BsonDocument(); customerMasterKeyCredentials.put("provider", new BsonString(kmsProviderName)); customerMasterKeyCredentials.put("keyName", new BsonString(getEnv("AZURE_KEY_NAME"))); // Your Azure Key Vault Endpoint customerMasterKeyCredentials.put("keyVaultEndpoint", new BsonString(getEnv("AZURE_KEY_VAULT_ENDPOINT"))); // Your Azure Key Name
customerMasterKeyCredentials = { keyVaultEndpoint: process.env.AZURE_KEY_VAULT_ENDPOINT, // Your Azure Key Vault Endpoint keyName: process.env.AZURE_KEY_NAME, // Your Azure Key Name };
customer_master_key_credentials = { "keyName": os.environ['AZURE_KEY_NAME'], # Your Azure key name "keyVaultEndpoint": os.environ['AZURE_KEY_VAULT_ENDPOINT'] # Your Azure key vault endpoint }
Criar um cliente de criptografia
Para criar um cliente para criptografar e descriptografar dados em coleções criptografadas, instancie um novo MongoClient
usando seu URI de conexão e opções de criptografia automática .
const encryptedClient = Mongo(uri, autoEncryptionOptions);
IMPORTANTE: se você estiver usando o .NET/C# Driver versão 3.0 ou posterior, deverá adicionar o seguinte código ao seu aplicação antes de instanciar um novo MongoClient
:
MongoClientSettings.Extensions.AddAutoEncryption(); // .NET/C# Driver v3.0 or later only
Instancie um novo MongoClient
usando seu URI de conexão e as opções de criptografia automática :
var clientSettings = MongoClientSettings.FromConnectionString(uri); clientSettings.AutoEncryptionOptions = qeHelpers.GetAutoEncryptionOptions( keyVaultNamespace, kmsProviderCredentials); var encryptedClient = new MongoClient(clientSettings);
encryptedClient, err := mongo.Connect( context.TODO(), options.Client().ApplyURI(uri).SetAutoEncryptionOptions(autoEncryptionOptions), ) if err != nil { panic(fmt.Sprintf("Unable to connect to MongoDB: %v\n", err)) } defer func() { _ = encryptedClient.Disconnect(context.TODO()) }()
MongoClientSettings clientSettings = MongoClientSettings.builder() .applyConnectionString(new ConnectionString(uri)) .autoEncryptionSettings(autoEncryptionSettings) .build(); try (MongoClient encryptedClient = MongoClients.create(clientSettings)) {
const encryptedClient = new MongoClient(uri, { autoEncryption: autoEncryptionOptions, });
encrypted_client = MongoClient( uri, auto_encryption_opts=auto_encryption_options)
Atribuir variáveis de aplicação
Os exemplos de código neste tutorial usam as seguintes variáveis para executar o fluxo de trabalho com Queryable Encryption:
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
keyVaultDatabaseName
ekeyVaultCollectionName
, separados por um período.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" const kmsProviderName = "<Your KMS Provider Name>"; const uri = process.env.MONGODB_URI; // Your connection URI const keyVaultDatabaseName = "encryption"; const keyVaultCollectionName = "__keyVault"; const keyVaultNamespace = `${keyVaultDatabaseName}.${keyVaultCollectionName}`; const encryptedDatabaseName = "medicalRecords"; const encryptedCollectionName = "patients";
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina
keyVaultDatabaseName
como"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina
keyVaultCollectionName
como"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina
keyVaultNamespace
para um novo objetoCollectionNamespace
cujo nome são os valores das variáveiskeyVaultDatabaseName
ekeyVaultCollectionName
, separados por um ponto.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina
encryptedDatabaseName
como"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina
encryptedCollectionName
como"patients"
.uri - URI de conexão de implantação do MongoDB. Defina seu URI de conexão no arquivo
appsettings.json
ou substitua o valor diretamente.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" const string kmsProviderName = "<your KMS provider name>"; const string keyVaultDatabaseName = "encryption"; const string keyVaultCollectionName = "__keyVault"; var keyVaultNamespace = CollectionNamespace.FromFullName($"{keyVaultDatabaseName}.{keyVaultCollectionName}"); const string encryptedDatabaseName = "medicalRecords"; const string encryptedCollectionName = "patients"; var appSettings = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build(); var uri = appSettings["MongoDbUri"];
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
keyVaultDatabaseName
ekeyVaultCollectionName
, separados por um período.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" kmsProviderName := "<KMS provider name>" uri := os.Getenv("MONGODB_URI") // Your connection URI keyVaultDatabaseName := "encryption" keyVaultCollectionName := "__keyVault" keyVaultNamespace := keyVaultDatabaseName + "." + keyVaultCollectionName encryptedDatabaseName := "medicalRecords" encryptedCollectionName := "patients"
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
keyVaultDatabaseName
ekeyVaultCollectionName
, separados por um período.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" String kmsProviderName = "<KMS provider name>"; String uri = QueryableEncryptionHelpers.getEnv("MONGODB_URI"); // Your connection URI String keyVaultDatabaseName = "encryption"; String keyVaultCollectionName = "__keyVault"; String keyVaultNamespace = keyVaultDatabaseName + "." + keyVaultCollectionName; String encryptedDatabaseName = "medicalRecords"; String encryptedCollectionName = "patients";
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
keyVaultDatabaseName
ekeyVaultCollectionName
, separados por um período.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" const kmsProviderName = "<Your KMS Provider Name>"; const uri = process.env.MONGODB_URI; // Your connection URI const keyVaultDatabaseName = "encryption"; const keyVaultCollectionName = "__keyVault"; const keyVaultNamespace = `${keyVaultDatabaseName}.${keyVaultCollectionName}`; const encryptedDatabaseName = "medicalRecords"; const encryptedCollectionName = "patients";
kms_provider_name - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.key_vault_database_name - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.key_vault_collection_name - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.key_vault_namespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
key_vault_database_name
ekey_vault_collection_name
, separados por um período.encryption_database_name - O banco de banco de dados do MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryption_collection_name - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
# KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" kms_provider_name = "<KMS provider name>" uri = os.environ['MONGODB_URI'] # Your connection URI key_vault_database_name = "encryption" key_vault_collection_name = "__keyVault" key_vault_namespace = f"{key_vault_database_name}.{key_vault_collection_name}" encrypted_database_name = "medicalRecords" encrypted_collection_name = "patients"
Importante
Permissões de namespace da coleção de cofre de chaves
A collection de cofre de chaves está no namespace encryption.__keyVault
. Certifique-se de que o trigger de banco de dados que sua aplicação usa para se conectar ao MongoDB tenha permissões de ReadWrite nesse namespace.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Adicione suas credenciais KMS
Crie uma variável contendo suas credenciais KMS com a seguinte estrutura.
kmsProviderCredentials = { gcp: { email: process.env["GCP_EMAIL"], // Your GCP email privateKey: process.env["GCP_PRIVATE_KEY"], // Your GCP private key }, };
var kmsProviderCredentials = new Dictionary<string, IReadOnlyDictionary<string, object>>(); var kmsOptions = new Dictionary<string, object> { { "email", _appSettings["Gcp:Email"] }, // Your GCP email { "privateKey", _appSettings["Gcp:PrivateKey"] } // Your GCP private key }; kmsProviderCredentials.Add("gcp", kmsOptions);
kmsProviderCredentials := map[string]map[string]interface{}{ "gcp": { "email": os.Getenv("GCP_EMAIL"), // GCP email "privateKey": os.Getenv("GCP_PRIVATE_KEY"), // GCP private key }, }
Map<String, Object> kmsProviderDetails = new HashMap<>(); kmsProviderDetails.put("email", getEnv("GCP_EMAIL")); // Your GCP email kmsProviderDetails.put("privateKey", getEnv("GCP_PRIVATE_KEY")); // Your GCP private key Map<String, Map<String, Object>> kmsProviderCredentials = new HashMap<String, Map<String, Object>>(); kmsProviderCredentials.put("gcp", kmsProviderDetails);
kmsProviders = { gcp: { email: process.env.GCP_EMAIL, // Your GCP email privateKey: process.env.GCP_PRIVATE_KEY, // Your GCP private key }, };
kms_provider_credentials = { "gcp": { "email": os.environ['GCP_EMAIL'], # Your GCP email "privateKey": os.environ['GCP_PRIVATE_KEY'] # Your GCP private key } }
Adicionar suas credenciais da CMK
Crie uma variável contendo suas credenciais da Chave Mestre do Cliente com a seguinte estrutura. Use as credenciais que você registrou ao criar uma CMK.
customerMasterKeyCredentials = { projectId: process.env["GCP_PROJECT_ID"], // Your GCP Project ID location: process.env["GCP_LOCATION"], // Your GCP Key Location keyRing: process.env["GCP_KEY_RING"], // Your GCP Key Ring keyName: process.env["GCP_KEY_NAME"], // Your GCP Key Name };
var customerMasterKeyCredentials = new BsonDocument { { "projectId", _appSettings["Gcp:ProjectId"] }, // Your GCP Project ID { "location", _appSettings["Gcp:Location"] }, // Your GCP Key Location { "keyRing", _appSettings["Gcp:KeyRing"] }, // Your GCP Key Ring { "keyName", _appSettings["Gcp:KeyName"] } // Your GCP Key Name };
customerMasterKeyCredentials := map[string]string{ "projectId": os.Getenv("GCP_PROJECT_ID"), // Your GCP Project ID "location": os.Getenv("GCP_LOCATION"), // Your GCP Key Location "keyRing": os.Getenv("GCP_KEY_RING"), // Your GCP Key Ring "keyName": os.Getenv("GCP_KEY_NAME"), // Your GCP Key Name }
BsonDocument customerMasterKeyCredentials = new BsonDocument(); customerMasterKeyCredentials.put("provider", new BsonString(kmsProviderName)); customerMasterKeyCredentials.put("projectId", new BsonString(getEnv("GCP_PROJECT_ID"))); // Your GCP Project ID customerMasterKeyCredentials.put("location", new BsonString(getEnv("GCP_LOCATION"))); // Your GCP Key Location customerMasterKeyCredentials.put("keyRing", new BsonString(getEnv("GCP_KEY_RING"))); // Your GCP Key Ring customerMasterKeyCredentials.put("keyName", new BsonString(getEnv("GCP_KEY_NAME"))); // Your GCP Key Name
customerMasterKeyCredentials = { projectId: process.env.GCP_PROJECT_ID, // Your GCP Project ID location: process.env.GCP_LOCATION, // Your GCP Key Location keyRing: process.env.GCP_KEY_RING, // Your GCP Key Ring keyName: process.env.GCP_KEY_NAME, // Your GCP Key Name };
customer_master_key_credentials = { "projectId": os.environ['GCP_PROJECT_ID'], # Your GCP email "location": os.environ['GCP_LOCATION'], # Your GCP private key "keyRing": os.environ['GCP_KEY_RING'], # Your GCP private key "keyName": os.environ['GCP_KEY_NAME'] # Your GCP private key }
Criar um cliente de criptografia
Para criar um cliente para criptografar e descriptografar dados em coleções criptografadas, instancie um novo MongoClient
usando seu URI de conexão e opções de criptografia automática .
const encryptedClient = Mongo(uri, autoEncryptionOptions);
IMPORTANTE: se você estiver usando o .NET/C# Driver versão 3.0 ou posterior, deverá adicionar o seguinte código ao seu aplicação antes de instanciar um novo MongoClient
:
MongoClientSettings.Extensions.AddAutoEncryption(); // .NET/C# Driver v3.0 or later only
Instancie um novo MongoClient
usando seu URI de conexão e as opções de criptografia automática :
var clientSettings = MongoClientSettings.FromConnectionString(uri); clientSettings.AutoEncryptionOptions = qeHelpers.GetAutoEncryptionOptions( keyVaultNamespace, kmsProviderCredentials); var encryptedClient = new MongoClient(clientSettings);
encryptedClient, err := mongo.Connect( context.TODO(), options.Client().ApplyURI(uri).SetAutoEncryptionOptions(autoEncryptionOptions), ) if err != nil { panic(fmt.Sprintf("Unable to connect to MongoDB: %v\n", err)) } defer func() { _ = encryptedClient.Disconnect(context.TODO()) }()
MongoClientSettings clientSettings = MongoClientSettings.builder() .applyConnectionString(new ConnectionString(uri)) .autoEncryptionSettings(autoEncryptionSettings) .build(); try (MongoClient encryptedClient = MongoClients.create(clientSettings)) {
const encryptedClient = new MongoClient(uri, { autoEncryption: autoEncryptionOptions, });
encrypted_client = MongoClient( uri, auto_encryption_opts=auto_encryption_options)
Atribuir variáveis de aplicação
Os exemplos de código neste tutorial usam as seguintes variáveis para executar o fluxo de trabalho com Queryable Encryption:
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
keyVaultDatabaseName
ekeyVaultCollectionName
, separados por um período.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" const kmsProviderName = "<Your KMS Provider Name>"; const uri = process.env.MONGODB_URI; // Your connection URI const keyVaultDatabaseName = "encryption"; const keyVaultCollectionName = "__keyVault"; const keyVaultNamespace = `${keyVaultDatabaseName}.${keyVaultCollectionName}`; const encryptedDatabaseName = "medicalRecords"; const encryptedCollectionName = "patients";
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina
keyVaultDatabaseName
como"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina
keyVaultCollectionName
como"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina
keyVaultNamespace
para um novo objetoCollectionNamespace
cujo nome são os valores das variáveiskeyVaultDatabaseName
ekeyVaultCollectionName
, separados por um ponto.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina
encryptedDatabaseName
como"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina
encryptedCollectionName
como"patients"
.uri - URI de conexão de implantação do MongoDB. Defina seu URI de conexão no arquivo
appsettings.json
ou substitua o valor diretamente.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" const string kmsProviderName = "<your KMS provider name>"; const string keyVaultDatabaseName = "encryption"; const string keyVaultCollectionName = "__keyVault"; var keyVaultNamespace = CollectionNamespace.FromFullName($"{keyVaultDatabaseName}.{keyVaultCollectionName}"); const string encryptedDatabaseName = "medicalRecords"; const string encryptedCollectionName = "patients"; var appSettings = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build(); var uri = appSettings["MongoDbUri"];
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
keyVaultDatabaseName
ekeyVaultCollectionName
, separados por um período.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" kmsProviderName := "<KMS provider name>" uri := os.Getenv("MONGODB_URI") // Your connection URI keyVaultDatabaseName := "encryption" keyVaultCollectionName := "__keyVault" keyVaultNamespace := keyVaultDatabaseName + "." + keyVaultCollectionName encryptedDatabaseName := "medicalRecords" encryptedCollectionName := "patients"
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
keyVaultDatabaseName
ekeyVaultCollectionName
, separados por um período.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" String kmsProviderName = "<KMS provider name>"; String uri = QueryableEncryptionHelpers.getEnv("MONGODB_URI"); // Your connection URI String keyVaultDatabaseName = "encryption"; String keyVaultCollectionName = "__keyVault"; String keyVaultNamespace = keyVaultDatabaseName + "." + keyVaultCollectionName; String encryptedDatabaseName = "medicalRecords"; String encryptedCollectionName = "patients";
kmsProviderName - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.keyVaultDatabaseName - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.keyVaultCollectionName - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.keyVaultNamespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
keyVaultDatabaseName
ekeyVaultCollectionName
, separados por um período.encryptionDatabaseName - O banco de banco de dados MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryptionCollectionName - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
// KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" const kmsProviderName = "<Your KMS Provider Name>"; const uri = process.env.MONGODB_URI; // Your connection URI const keyVaultDatabaseName = "encryption"; const keyVaultCollectionName = "__keyVault"; const keyVaultNamespace = `${keyVaultDatabaseName}.${keyVaultCollectionName}`; const encryptedDatabaseName = "medicalRecords"; const encryptedCollectionName = "patients";
kms_provider_name - O KMS que você usa para armazenar sua Chave Mestre do Cliente. Defina isso como seu provedor de chaves:
"aws"
,"azure"
,"gcp"
ou"kmip"
.uri - URI de conexão do sistema do MongoDB . Defina seu URI de conexão na variável de ambiente
MONGODB_URI
ou substitua o valor diretamente.key_vault_database_name - O banco de banco de dados MongoDB onde suas chaves de criptografia de dados (DEKs) serão armazenadas. Defina isso como
"encryption"
.key_vault_collection_name - A coleção no MongoDB onde seus DEKs serão armazenados. Defina isso como
"__keyVault"
.key_vault_namespace - O namespace no MongoDB onde seus DEKs serão armazenados. Defina isso para os valores das variáveis
key_vault_database_name
ekey_vault_collection_name
, separados por um período.encryption_database_name - O banco de banco de dados do MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"medicalRecords"
.encryption_collection_name - A coleção no MongoDB onde seus dados criptografados serão armazenados. Defina isso como
"patients"
.
Você pode declarar essas variáveis usando o seguinte código:
# KMS provider name should be one of the following: "aws", "gcp", "azure", "kmip" or "local" kms_provider_name = "<KMS provider name>" uri = os.environ['MONGODB_URI'] # Your connection URI key_vault_database_name = "encryption" key_vault_collection_name = "__keyVault" key_vault_namespace = f"{key_vault_database_name}.{key_vault_collection_name}" encrypted_database_name = "medicalRecords" encrypted_collection_name = "patients"
Importante
Permissões de namespace da coleção de cofre de chaves
A collection de cofre de chaves está no namespace encryption.__keyVault
. Certifique-se de que o trigger de banco de dados que sua aplicação usa para se conectar ao MongoDB tenha permissões de ReadWrite nesse namespace.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Dica
Variáveis de ambiente
O código de exemplo neste tutorial faz referência a variáveis de ambiente que você precisa definir. Como alternativa, você pode substituir os valores diretamente no código.
Para saber como configurar essas variáveis de ambiente, consulte o readme.md incluído na aplicação de amostra no Github.
Adicione suas credenciais KMS
Crie uma variável contendo o endpoint do seu provedor de chaves compatível com KMIP com a seguinte estrutura:
kmsProviderCredentials = { kmip: { endpoint: process.env["KMIP_KMS_ENDPOINT"], // Your KMIP KMS endpoint }, };
var kmsProviderCredentials = new Dictionary<string, IReadOnlyDictionary<string, object>>(); var kmsOptions = new Dictionary<string, object> { { "endpoint", _appSettings["Kmip:KmsEndpoint"] } // Your KMIP KMS endpoint }; kmsProviderCredentials.Add("kmip", kmsOptions);
kmsProviderCredentials := map[string]map[string]interface{}{ "kmip": { "endpoint": os.Getenv("KMIP_KMS_ENDPOINT"), // KMIP KMS endpoint }, }
Map<String, Object> kmsProviderDetails = new HashMap<>(); kmsProviderDetails.put("endpoint", getEnv("KMIP_KMS_ENDPOINT")); // Your KMIP KMS endpoint Map<String, Map<String, Object>> kmsProviderCredentials = new HashMap<String, Map<String, Object>>(); kmsProviderCredentials.put("kmip", kmsProviderDetails);
kmsProviders = { kmip: { endpoint: process.env.KMIP_KMS_ENDPOINT, // Your KMIP KMS endpoint }, };
kms_provider_credentials = { "kmip": { "endpoint": os.environ['KMIP_KMS_ENDPOINT'] # Your KMIP KMS endpoint } }
Adicionar suas credenciais da CMK
Crie um objeto vazio, conforme mostrado no exemplo de código a seguir. Isso solicita que seu fornecedor de chaves compatível com KMIPgere uma nova chave mestre do cliente.
customerMasterKeyCredentials = {};
var customerMasterKeyCredentials = new BsonDocument();
cmkCredentials := map[string]string{}
BsonDocument customerMasterKeyCredentials = new BsonDocument();
customerMasterKeyCredentials = {};
customer_master_key_credentials = {}
Criar um cliente de criptografia
Para criar um cliente para criptografar e descriptografar dados em coleções criptografadas, instancie um novo MongoClient
usando seu URI de conexão e opções de criptografia automática .
const encryptedClient = Mongo(uri, autoEncryptionOptions);
IMPORTANTE: se você estiver usando o .NET/C# Driver versão 3.0 ou posterior, deverá adicionar o seguinte código ao seu aplicação antes de instanciar um novo MongoClient
:
MongoClientSettings.Extensions.AddAutoEncryption(); // .NET/C# Driver v3.0 or later only
Instancie um novo MongoClient
usando seu URI de conexão e as opções de criptografia automática :
var clientSettings = MongoClientSettings.FromConnectionString(uri); clientSettings.AutoEncryptionOptions = qeHelpers.GetAutoEncryptionOptions( keyVaultNamespace, kmsProviderCredentials); var encryptedClient = new MongoClient(clientSettings);
encryptedClient, err := mongo.Connect( context.TODO(), options.Client().ApplyURI(uri).SetAutoEncryptionOptions(autoEncryptionOptions), ) if err != nil { panic(fmt.Sprintf("Unable to connect to MongoDB: %v\n", err)) } defer func() { _ = encryptedClient.Disconnect(context.TODO()) }()
MongoClientSettings clientSettings = MongoClientSettings.builder() .applyConnectionString(new ConnectionString(uri)) .autoEncryptionSettings(autoEncryptionSettings) .build(); try (MongoClient encryptedClient = MongoClients.create(clientSettings)) {
const encryptedClient = new MongoClient(uri, { autoEncryption: autoEncryptionOptions, });
encrypted_client = MongoClient( uri, auto_encryption_opts=auto_encryption_options)
Próximos passos
Depois de instalar um driver e dependências, criar uma chave mestra do cliente e criar seu aplicativo, consulte Visão geral: usar a Queryable Encryption para criptografar e consultar dados.