Thuta Learning
ရှာဖွေရန်

API Key ကို လုံခြုံစွာ စီမံအသုံးပြုနည်း

API key ကို source code နှင့် browser မှာမဖော်ဘဲ environment variables၊ least privilege၊ rotation နှင့် leak response အထိ စနစ်တကျစီမံပါမယ်။

API Key ကို လုံခြုံစွာ စီမံအသုံးပြုနည်း cover illustration

ဖြေရှင်းမည့်ပြဿနာ

API key တစ်ခု Git repository သို့မဟုတ် frontend bundle ထဲပေါက်ကြားသွားရင် အခြားသူက account quota၊ data နှင့် billing ကို အသုံးချနိုင်ပါတယ်။

လိုအပ်ချက်များ

  • Server-side runtime ပါသော project
  • Provider dashboard သို့ဝင်ခွင့်
  • Git နှင့် environment variable အခြေခံသိရှိမှု

Key တစ်ခုစီ၏တာဝန်ကိုခွဲပါ

Development၊ staging နဲ့ production အတွက် key တစ်ခုတည်းမသုံးပါနဲ့။ App သို့မဟုတ် service တစ်ခုစီကို သီးခြား key ပေးထားရင် leak ဖြစ်သည့်နေရာကိုရှာဖွေရလွယ်ပြီး တစ်ခုတည်းကို revoke လုပ်နိုင်ပါတယ်။

Secret ကို server-side မှာသာဖတ်ပါ

Local development မှာ .env.local ကိုသုံးနိုင်ပေမယ့် file ကို Git ထဲမထည့်ပါနှင့်။ Production မှာ hosting provider ရဲ့ encrypted secret settings သို့မဟုတ် secret manager ကိုသုံးပါ။

app/api/example/route.ts
export async function POST() {
  const apiKey = process.env.PROVIDER_API_KEY;
  if (!apiKey) {
    return Response.json({ error: "Server is not configured" }, { status: 500 });
  }

  // Call the provider from this server route.
  return Response.json({ ok: true });
}

Repository နှင့် logs ကိုကာကွယ်ပါ

Secret ကို console.log၊ error response၊ screenshot သို့မဟုတ် support ticket ထဲမကူးပါနဲ့။ GitHub push protection နဲ့ secret scanning ကိုဖွင့်ထားပြီး CI log မှာ variable တန်ဖိုးမပေါ်ကြောင်းစစ်ပါ။

Terminal
$ git grep -n "API_KEY\|SECRET\|TOKEN"

Rotation နှင့် leak response ပြင်ဆင်ပါ

Key leak ဖြစ်နိုင်တယ်လို့သံသယရှိတာနဲ့ commit ဖျက်ရုံမလုံလောက်ပါဘူး။ Provider မှာ key ကိုချက်ချင်း revoke လုပ်၊ key အသစ်ထုတ်၊ deployment ပြန်တင်ပြီး usage logs နဲ့ billing ကိုစစ်ပါ။

အရင်ဆုံး revoke လုပ်ပါ

History သန့်ရှင်းရေးမလုပ်မီ leaked key ကိုပိတ်ပါ။ Public history ထဲရောက်ပြီးသား secret ကို လုံခြုံတယ်လို့ မယူဆရပါဘူး။

ရရှိမည့်ရလဒ်

Client မှမမြင်နိုင်ဘဲ environment အလိုက်ခွဲထားပြီး rotate/revoke လုပ်နိုင်သော API key workflow ရရှိပါမယ်။

အဆင်မပြေပါက စစ်ဆေးရန်

  • Key undefined ဖြစ်လျှင် variable name၊ deployment environment နှင့် restart/redeploy လုပ်ထားခြင်းကိုစစ်ပါ။
  • 401 response ရလျှင် key validity၊ scope နှင့် header format ကို provider documentation နဲ့တိုက်စစ်ပါ။
  • Key commit ဝင်ပြီးသားဆိုလျှင် Git history ပြင်မီ key ကို revoke လုပ်ပါ။

ဆက်လက်လေ့လာရန် Tutorials

API Key ကို လုံခြုံစွာ စီမံအသုံးပြုနည်း | Thuta Learning