पाठ 20 / 26
Least Privilege और no_log
Privilege बढ़ाना सीमित करें और secrets को logs से बाहर रखें।
संकरा privilege, शांत logs
become: true पूरे play पर नहीं बल्कि सिर्फ़ उन tasks पर उपयोग करें जिन्हें उसकी ज़रूरत है, और service खाते के लिए become_user पर विचार करें। Passwords या tokens सँभालने वाले tasks में no_log: true रखें ताकि उनके arguments और नतीजे console output, CI logs या callback plugins में न दिखें। याद रखें कि -v output और debug tasks भी secrets leak कर सकते हैं, इसलिए secret variables कभी न छापें।
संवेदनशील task पर no_log
no_log के बिना विफलता पर module arguments (password hash समेत) छप सकते हैं। (उदाहरण।)
- name: Create database user
community.mysql.mysql_user:
name: app
password: "{{ vault_db_password }}"
priv: "appdb.*:ALL"
state: present
no_log: true
become: trueत्वरित जाँच: `no_log: true` क्या करता है?
- Task बंद करता है
- Task के arguments और नतीजे output व logs से छिपाता है
- Playbook encrypt करता है
- Error जाँच छोड़ता है
Answer
Task के arguments और नतीजे output व logs से छिपाता है — यह संवेदनशील मानों को console या log output में आने से रोकता है।