выборочно избегать записи конфиденциальных данных в журнал в ansible (без использования nolog) - PullRequest
0 голосов
/ 30 декабря 2018

Я использую комбинацию DSC и Ansible.Для чего-то меньшего, чем тривиальный ресурс, PSCredentials часто требуется, они разбиты на две строки, как в этом примере:

PsDscRunAsCredential_username: '{{ansible_user}}'
PsDscRunAsCredentual_password: '{{ansible_password}}'

Чтобы избежать записи конфиденциальной информации в журнал Ansible (например, при запуске в подробном режиме илиесли это ошибка), рекомендуется использовать флаг 'nolog'.

К сожалению, это подавляет всю информацию - поэтому, если есть ошибка, вы просто возвращаете 'CENSORED'.

Я надеюсь, что возможно изменить win_dsc, чтобы он был немного умнее, и подумал, может ли кто-нибудь указать на подобный пример в другом модуле, из которого я мог бы поучиться / позаимствовать, предполагая, что это общее требование?

Я бы хотел избежать регистрации данных, если параметр заканчивается на "_password".

1 Ответ

0 голосов
/ 30 декабря 2018

К сожалению, я не думаю, что вы можете изменить это на уровне модуля.Теоретически, модуль знает, какие вещи он запрашивает, должен быть секретным (например, пароль или ключ API), но в действительности суть проблемы лежит вне задачи.

В подробном режиме и в журналах ansible покажет вызов модуля, включая секреты.no_log - единственное решение, которое они дают, и, учитывая, что no_log живет вне модуля, в любом случае вы ничего не могли бы сделать в модуле иначе.

Даже если бы вы могли, ведение журнала и подробный вывод находятся на стороне подсистемного движка, поэтому их нужно исправить, и на основании этой проблемы не похоже, что есть какой-либо интерес к этомубольше, чем предоставление no_log.

У меня есть ответ на другой вопрос, в котором говорится о том, как можно проще непосредственно проверить вызов DSC ;он сфокусирован на уникальных задачах отладки DSC и может привести вас к моменту, когда вы перебираете код, поэтому он должен быть несколько полезен при устранении неполадок.

...