Я создаю приложение Node.js, которое получает токен долгосрочного доступа от другого приложения, к которому мне нужно получить доступ. Я не хочу хранить эти токены доступа непосредственно в базе данных, поскольку любой, у кого есть доступ к этим токенам, может делать с ними все, что захочет.
Я новичок в Cloud KMS и подобных системах в целом, но последние несколько часов потратил на его изучение. Это кажется идеальным решением для решения моей проблемы, но я не совсем уверен, какой стратегии мне следует придерживаться для хранения этих токенов доступа:
- Следует ли хранить ключ шифрования в Cloud KMS и использовать этот ключ шифрования с пакетом NPM, например вот этот хранить токены доступа в моей базе данных?
- Следует ли хранить токены доступа напрямую в KMS? Я предполагаю, что у меня будет хранилище ключей и ключи меняются каждые 14 дней. Каждый раз, когда я получаю токен доступа, я просто шифрую его и сохраняю в KMS. Я храню только зашифрованный текст в своей базе данных. Когда мне нужно получить доступ к токену доступа из KMS, я использую зашифрованный текст для его расшифровки.
Что из вышеперечисленного является правильным способом использования KMS? Если это вариант 2, у меня есть дополнительные вопросы:
- Могу ли я зашифровать большое количество токенов доступа одним ключом или мне нужно создавать новый ключ для каждого токена доступа?
- Если мне когда-нибудь понадобится изменить токен доступа, зашифрованный в KMS, могу ли я просто изменить его или мне нужно будет уничтожить старую версию и снова зашифровать?
Спасибо за вашу помощь!