Developer Guide
৫ মিনিট

টিমের সঙ্গে নিরাপদে API কী ও সিক্রেট শেয়ার করার উপায়

ডেভেলপমেন্ট টিমের সঙ্গে API কী, সিক্রেট কী ও এনভায়রনমেন্ট ভেরিয়েবল কীভাবে নিরাপদে শেয়ার করবেন, জেনে নিন। ঝুঁকিপূর্ণ শেয়ারিং পদ্ধতি এড়িয়ে চলুন আর সিক্রেট ব্যবস্থাপনার সেরা অনুশীলনগুলো মেনে চলুন।

LOCK.PUB
টিমের সঙ্গে নিরাপদে API কী ও সিক্রেট শেয়ার করার উপায়

টিমের সঙ্গে নিরাপদে API কী ও সিক্রেট শেয়ার করার উপায়

পেশাগতভাবে কোড লিখলে প্রায় নিশ্চিতভাবেই কখনো না কখনো সহকর্মীর সঙ্গে API কী, সিক্রেট কী, ডেটাবেস পাসওয়ার্ড বা সার্ভারের ক্রেডেনশিয়াল শেয়ার করতে হয়েছে। প্রশ্ন হলো, এটি করতে গিয়ে নতুন কোনো নিরাপত্তা-দুর্বলতা তৈরি না করে কীভাবে করবেন।

ঝুঁকিপূর্ণ শেয়ারিং পদ্ধতি

শুরুতেই দেখে নেওয়া যাক, কী কখনোই করা উচিত নয়। অবাক করার মতো ব্যাপার হলো, অনেক ডেভেলপমেন্ট টিম এখনো এই পদ্ধতিগুলোর ওপরই নির্ভর করে।

১. Git-এ কমিট করা

.env ফাইল Git রিপোজিটরিতে কমিট করা সবচেয়ে প্রচলিত এবং সবচেয়ে বিপজ্জনক ভুল।

# Never do this
git add .env
git commit -m "add env variables"
git push origin main

কোনো সিক্রেট একবার Git হিস্ট্রিতে ঢুকে গেলে git rm দিয়ে মুছে দিলেও হিস্ট্রি থেকে তা মুছে যায় না। পাবলিক রিপোজিটরিতে স্বয়ংক্রিয় বট কয়েক সেকেন্ডের মধ্যেই উন্মুক্ত সিক্রেট খুঁজে বের করে ফেলে।

২. Slack বা Discord-এ পেস্ট করা

মেসেজিং চ্যানেলে সরাসরি API কী পেস্ট করাও সমান ঝুঁকিপূর্ণ।

  • চ্যানেলে অ্যাক্সেস আছে এমন সবাই এটি দেখতে পান
  • মেসেজ সার্চ করে পরে সহজেই এটি খুঁজে পাওয়া যায়
  • কোনো কর্মী প্রতিষ্ঠান ছেড়ে চলে গেলেও মেসেজটি থেকে যায়
  • Slack ওয়ার্কস্পেসের অ্যাডমিনরা DM-সহ সব মেসেজ পড়তে পারেন

৩. ইমেইলে পাঠানো

ইমেইল ডিফল্টভাবে এনক্রিপ্টেড নয়। এক মেইল সার্ভার থেকে আরেক মেইল সার্ভারে যাওয়ার পথে মেসেজ মাঝপথে হাতিয়ে নেওয়া যায়, আর ক্রেডেনশিয়াল প্রাপকের ইনবক্সে স্থায়ীভাবে থেকে যায়।

API কী লিকের আসল মূল্য

API কী লিক শুধু একটি নিরাপত্তা-ঘটনা নয়। এর সরাসরি পরিণতি আর্থিক ক্ষতি।

AWS কী লিকের উদাহরণ

ঘটনা ক্ষতি
একজন ডেভেলপারের AWS কী ফাঁস এক রাতেই $৬,০০০ চার্জ
স্টার্টআপের পাবলিক GitHub রিপোজিটরি ৩ দিনে $৫০,০০০-এর বেশি চার্জ
এন্টারপ্রাইজের অভ্যন্তরীণ উইকি থেকে লিক কয়েক মিলিয়ন ডলারের ডেটা লিক

AWS, GCP বা Azure-এর মতো ক্লাউড সেবার কী লিক হলে আক্রমণকারীরা কয়েক মিনিটের মধ্যেই বিপুল পরিমাণ কম্পিউট রিসোর্স চালু করে ফেলে, সাধারণত ক্রিপ্টোকারেন্সি মাইনিংয়ের জন্য।

অন্যান্য পরিণতি

  • পেমেন্ট API কী লিক -> প্রতারণামূলক চার্জ
  • ইমেইল API কী লিক -> ব্যাপক হারে স্প্যাম পাঠানো
  • ডেটাবেস ক্রেডেনশিয়াল লিক -> গ্রাহকের ডেটা চুরি

API কী শেয়ার করার নিরাপদ উপায়

পদ্ধতি ১: LOCK.PUB গোপন মেমো (তাৎক্ষণিক শেয়ারিং)

এই মুহূর্তেই কোনো সহকর্মীর হাতে কী তুলে দিতে হলে এটিই সবচেয়ে ব্যবহারিক উপায়।

ওয়ার্কফ্লো:

  1. LOCK.PUB-এ একটি গোপন মেমো তৈরি করুন
  2. API কী আর প্রাসঙ্গিক যেকোনো তথ্য লিখুন
  3. একটি পাসওয়ার্ড আর অল্প সময়ের মেয়াদ (Pro, যেমন ১ ঘণ্টা) সেট করুন
  4. লিংকটি Slack-এ পাঠান, আর পাসওয়ার্ডটি আলাদা একটি DM-এ
# Example secret memo content
AWS_ACCESS_KEY_ID=AKIA...
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI...
AWS_REGION=us-east-1

Note: These keys are for the staging environment only.
Request production keys separately.

সুবিধা:

  • মেয়াদ শেষ হলে মেমোটি আর খোলে না
  • দেখার জন্য পাসওয়ার্ড লাগে
  • সার্ভারে এনক্রিপ্টেড অবস্থায় সংরক্ষিত থাকে
  • Slack হিস্ট্রিতে খোলা অবস্থায় কোনো কী পড়ে থাকে না

পদ্ধতি ২: সিক্রেট ম্যানেজমেন্ট টুল (পুরো টিমের জন্য)

টিম বড় হতে থাকলে নিবেদিত সিক্রেট ম্যানেজমেন্ট টুল অপরিহার্য হয়ে ওঠে।

টুল শক্তির দিক কাদের জন্য উপযুক্ত
HashiCorp Vault সবচেয়ে শক্তিশালী সিক্রেট ব্যবস্থাপনা বড় এন্টারপ্রাইজ
AWS Secrets Manager AWS ইকোসিস্টেমের সঙ্গে ইন্টিগ্রেশন AWS-কেন্দ্রিক অবকাঠামো
1Password Teams ডেভেলপার-বান্ধব UI স্টার্টআপ, ছোট টিম
Doppler এনভায়রনমেন্ট ভেরিয়েবলের স্বয়ংক্রিয় সিঙ্ক DevOps-কেন্দ্রিক টিম

পদ্ধতি ৩: এনভায়রনমেন্ট ভেরিয়েবল ব্যবস্থাপনা (.env.example প্যাটার্ন)

প্রজেক্টে একটি .env.example ফাইল রাখা প্রচলিত রীতি।

# .env.example (committed to Git)
DATABASE_URL=
API_KEY=
SECRET_KEY=
STRIPE_SECRET=

# .env (never committed to Git)
DATABASE_URL=postgresql://user:pass@host:5432/db
API_KEY=sk-abc123...
SECRET_KEY=mysecret...
STRIPE_SECRET=sk_live_...

.gitignore-এ সবসময় .env যোগ করে রাখুন।

# .gitignore
.env
.env.local
.env.production

সিক্রেট ব্যবস্থাপনার সেরা অনুশীলন

১. নিয়মিত কী রোটেট করুন

API কী নির্দিষ্ট সময় পরপর রোটেট করা উচিত। এতে কোনো কী বেহাত হলেও ক্ষতির সময়সীমা সীমিত থাকে।

কী-এর ধরন প্রস্তাবিত রোটেশন
প্রোডাকশন API কী ৯০ দিন
ডেটাবেস পাসওয়ার্ড ৬০ দিন
সার্ভিস টোকেন ৩০ দিন
ডেভ/টেস্ট কী কেউ টিম ছাড়লে সঙ্গে সঙ্গে

২. প্রতিটি এনভায়রনমেন্টে আলাদা কী ব্যবহার করুন

ডেভেলপমেন্ট, স্টেজিং আর প্রোডাকশন এনভায়রনমেন্টে ভিন্ন ভিন্ন কী ব্যবহার করুন।

# Good
DEV_API_KEY=sk-dev-xxx
STAGING_API_KEY=sk-staging-xxx
PROD_API_KEY=sk-prod-xxx

# Bad - same key for all environments
API_KEY=sk-same-key-for-all

৩. ন্যূনতম অধিকারের নীতি মেনে চলুন

প্রতিটি API কী-কে শুধু ন্যূনতম প্রয়োজনীয় অনুমতিটুকুই দিন।

  • শুধু পড়ার কাজে রিড-অনলি কী ব্যবহার করুন
  • নির্দিষ্ট সেবার মধ্যে সীমাবদ্ধ কী ইস্যু করুন
  • অ্যাডমিন কী যত সম্ভব ছোট একটি দলের মধ্যে সীমিত রাখুন

৪. লিক শনাক্তকরণ স্বয়ংক্রিয় করুন

কোড রিপোজিটরিতে কমিট হয়ে যাওয়া সিক্রেট স্বয়ংক্রিয়ভাবে শনাক্ত করতে GitHub Secret Scanning, GitGuardian বা TruffleHog-এর মতো টুল ব্যবহার করুন।

# Add secret scanning as a pre-commit hook
# .pre-commit-config.yaml
repos:
  - repo: https://github.com/Yelp/detect-secrets
    hooks:
      - id: detect-secrets

LOCK.PUB দিয়ে দ্রুত শেয়ারিং ওয়ার্কফ্লো

ডেভেলপমেন্ট টিমের সবচেয়ে সাধারণ পরিস্থিতিগুলোর জন্য কয়েকটি ওয়ার্কফ্লো টেমপ্লেট নিচে দেওয়া হলো।

নতুন টিম সদস্যের অনবোর্ডিং

নতুন কোনো ডেভেলপার যোগ দিলে প্রয়োজনীয় সব এনভায়রনমেন্ট ভেরিয়েবল একবারেই পৌঁছে দিন।

  1. সব এনভায়রনমেন্ট ভেরিয়েবল একটি গোপন মেমোতে একসঙ্গে লিখুন
  2. ২৪ ঘণ্টার মেয়াদ সেট করুন
  3. লিংক আর পাসওয়ার্ড শেয়ার করুন
  4. টিম সদস্য পেয়ে গেছেন বলে নিশ্চিত করার পর মেমোটির মেয়াদ আপনা থেকেই ফুরিয়ে যায়, তখন এটি আর খোলে না

বাইরের পার্টনারের সঙ্গে কী শেয়ার করা

বাইরের ভেন্ডরের সঙ্গে API কী শেয়ার করতে বাড়তি সতর্কতা লাগে।

  1. শুধু ওই পার্টনারের জন্য আলাদা একটি কী ইস্যু করুন
  2. অল্প মেয়াদের গোপন মেমোর মাধ্যমে কী-টি পৌঁছে দিন
  3. পার্টনারকে কী-টি তাঁদের নিজস্ব সিক্রেট ম্যানেজমেন্ট টুলে সংরক্ষণ করতে বলুন
  4. কাজের চুক্তি শেষ হলে কী-টি বাতিল (রিভোক) করুন

ইনসিডেন্টের সময় জরুরি কী শেয়ারিং

সার্ভার ডাউন, আর টিমের অন্য কোনো সদস্যের জরুরি ভিত্তিতে অ্যাক্সেস দরকার।

  1. ১ ঘণ্টা মেয়াদের একটি গোপন মেমো তৈরি করুন
  2. পাসওয়ার্ড ফোনে জানিয়ে দিন, আর লিংকটি মেসেঞ্জারে পাঠান
  3. ইনসিডেন্ট মিটে যাওয়ার পর শেয়ার করা কী-টি রোটেট করুন

শেষ কথা

API কী ও সিক্রেট ব্যবস্থাপনা ডেভেলপমেন্ট নিরাপত্তার ভিত্তি। Slack-এ কী পেস্ট করা বা ইমেইলে পাঠানো সুবিধাজনক মনে হতে পারে, কিন্তু একটিমাত্র লিকের খেসারত হতে পারে হাজার হাজার, এমনকি মিলিয়ন ডলার। প্রথম দিন থেকেই নিরাপদে সিক্রেট শেয়ার করার অভ্যাস গড়ে তুলুন।

এই মুহূর্তেই কোনো সহকর্মীর সঙ্গে কী শেয়ার করতে হলে একটি গোপন মেমো ব্যবহার করে দেখুন।

গোপন মেমো তৈরি করুন ->

মেমো তৈরি করুন

মেমো তৈরি করুন

কীওয়ার্ড

API কী শেয়ার করা
সিক্রেট কী ব্যবস্থাপনা
ডেভেলপার নিরাপত্তা
এনভায়রনমেন্ট ভেরিয়েবল ব্যবস্থাপনা
API কী লিক প্রতিরোধ
নিরাপদে ক্রেডেনশিয়াল শেয়ার

আপনার পছন্দ হতে পারে

টিমের সঙ্গে নিরাপদে SSH কী ও সার্টিফিকেট শেয়ার করার উপায়

SSH কী দিয়ে পুরো সার্ভারে প্রবেশাধিকার মেলে। Slack বা ইমেইলে এটি পাঠানো কেন বিপজ্জনক, আর মেয়াদসহ গোপন মেমো দিয়ে কীভাবে একবারের জন্য নিরাপদে কী পৌঁছে দেবেন, জেনে নিন।

Developer Guide

পাসওয়ার্ড-সুরক্ষিত লিংকে অনলাইনে গোপন তথ্য শেয়ার করুন

কীভাবে secret, password, private note, file, image, audio বা request নিরাপদ link, expiration, access limit ও read receipt দিয়ে share করবেন জানুন।

Secure Sharing

নিরাপদ রিকুয়েস্ট লিংক দিয়ে ফাইল, ছবি, নোট ও অডিও সংগ্রহ করুন

নিরাপদ রিকুয়েস্ট লিংক ব্যবহার করে ক্লায়েন্টের ডকুমেন্ট, ছবি, নোট ও ভয়েস মেসেজ এনক্রিপ্টেড সাবমিশন এবং ঐচ্ছিক সাবমিট পাসওয়ার্ডসহ কীভাবে নেওয়া যায় তা জানুন।

Secure Sharing
টিমের সঙ্গে নিরাপদে API কী ও সিক্রেট শেয়ার করার উপায় | LOCK.PUB Blog