पाठ 22 / 27
Keys और Logs की सुरक्षा
Logs, errors और prompts से आकस्मिक लीक रोकें।
लीक logs में होते हैं
Keys hacking से कम और लापरवाही से ज़्यादा लीक होती हैं: debug logs में छपना, error reports में शामिल होना, Git में commit होना, tickets में चिपकना। बचाव: environment या secrets manager से keys लोड करें; logging से पहले key या token जैसी हर चीज़ redact करें (और prompts व replies में व्यक्तिगत डेटा redact करें); keys को prompts या tool results में कभी न रखें; प्रति परिवेश अलग keys उपयोग करें और rotate करें; CI और pre-commit hooks में secret scanning चलाएँ; और production logs कौन पढ़ सकता है यह सीमित करें। याद रखें पूरे prompts और replies log करना ग्राहकों का व्यक्तिगत डेटा पकड़ सकता है, इसलिए तय करें कि क्या चाहिए, कितने समय रखना है और कौन देख सकता है।
Keys, डेटा और users की रक्षा करें; मॉडल के बिना परखें
Secrets को logs से बाहर रखें, मॉडल आउटपुट को अविश्वसनीय मानें, और अपना integration ऑफ़लाइन परखें।
Log पंक्तियों से keys redact करना, चलाकर
मैंने यह सादा-Python (सिर्फ़ standard library) उदाहरण चलाया। Regular expression पंक्ति log होने से पहले sk-... शैली की keys और Bearer ... tokens को [REDACTED] से बदलती है। ऐसा pattern सुरक्षा जाल है, keys को पहले से logs से बाहर रखने का विकल्प नहीं।
import re
KEY = re.compile(r"(sk-[A-Za-z0-9_-]{6,}|Bearer\s+[A-Za-z0-9._-]+)")
def redact(text):
return KEY.sub("[REDACTED]", text)
log_line = "calling api with Authorization: Bearer sk-live-abc123XYZ and key sk-test-123456"
print(redact(log_line))
Output:
calling api with Authorization: [REDACTED] and key [REDACTED]
त्वरित जाँच: Key log होने से बचाने का सबसे अच्छा तरीक़ा क्या है?
- URL में रखें
- सब कुछ log करें और आशा रखें
- सुविधा के लिए एक बार छापें
- उसे कभी ऐसी किसी चीज़ में न रखना जो आप log करते हैं, और सुरक्षा जाल के रूप में redact करना
Answer
उसे कभी ऐसी किसी चीज़ में न रखना जो आप log करते हैं, और सुरक्षा जाल के रूप में redact करना — लीक स्रोत पर रोकें; redaction ग़लतियाँ पकड़ता है।