5 मिनट पढ़ें

AI coding agents के लिए credential inventory worksheet

AI agent API और SSH access, owners, allowed actions, environments, revocation और rotation plans दर्ज करने के लिए credential inventory worksheet का उपयोग करें।

AI coding agents के लिए credential inventory worksheet

AI coding agents को विरासत में मिले credentials का ढेर और “सावधान रहना” जैसी अस्पष्ट हिदायत नहीं मिलनी चाहिए। Agent के API call करने, service deploy करने या SSH connection खोलने से पहले किसी record में यह स्पष्ट होना चाहिए कि credential किस तक पहुंचता है, इसकी जिम्मेदारी किसकी है और टीम इसे कैसे बंद करेगी।

Credential inventory worksheet तब तक प्रशासनिक काम लगती है, जब तक agent operator के keyboard से दूर रहते हुए बीस calls नहीं कर देता। उस समय यह एक ज्ञात capability revoke करने और पूरे engineering संगठन को बंद करने के बीच का अंतर बन जाती है, क्योंकि किसी को token पहचान में नहीं आता। मैंने टीमों को तब पता लगाते देखा है कि उनकी “staging” automation में production write token था, जब automated change गलत जगह पहुंच चुका था।

Inventory में secret string नहीं, authority दर्ज करें

Worksheet authority दर्ज करती है। इसमें API token, private SSH material, password, recovery code या इनका encrypted export नहीं होना चाहिए। यदि worksheet किसी चीज को authenticate कर सकती है, तो वह कमजोर access controls वाला नया secret store बन गई है।

Identifier और credential को अलग समझें। API token के आखिरी चार characters rotation के समय सही entry खोजने में मदद करते हैं, लेकिन यह नहीं बताते कि token project delete कर सकता है या नहीं। SSH public-key fingerprint identity की पहचान करता है, लेकिन यह नहीं बताता कि कौन सा Unix account खुलेगा, port forwarding की अनुमति है या नहीं, अथवा कौन से hosts उस key पर भरोसा करते हैं।

हर independently revocable authority के लिए एक row रखें। एक provider account में read-only production reporting token, staging deploy token, break-glass administrator token और webhook signing secret के लिए अलग rows हो सकती हैं। इन्हें मिलाने पर अलग-अलग risk और rotation requirements गायब हो जाती हैं। यही नियम SSH पर भी लागू होता है। “Git और servers” को एक cell में न लिखें। Source-control write identity और host login identity के परिणाम अलग होते हैं।

NIST SP 800-57 Part 1 cryptographic key management को lifecycle की तरह देखता है: generation, distribution, storage, use, replacement और destruction सभी नियंत्रित होने चाहिए। यही अनुशासन credentials पर भी लागू होता है। “हमने token बना लिया” वाली सूची inventory नहीं, केवल ऐसी याददाश्त है जो जरूरत के समय विफल होगी।

हर credential का एक जवाबदेह owner रखें

हर row में एक named owner होना चाहिए जो बता सके कि यह authority अभी भी जरूरी है या नहीं। Owner को secret manager चलाना या agent integration लिखना जरूरी नहीं, लेकिन उसे संबंधित system की पर्याप्त समझ होनी चाहिए।

“platform”, “dev team”, “shared” या inactive employee का नाम owner के रूप में न लिखें। Group process चला सकता है, लेकिन incident responder को रात 2 बजे किसे फोन करना है, यह group name नहीं बताता। Primary owner और जरूरत पड़ने पर revoke या replace करने वाला backup owner दर्ज करें।

इन चार भूमिकाओं को अलग रखें:

  • System owner तय करता है कि access उचित है या नहीं।
  • Credential custodian material को create, store, revoke और rotate कर सकता है।
  • Agent operator agent run शुरू या supervise करता है।
  • Incident contact तत्काल समस्या संभालता है।

छोटी टीम में एक व्यक्ति कई भूमिकाएं निभा सकता है, फिर भी worksheet में भूमिकाएं अलग नाम से लिखें।

Review date को secret rotation date से अलग रखें। Token तकनीकी रूप से valid रह सकता है, जबकि उसका business purpose खत्म हो चुका हो। Review पूछता है कि access रहना चाहिए या नहीं; rotation उस material को बदलता है जो पुराना या उजागर हो सकता है। एक काम करने से दूसरा पूरा नहीं होता।

अनुमत actions को verbs और targets के रूप में लिखें

“Production access” permission description नहीं है। Worksheet में verbs, target resources और ऐसी सीमाएं चाहिए जिन्हें reviewer जांच सके। यह रूप इस्तेमाल करें:

verb + target + boundary + forbidden action

उदाहरण:

  • GET /v1/projects/acme/builds in staging; no production tenant requests
  • POST deployment revisions for service catalog-api; no rollback or deletion
  • SSH as deploy on build host group; run approved release command only; no interactive shell
  • Create issue comments in repository alpha; no merge, branch deletion, or settings changes

Provider का व्यापक “write” label पर्याप्त नहीं है। Deployment revision बनाना और deployment हटाना दोनों write permission हैं, लेकिन उनका blast radius बहुत अलग है। Record करें कि action read, create, modify, delete, execute या administrative change है। Execute पर विशेष ध्यान दें। Cloud job शुरू करना, service credential rotate करना, payment operation trigger करना या remote shell चलाना request log में साधारण दिख सकता है, लेकिन परिणाम महंगा या अपरिवर्तनीय हो सकता है।

“Use only when appropriate” और “normal deployment work” जैसी अस्पष्ट भाषा सीमा तय नहीं करती। यदि action context पर निर्भर है तो named environment, repository, host group, account या change type लिखें। General administrator token देकर prompt पर भरोसा करना गलत है। Prompt access control नहीं है, और बाद की tool calls वही व्यापक authority ले सकती हैं।

Environments के लिए अलग rows और अलग परिणाम रखें

Staging और production credentials को केवल इसलिए एक row में न मिलाएं कि वे एक ही API call करते हैं। Target account, data exposure, approval requirement और revocation urgency अलग हो सकते हैं। Environment को केवल label न मानें। Provider account या tenant, endpoint या host group, data classification और cross-environment access दर्ज करें। “Prod” कई accounts, regions या customer partitions वाले संगठन में बहुत अस्पष्ट है।

उदाहरण:

production / tenant 4821 / customer account data / endpoint api.example.internal

यदि internal hostname खुद sensitive है, तो उसे ऐसे worksheet में न लिखें जिसे बहुत लोग पढ़ सकते हैं। Target को अधिकृत टीम के लिए पर्याप्त सटीक नाम दें।

Agent response में कौन सा data पा सकता है, उसके लिए अलग field रखें। Endpoint call करने की अनुमति और response देखने की अनुमति जुड़े हुए, लेकिन अलग risks हैं। Read request source code, customer contacts, invoices, access metadata या पुराने configuration value में छिपा secret लौटा सकती है।

यदि provider environments को अलग नहीं कर सकता, तो documentation से समस्या छिपाने की कोशिश न करें। Credential को cross-environment mark करें, approval level बढ़ाएं और तय करें कि agent को इसका उपयोग करना भी चाहिए या नहीं। कभी-कभी सही उत्तर “नहीं” होता है।

SSH access को API access से अधिक विवरण चाहिए

प्रोडक्शन कॉल को अलग-अलग नियंत्रित करें
प्रोडक्शन क्रेडेंशियल के हर उपयोग पर एक क्लिक या Touch ID से अनुमति मांगें।

SSH connection एक साथ कई तरह की authority दे सकता है। Login account, accepted hosts, command restrictions, forwarding permissions और agent forwarding setting सभी महत्वपूर्ण हैं।

हर SSH row में public-key fingerprint, private material location, login account, host या host group और exact intended command दर्ज करें। Private key sheet में copy न करें। Public key file पर यह command चलाएं:

ssh-keygen -lf ~/.ssh/id_agent_deploy.pub

परिणाम कुछ ऐसा होगा:

256 SHA256:AbCdEfGhIjKlMnOpQrStUvWxYz0123456789abcd agent-deploy (ED25519)

SHA256: value रखें। Comment तभी रखें जब वह role पहचानने में मदद करे। Comment security control नहीं है।

authorized_keys restrictions देखें और यह न मानें कि deploy account अपने-आप सीमित है। OpenSSH के command=, no-port-forwarding, no-agent-forwarding और no-pty जैसे options automation identity को constrained command runner बना सकते हैं। ये unrestricted administrator account में login करने वाले credential को सुरक्षित नहीं कर सकते।

Entry में लिखा जा सकता है: “login deploy, release group A के hosts, forced command /usr/local/bin/release-catalog, no port forwarding, no PTY, no agent forwarding।” Emergency interactive shell चाहिए तो अलग human-operated identity बनाएं। Agent identity को चुपचाप reuse न करें।

Host verification भी record का हिस्सा है। लिखें कि agent-side integration host identity कैसे जांचता है, known-host entries कहां रहती हैं और legitimate host replacement के बाद उन्हें कौन update करता है। Host verification बंद करके rebuild पूरा करना valid credential को गलत machine तक भेज सकता है।

उपयोगी worksheet कठिन सवालों के जवाब मांगती है

इस template को controlled document, ticket system या inventory database में डालें। जो columns team maintain नहीं कर सकती उन्हें हटाएं, लेकिन authority, scope और recovery वाले fields न हटाएं।

Fieldक्या दर्ज करें
Credential IDStable internal ID, non-secret token suffix या SSH fingerprint
ChannelHTTP API या SSH
System and purposeProvider या host service और agent task
Environment and targetAccount, tenant, host group, repository या endpoint boundary
Permitted actionsVerbs, targets, limits और forbidden actions
Response dataAgent द्वारा प्राप्त या output में उजागर किया जा सकने वाला data
Owner and backupNamed system owner और authorized backup
CustodianMaterial create, revoke और rotate करने वाला व्यक्ति या team
Storage locationVault reference या managed location, secret value कभी नहीं
Agent pathNamed agent integration, tool call या approved execution route
Approval levelNone, per session या every use, कारण सहित
Rotation planTrigger, date या interval, जिम्मेदार व्यक्ति और replacement test
Revocation methodExact console role, command या runbook reference
EvidenceAudit location, last review date और reviewer

agent path यह स्पष्ट करता है कि agent इस credential का प्रभाव कैसे पाता है। “Coding shell में environment variable” उत्तर है, लेकिन इससे सावधान होना चाहिए क्योंकि process इसे print, transmit या persist कर सकता है। “Action gateway request करता है और response लौटाता है” कम exposure वाला design है।

revocation method किसी दूसरे व्यक्ति द्वारा चलाया जा सके। “Sam से पूछें” method नहीं है। “Provider project settings में token disable करें, फिर active agent session revoke करें” method है। इसे row जोड़ते समय ही test करें।

सिर्फ active या inactive status पर्याप्त नहीं है। last used, last reviewed और planned retirement भी रखें। Unused credential harmless नहीं होता। Project खत्म होने के बाद उसे revoke करना अक्सर भूल जाता है।

Rotation plan में replacement और proof दोनों रखें

Audit chain सत्यापित करें
Vault keys का एक्सेस लिए बिना ciphertext पर offline sp audit verify चलाएं।

Rotation तभी पूरी है जब पुराना credential disable हो और replacement वास्तविक agent path से intended action कर चुका हो। नया token बनाकर storage में डालना और पुराने को बाद में हटाने का वादा करना दोनों identities को जीवित रखता है।

Rotation plan में ये पांच बातें हों:

  1. Rotation शुरू करने वाली घटना, जैसे expiry, staff departure, suspected exposure या scope change।
  2. Replacement बनाने वाला व्यक्ति और बदली हुई authority approve करने वाला व्यक्ति।
  3. वह स्थान जहां नया material रखा जाएगा और agent तक नहीं पहुंचेगा।
  4. छोटा test action जो replacement के काम करने का प्रमाण दे।
  5. वह exact point जब पुराना material revoke होगा और evidence record होगा।

HTTP credential के लिए intended scope वाला harmless endpoint call करें। SSH के लिए approved host group पर forced deployment status command चलाएं, general shell login से test न करें।

Credential ID: api-catalog-deploy-prod-01
Replacement ID suffix: ...7KQ2
Test: POST /deployments/validate for catalog-api revision 8f3c
Expected: HTTP 200 with validation status accepted
Old credential revoked: provider audit event recorded
Reviewer: production service owner

ऐसा rotation schedule न बनाएं जिसे team निभा नहीं सकती। बार-बार exceptions inventory को अविश्वसनीय बना देते हैं। Provider expiry का उपयोग करें, event-driven triggers रखें और risk के अनुसार review cadence तय करें। Exposure का संदेह हो और service सह सके तो पहले revoke करें। Logs सुरक्षित रखें, credential बदलें और फिर जांच करें।

Agent approval call के परिणाम के अनुसार हो

हर एजेंट रन की पहचान करें
नए पहचाने गए एजेंट प्रोसेस को एक बार अनुमति दें और रन बदलने पर उसका सेशन तुरंत रद्द करें।

Agent run में script से अलग lifecycle होता है। कोई व्यक्ति इसे शुरू करके चला जाता है और लौटने पर देखता है कि कई external calls हो चुकी हैं। इसलिए worksheet में यह भी लिखें कि human authorization कब जरूरी है।

Trusted, identified local process और low-to-moderate consequences वाले contained run के लिए per-session approval ठीक है। High-impact operations, जैसे publish, deploy, production data बदलना, sensitive response पाना या external commitment बनाना, हर उपयोग पर approval मांगें। Scope approval का विकल्प नहीं है। पहले permissions सीमित करें, फिर approval से बचा हुआ risk संभालें।

Sallyport API और SSH credentials को Mac के encrypted vault में रखता है और नए agent process या चुने हुए credential के हर उपयोग पर authorization मांग सकता है। Agent को secret नहीं, परिणाम मिलते हैं।

High-consequence row को उपयोग के बाद अपेक्षित audit evidence से जोड़ें। Session identifier या run journal location, call-level activity record, target, timestamp, outcome और approving person दर्ज करें। यदि evidence यह नहीं बता सकता कि कौन सा credential किस result के लिए इस्तेमाल हुआ, तो integration दी गई authority के लिए बहुत opaque है।

खराब run के बाद audit records जवाब देते हैं

Inventory preventive work है। Audit records बताते हैं कि agent ने वास्तव में क्या करने की कोशिश की, क्या सफल हुआ और कौन सी authority ने इसे संभव बनाया। दोनों कामों को न मिलाएं। Worksheet call होने का प्रमाण नहीं देती और log permission के उचित होने का प्रमाण नहीं देता।

एक inventory row पर incident drill करें। Operator owner खोजे, credential revoke करे, current agent access रोके, last successful call पहचाने और audit trail में बदलाव न होने की पुष्टि करे। समय ही नहीं, confusion भी मापें।

जब कई लोग logs देख या export कर सकते हों, tamper evidence जरूरी है। Hash-chained log unauthorized बदलावों का पता लगाने में मदद करता है, लेकिन वह खराब request को समझदार नहीं बनाता और authorized व्यक्ति को गलत call करने से नहीं रोकता। ये अलग controls हैं।

Audit retention का निर्णय inventory record के साथ रखें, खासकर जब response में sensitive output हो। जांच के लिए पर्याप्त context रखें, लेकिन full customer payload हमेशा के लिए न रखें। जहां संभव हो request metadata और result status रखें।

सबसे पहले उस credential row को पूरा करें जिसका उपयोग agent आज production change करने के लिए कर सकता है। Target स्पष्ट लिखें, permitted verb concrete बनाएं, revoke instruction ऐसा लिखें जिसे दूसरा व्यक्ति चला सके और replacement path test करें। यदि उस row में अनुमान हैं, तो बाकी inventory केवल सजावट है।

सामान्य प्रश्न

क्या मुझे AI एजेंट द्वारा इस्तेमाल किए जाने वाले personal API token को inventory में दर्ज करना चाहिए?

हाँ। जिस क्षण कोई एजेंट production account के विरुद्ध personal token का इस्तेमाल कर सकता है, वह production credential बन जाता है। उसे inventory में दर्ज करें, account संबंध के मालिक का नाम लिखें, scope सीमित करें और काम नियमित होने पर service credential अपनाएं।

Coding agents के लिए SSH credentials को कैसे दर्ज करना चाहिए?

हर SSH identity के लिए अलग inventory row रखें, भले ही कई public keys एक ही host तक पहुंचती हों। Private material, login account, forwarding अधिकार, source repository और rotation date अलग हो सकते हैं। “deployment SSH” नाम की एक row incident के समय जरूरी जानकारी छिपा देती है।

Autonomous agent द्वारा इस्तेमाल किए जाने वाले credential का owner कौन होना चाहिए?

Application या system owner को तय करना चाहिए कि credential क्या कर सकता है। Platform या security टीम storage और rotation चला सकती है, लेकिन किसी दूसरे व्यक्ति की ओर से database write या production deployment को सही तरह approve नहीं कर सकती। दोनों भूमिकाएं अलग हों तो दोनों दर्ज करें।

क्या read-only API credentials को भी इसी तरह inventory में रखना चाहिए?

Read-only permission भी customer data, source code, deployment configuration या अन्य targets की सूची उजागर कर सकती है। इसलिए read access के लिए data classification और allowed endpoints को write permission जितनी ही सावधानी से दर्ज करें।

किन घटनाओं पर credential rotation शुरू करनी चाहिए?

व्यक्ति के संगठन छोड़ने, secret के repository या terminal transcript में आने, agent process को मिलने, scope बदलने, provider द्वारा credential रद्द किए जाने या planned rotation date आने पर rotation करें। Suspicious audit entry भी तुरंत replacement का कारण है।

क्या AI coding agent production credentials इस्तेमाल कर सकता है?

सुविधा के लिए agent को general production administrator credential न दें। सीमित role, सीमित target set और documented emergency revocation method वाला अलग credential बनाएं। यदि provider ये सीमाएं लागू नहीं कर सकता, तो कार्रवाई से पहले human approval रखें या उसे agent की पहुंच से बाहर रखें।

Agent को API keys सीधे क्यों नहीं मिलनी चाहिए?

Agent को कार्रवाई का अनुरोध करने की क्षमता चाहिए, authorization देने वाला secret string नहीं। यदि agent file, environment variable, prompt या command output से token पढ़ सकता है, तो वह उसे logs, patches, issue comments या किसी अन्य tool call में भेज सकता है। Secret को उस component में रखें जो request करता है और केवल परिणाम लौटाता है।

टीमों को भूले हुए agent credentials आम तौर पर कहां मिलते हैं?

Cloud consoles, CI variables, password managers, developer shell profiles, deployment scripts, repository history, service configuration और target hosts की authorized-key files से शुरुआत करें। फिर हर system owner से पूछें कि इन जगहों के बाहर कौन से credentials मौजूद हैं। अक्सर भुला हुआ credential वही पुराना credential होता है जो अब भी काम कर रहा है।

Per-session और per-call approval में क्या अंतर है?

Per-session approval बताता है कि यह agent process किसने शुरू किया। Per-call approval बताता है कि इस exact request के लिए credential का उपयोग किया जा सकता है या नहीं। ऐसे credentials के लिए per-call approval रखें जिनका प्रभाव इतना बड़ा हो कि शुरुआती अनुमति पूरे लंबे run को अधिकृत न करे।

Credential inventory worksheet को उपयोगी क्या बनाता है?

उपयोगी worksheet से जल्दी पता चलना चाहिए कि credential किस तक पहुंचता है, कौन इसे approve कर सकता है, agent क्या कर सकता है, इसे कैसे रोका जा सकता है और इसे कैसे बदला जाएगा। Spreadsheet ठीक है, यदि उसमें ये fields हों, उसे अपडेट किया जाए और उसमें secret न रखा जाए। यह operational record है, secret vault नहीं।

Sallyport

Sallyport आपके AI एजेंट के लिए API कॉल और SSH कमांड चलाता है। कुंजियाँ आपके Mac पर एक लोकल वॉल्ट में रहती हैं; आप हर रन को स्वीकृत करते हैं और हर क्रिया एक सीलबंद जर्नल में दर्ज होती है।

© 2026 Sallyport · Apache-2.0 के तहत ओपन सोर्स · Oleg Sotnikov