nikolaymatrosov / yc-kms-js-sls

Demo how to use Yandex.Cloud KMS to pass secrets to Serverless Function

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Установим зависимости

npm i -g serverless
npm i

Еще нам понадобится yc CLI. Инструкция по установке и настройке тут.

Подготовим секрет.

Для наглядности в качестве секрета и для простоты валидации возьмем обычную фразу и запишем ее в файл plaintext.txt.

echo 'The quick brown fox jumps over the lazy dog' > plaintext.txt

Теперь создадим ключ в KMS при помощи yc CLI.

yc kms symmetric-key create \
  --name kms-demo \
  --default-algorithm aes-256 \
  --rotation-period 24h 

При помощи yc и только что созданного ключа мы можем зашифровать наш plaintext.txt. Зашифрованный текст положим в файл ciphertext.txt

yc kms symmetric-crypto encrypt \
  --name kms-demo \
  --plaintext-file plaintext.txt \
  --ciphertext-file ciphertext.txt

Теперь запишем id ключа и шифротекст в файл .env, чтобы использовать в serverless.

yc kms symmetric-key get --name=kms-demo --format=json | jq -r '"KEY_ID=\(.id)"' > .env
echo "CIPHERTEXT=$(base64 -i ciphertext.txt)" >> .env

Раздеплоим функцию.

sls deploy

Теперь можно проверить

sls invoke -f env-demo

И в консоли мы увидим следующее:

Serverless: {"statusCode":200,"body":"The quick brown fox jumps over the lazy dog\n"}

About

Demo how to use Yandex.Cloud KMS to pass secrets to Serverless Function


Languages

Language:JavaScript 100.0%