AWS kms.generateRandom в лямбда-функции не работает - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь сгенерировать случайный ключ в лямбде, используя kms.generateRandom. Я попробовал образец, упомянутый в документе, но он ничего не возвращает. Нет ошибок нет данных. Кто-нибудь использовал это? Должен ли я предоставить доступ к моей лямбде? Ниже код, который я пытаюсь

/* The following example uses AWS KMS to generate 32 bytes of random data. */

 var params = {
  NumberOfBytes: 32// The length of the random data, specified in number of bytes.
 };
 kms.generateRandom(params, function(err, data) {
   if (err) console.log(err, err.stack); // an error occurred
   else     console.log(data);           // successful response
   /*
   data = {
    Plaintext: <Binary String>// The random data.
   }
   */
 });

1 Ответ

0 голосов
/ 25 октября 2019

Улучшен код, как показано ниже, и это помогло мне выяснить проблему с правами доступа.

let result = await new Promise((resolve, reject) => {
        kms.generateRandom(params, function(err, data) {
            if (err)
            {
                console.log('Error occurred: ' + err, err.stack);
                reject();
            } // an error occurred
            else
            {
                console.log('Data: ' + data);
                resolve(data);
            } // successful response
        });
    });

Я обновил политику IAM, добавив что-то вроде этого:

"Action": [
    "kms:*"
  ],
"Resource": "*"

ион возвращает мне данные, как показано ниже: Данные: {"Открытый текст": {"тип": "Буфер", "данные": [238,80,205,34,52,91,37,158,167,126,109,222,246,0,59,132,116,169,49,35,244,19,146,86,104,72,190,227,89,196,156,201]}}

Ниже приведен код для преобразования буфера в строку:

let test = new Buffer.from (data.Plaintext);console.log ('buff:' + test.toString ('base64'));

...