1
0
Files
pet-project-server/roles/secrets/README.md

3.0 KiB
Raw Blame History

Secrets Role

Ansible роль для сохранения секретов на удаленной машине.

Описание

Роль позволяет безопасно сохранять секреты на удаленной машине в виде файлов с ограниченными правами доступа. Поддерживает сохранение переменных как файлов и копирование существующих файлов.

Параметры

Обязательные параметры

  • secrets_dest - директория, куда будут сохранены секреты в виде файлов
  • secrets_user - имя пользователя, который будет владеть директорией и файлами
  • secrets_group - группа, которая будет владеть директорией и файлами (по умолчанию равна secrets_user)

Опциональные параметры

  • secrets_vars - список переменных, из которых будут извлечены секреты (по умолчанию: [])
  • secrets_files - список файлов, которые будут скопированы "как есть" (по умолчанию: [])
  • secrets_dir_mode - права доступа для директории (по умолчанию: 0750)
  • secrets_file_mode - права доступа для файлов с секретами (по умолчанию: 0400)

Функциональность

  1. Создает директорию secrets_dest если она не существует
  2. Сохраняет каждую переменную из secrets_vars как файл с таким же именем
  3. Копирует файлы из secrets_files в директорию назначения
  4. Устанавливает права доступа 0400 для всех файлов с секретами
  5. Назначает указанного пользователя и группу владельцами директории и файлов

Пример использования

- 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