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