API কি ম্যানেজমেন্ট

API কি নিরাপদে ম্যানেজ করা

একটি API কি আপনার অ্যাকাউন্ট তার কাছে থাকা যে কারও জন্য খুলে দেয়। নিজের কি প্রাইভেট রাখার উপায় এখানে।

৪টি চ্যাপ্টার আর একটি do/avoid চেকলিস্ট

API কি কী

একটি API কি হলো একটি সিক্রেট স্ট্রিং, যা স্ক্রিপ্ট বা অ্যাপ প্রতিটি রিকোয়েস্টের সাথে পাঠায়, যাতে একটি সার্ভিস জানে কে কল করছে আর তার কী করার অনুমতি আছে। পাসওয়ার্ডের মতো নয়, এটি সাধারণত সেকেন্ড লগইন স্টেপ ছাড়াই কাজ করে।

একটি কি-কে এমনভাবে ট্রিট করুন, যেন এটি সেই সবকিছুর পাসওয়ার্ড যা এটি অ্যাক্সেস করতে পারে।

মূল পয়েন্ট

  • প্রতিটি রিকোয়েস্টের সাথে পাঠানো একটি সিক্রেট
  • সাধারণত সেকেন্ড ফ্যাক্টর নেই
  • পাসওয়ার্ডের মতোই সেনসিটিভ

কি কীভাবে লিক হয়

বেশিরভাগ লিক অ্যাক্সিডেন্টাল: একটি কি Git রিপোজিটরিতে কমিট হয়ে যাওয়া, চ্যাট বা টিকিটে পেস্ট হয়ে যাওয়া, ফ্রন্ট-এন্ড জাভাস্ক্রিপ্টে থেকে যাওয়া যা যে কেউ পড়তে পারে, বা লগে প্রিন্ট হয়ে যাওয়া।

অটোমেটেড বট পাবলিক রিপোজিটরিতে পুশ হওয়ার কয়েক মিনিটের মধ্যেই কি স্ক্যান করে।

মূল পয়েন্ট

  • Git-এ কমিট হওয়া
  • চ্যাট বা টিকিটে শেয়ার হওয়া
  • ব্রাউজার কোডে চলে যাওয়া
  • লগে প্রিন্ট হওয়া

কি স্টোর করা

কোডের বাইরে কি রাখুন। এনভায়রনমেন্ট ভেরিয়েবল বা একটি সিক্রেটস ম্যানেজার থেকে এগুলো লোড করুন, আর লোকাল .env ফাইল ভার্সন কন্ট্রোলের বাইরে রাখুন:

# .gitignore
.env

# .env (never committed)
API_KEY=replace-with-your-key

CI/CD-তে, রিপোজিটরিতে ফাইল রাখার বদলে প্ল্যাটফর্মের সিক্রেট সেটিংস ব্যবহার করুন।

মূল পয়েন্ট

  • এনভায়রনমেন্ট ভেরিয়েবল বা একটি সিক্রেটস ম্যানেজার
  • .gitignore-এ .env ফাইল
  • রিপোজিটরি ফাইল না, CI সিক্রেট

স্কোপিং, রোটেটিং আর রিভোকিং

প্রতিটি অ্যাপকে তার নিজের কি দিন, শুধু যে পারমিশন লাগে তা সহ, যাতে একটি লিক সবকিছু এক্সপোজ না করে। নিয়মিত সূচিতে কি বদলান, আর অ্যাক্সেস থাকা কেউ চলে গেলেই।

একটি কি লিক হলে, আগে রিভোক করুন, তারপর নতুন একটি ইস্যু করুন আর আপনার অ্যাপ আপডেট করুন। কমিট ডিলিট করাই যথেষ্ট না; কি ইতিমধ্যে বের হয়ে গেছে।

মূল পয়েন্ট

  • প্রতি অ্যাপে একটি কি
  • লিস্ট প্রিভিলেজ
  • নিয়মিত সূচিতে রোটেট করুন
  • লিকের পর আগে রিভোক করুন

চেকলিস্ট

API কি সেফটি: করুন ও এড়িয়ে চলুন।

Do

  • এনভায়রনমেন্ট ভেরিয়েবলে কি স্টোর করুন

    বা একটি সিক্রেটস ম্যানেজারে।

  • প্রতি অ্যাপে একটি কি ব্যবহার করুন

    যাতে বাকিগুলো না ভেঙে একটি রিভোক করতে পারেন।

  • শুধু যা লাগবে তা দিন

    লেখার দরকার না থাকলে রিড-অনলি।

  • নিয়মিত কি রোটেট করুন

    আর অ্যাক্সেস থাকা কেউ চলে গেলেই।

Avoid

  • Git-এ কি কমিট করা

    প্রাইভেট রিপোজিটরিও শেয়ার বা লিক হয়ে যায়।

  • ব্রাউজার কোডে কি রাখা

    ব্রাউজারে পাঠানো জাভাস্ক্রিপ্ট যে কেউ পড়তে পারে।

  • চ্যাট বা ইমেইলে কি শেয়ার করা

    মেসেজ কপি, ফরওয়ার্ড আর সংরক্ষিত হয়।

  • রিভোক না করে কমিট ডিলিট করা

    একটি লিক হওয়া কি রিভোক না হওয়া পর্যন্ত ভ্যালিড থাকে।

সাধারণ প্রশ্ন

API কি নিয়ে প্রশ্ন

API কি আর পাসওয়ার্ডের পার্থক্য কী?

একটি পাসওয়ার্ড একজন মানুষকে লগইন করায়; একটি API কি একটি প্রোগ্রামকে সার্ভিস কল করতে দেয়। কি প্রায়ই টু-ফ্যাক্টর লগইন স্কিপ করে, তাই একটি লিক হওয়া কি সাথে সাথে ব্যবহার করা যায়।

আমি GitHub-এ একটি কি পুশ করে ফেলেছি। এখন কী করব?

সাথে সাথে কি রিভোক করুন, একটি নতুন কি ইস্যু করুন আর আপনার অ্যাপ আপডেট করুন। তারপর রিপোজিটরি হিস্টোরি থেকে সেটা সরান, কিন্তু ধরে নিন এটি ইতিমধ্যে কপি হয়ে গেছে।

কতবার কি রোটেট করা উচিত?

আপনার রিস্কের সাথে মানানসই একটি নিয়মিত সূচিতে, যেমন কয়েক মাস পরপর, আর একটি কি লিক হতে পারে বা অ্যাক্সেস থাকা কেউ চলে গেলে সাথে সাথে।

আমি কি আমার ওয়েবসাইটের জাভাস্ক্রিপ্টে একটি API কি রাখতে পারি?

সিক্রেট কি নয়। ব্রাউজারে পাঠানো যা কিছু, যে কেউ পড়তে পারে। এর বদলে আপনার সার্ভার থেকে API কল করুন।

আমার Cloudoora সার্ভিসে API অ্যাক্সেস কীভাবে পাব?

আমাদের সাপোর্ট টিমকে জিজ্ঞেস করুন, আপনার প্রোডাক্টের জন্য কী পাওয়া যায়।

অটোমেশন নিয়ে প্রশ্ন আছে?

আমাদের টিম আপনাকে সঠিক দিকে নির্দেশ দিতে পারে।