Secrets Role
Ansible роль для сохранения секретов на удаленной машине.
Описание
Роль позволяет безопасно сохранять секреты на удаленной машине в виде файлов с ограниченными правами доступа. Поддерживает сохранение переменных как файлов и копирование существующих файлов.
Параметры
Обязательные параметры
secrets_dest- директория, куда будут сохранены секреты в виде файловsecrets_user- имя пользователя, который будет владеть директорией и файламиsecrets_group- группа, которая будет владеть директорией и файлами (по умолчанию равнаsecrets_user)
Опциональные параметры
secrets_vars- список переменных, из которых будут извлечены секреты (по умолчанию:[])secrets_files- список файлов, которые будут скопированы "как есть" (по умолчанию:[])secrets_dir_mode- права доступа для директории (по умолчанию:0750)secrets_file_mode- права доступа для файлов с секретами (по умолчанию:0400)
Функциональность
- Создает директорию
secrets_destесли она не существует - Сохраняет каждую переменную из
secrets_varsкак файл с таким же именем - Копирует файлы из
secrets_filesв директорию назначения - Устанавливает права доступа
0400для всех файлов с секретами - Назначает указанного пользователя и группу владельцами директории и файлов
Пример использования
- name: Save application secrets
include_role:
name: secrets
vars:
secrets_dest: /opt/myapp/secrets
secrets_user: myapp
secrets_group: myapp
secrets_vars:
- database_password
- api_key
- jwt_secret
secrets_files:
- /path/to/ssl/certificate.pem
- /path/to/ssl/private.key
Безопасность
- Все файлы с секретами создаются с правами
0400(только чтение для владельца) - Директория создается с правами
0750(полный доступ для владельца, чтение и выполнение для группы) - Используется
no_log: trueдля предотвращения вывода секретов в логи Ansible