Контекст
Я следую инструкциям GCP по хранению секретов в Storage Bucket. KMS используется для шифрования файла перед его загрузкой в Storage Bucket.
Поскольку шифрование данных происходит вне хранилища Google, меня немного смущает один аспект ротации ключей.
Сценарий
Рассмотрим конкретный сценарий:
- 2017-01- 01 я создаю связку ключей и ключ
A
(который на самом деле являетсяA_ver1
, потому что ключи версируются). Кроме того, политика ротации ключей настроена на запуск ротации ежегодно. - 15 января 2017 г. я запускаю команду, чтобы зашифровать
some_file.txt
с помощьюA_ver1
:curl -s -X POST "https://cloudkms.googleapis.com/v1/projects/my-project/<...>" \ -d "{\"plaintext\":\"<...SOME_FILE_CONTENT...>\"}" \ -H "Authorization:Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type:application/json"
. - Я немедленно сохраняю результат шифрования в Storage Bucket как
some_file.txt.encrypted
. - Я ничего не делаю, а 2018 -01-01 происходит ротация ключей. Насколько я понимаю,
,A_ver1
отключаетсяA_ver2
создается и активируется.Эти два события происходят почти одновременно. - 2018-06 -01 я понял, что мне нужно расшифровать
some_file.txt.encrypted
. Я загружаю файл, а затем пытаюсь запустить команду, чтобы расшифровать файл с помощью _10 _...
Вопросы
Вопрос 1: что произойдет, если я попытаюсь расшифровать файл с помощью A_ver2
, если он был зашифрован с помощью более ранней версии A_ver1
?
Вопрос 2. Если расшифровка не удалась, что я должен сделать в первую очередь, чтобы это предотвратить?