Инструкции по шифрованию в k8s с использованием sops
Создание ключа
1. Создать ключ
gpg --full-generate-keyВыберите:
- Тип ключа: RSA (или другой подходящий)
- Размер: 4096 бит
- Срок действия: укажите или оставьте "никогда не истекает"
- Имя, Email и пароль – укажите и запомните
Затем получите Key ID:
gpg --list-keysОн будет выглядеть как:
pub rsa4096 2025-03-13 [SC]
1234ABCD5678EF90(используйте этот Key ID в следующих командах)
2. Зашифровать файл
sops --encrypt --pgp "1234ABCD5678EF90" --output secrets.yaml secrets-plain.yaml- --encrypt — указывает, что мы шифруем файл.
- --pgp "1234ABCD5678EF90" — идентификатор PGP-ключа для шифрования.
- --output secrets.yaml — указывает, куда сохранить зашифрованный файл.
- secrets-plain.yaml — файл, который нужно зашифровать.
Енвы (environments), которые будут переданы в secrets.yaml, будут создаваться в k8s в объекте secrets
Передача созданного ключа
Найти нужный ключ, скопировать его ID
gpg --list-keysЭкспортируйте ключ
gpg --export-secret-keys --armor "your-key-id" > private-key.ascПередайте на нужный сервер любым удобным способом, например:
scp private-key.asc user@target-server:/home/user/На этом сервере выполните
gpg --import /home/user/private-key.asc
gpg --list-keysТеперь он добавлен на ваш сервер, и может быть использован
Дополнительная информация
Чтобы иметь возможность передать файл secrets.yaml в helm шаблоны, введите:
echo "test" | gpg --encrypt --armor --recipient "your-key-id" | gpg --decrypt --pinentry-mode loopbackВведите пароль ключа
Так ключ добавится к вам в кеш, как расшифрованный и может быть использован