Я пытаюсь найти любой пример того, как расшифровать пароль, зашифрованный KMS, например, у меня есть пароль базы данных RDS, зашифрованный KMS, я хочу расшифровать его в моей функции aws-cpp-lambda для подключения к базе данных.
я вижу, что для вызова клиента Decrypt мне нужен DecryptRequest;
но я не знаю, как его инициализировать и где установить свой «encriptedPassword» в DecryptedRequest для вызова client.Decrypt ()
это base64
encriptedPassword = "GPK0ujdAAAAZzBlBgkqhkiG"
Aws::SDKOptions options;
InitAPI(options);
{
Aws::Client::ClientConfiguration awsConfig;
awsConfig.region = Aws::Environment::GetEnv("AWS_REGION");
Aws::KMS::KMSClient client(awsConfig);
// Aws::KMS::Model::DecryptRequest decryptRequest;
// client.Decrypt(decryptRequest);
}
// shutdown the aws api
std::cout << "shutdown api" << "\n";
ShutdownAPI(options);
все учетные данные управляются и хранятся администратором aws, поэтому у меня нет доступа к этой конфигурации, у меня есть только зашифрованный пароль БД. Когда я делаю лямбду, я публикую это git-репозиторий, после чего процесс jenkins строит и развертывает лямбду в aws, у jenkins есть учетные данные и т. д. как это сделать, но это в nodejs мне нужно сделать версию C ++, например, это пример nodejs
use strict'
const AWS = require('aws-sdk');
module.exports.decrypt = (key) => {
return new Promise((resolve, reject) => {
const kms = new AWS.KMS();
console.log('Attempting to decrypt: ' + key);
const params = {CiphertextBlob: new Buffer(key, 'base64')};
console.log(params);
kms.decrypt(params, function (err, data) {
if (err) {
console.log('Error while decrypting key: ' + err);
reject(err)
} else {
console.log('Decrypted key');
resolve(data.Plaintext.toString('ascii'));
}
});
});
то, что делает версия nodejs, это расшифровывает пароль с помощью клиента sdk kms, после чего он передается в виде простой строки в библиотеку подключений db и подключается к базе данных, используя хост, порт, имя базы данных и т. Д.
что мне нужно сделать, это расшифровать пароль, используя KMSCLIENT для c ++, как версия узла.
Кто-нибудь не может написать небольшой пример, пожалуйста. Спасибо всем !!