Thuta Learning
ရှာဖွေရန်
AdvancedSecuritybeginner

API Key & Secret Management

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • API Key & Secret Management ကို ကြောက်စရာမလိုအောင် နားလည်မယ်
  • လက်တွေ့ scenario ထဲမှာ ဒီ concept ကို ချက်ချင်း အသုံးချတတ်မယ်
  • ကိုယ်တိုင်နဲ့ တခြားသူများအတွက်ပါ security risk ကို ရှောင်တတ်အောင် လုပ်မယ်

ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်

Secret ကို code ထဲ hardcode လုပ်ပြီး GitHub public repo ထဲ commit လုပ်မိရင် bot တွေက scan လုပ်ပြီး minute ပိုင်းအတွင်း steal သွားနိုင်ပါတယ် — public repo scanning bot တွေက အမြဲ run နေပါတယ်။ Environment variable (.env file, ⁠git ignore ထဲ ထည့်ထား) ဒါမှမဟုတ် secret manager service (AWS Secrets Manager, HashiCorp Vault) ကို သုံးရင် secret ကို code repository ကနေ ခွဲထားနိုင်ပါတယ်။

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

.env file ကို .gitignore ထဲ ထည့်ထားရင် accidental commit ကို ကာကွယ်နိုင်ပါတယ်, ဒါပေမယ့် တစ်ခါတစ်လေ user တွေက .gitignore setup မလုပ်ခင် commit လုပ်မိလို့ history ထဲ secret ကျန်ခဲ့တတ်ပါတယ် — ဒီလိုဖြစ်ရင် secret ကို ချက်ချင်း rotate (အသစ်ပြောင်း) ရပါမယ်, git history ကနေ ဖျက်ရုံနဲ့ မလုံလောက်ပါဘူး (public repo ဆိုရင် cache/fork ထဲ ဆက်ကျန်နိုင်လို့)။

အတူတူ ကြည့်မယ်

bash
# .gitignore
.env

# .env (never committed)
DATABASE_PASSWORD=xxxx
API_KEY=sk-xxxx

# code (reads from environment, not hardcoded)
const apiKey = process.env.API_KEY;
You should see
Secret ကို environment variable ဖြင့် code ကနေ ခွဲထားတဲ့ pattern ကို ရှင်းပြနိုင်မည်။

၅ မိနစ် စမ်းကြည့်

ကိုယ့် project (ရှိရင်) ရဲ့ .gitignore ထဲမှာ .env ပါ/မပါ စစ်ကြည့်ပါ။ မပါရင် ချက်ချင်းထည့်ပါ။

သတိလေးတစ်ချက်

Secret တစ်ခု public repo ထဲ တစ်ချက်တောင် commit ဖြစ်ခဲ့ရင် 'ဖျက်လိုက်ပြီ' လို့ မယူဆပါနှင့် — ချက်ချင်း rotate (key အသစ်ထုတ်, အဟောင်း revoke) ပါ, secret ကို leaked-ဟု သတ်မှတ်ပါ။

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Secret ကို .gitignore ထဲထည့်ရုံနဲ့ 'ပြီးပြီ' ထင်ခြင်း — ရှိပြီးသား commit history ထဲ ကျန်နေနိုင်
  • Secret leak ဖြစ်ပြီးနောက် rotate မလုပ်ဘဲ .gitignore ထဲထည့်ရုံနဲ့ ပြီးမယ်ထင်ခြင်း

အခု ကိုယ်တိုင် စမ်းကြည့်

ကိုယ့် project (ရှိရင်) ရဲ့ .gitignore ထဲမှာ .env ပါ/မပါ စစ်ကြည့်ပါ။ မပါရင် ချက်ချင်းထည့်ပါ။

You'll know it worked when: Secret ကို environment variable ဖြင့် code ကနေ ခွဲထားတဲ့ pattern ကို ရှင်းပြနိုင်မည်။

API Key & Secret Management | Thuta Learning