पाठ 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 में आने से रोकता है।