One self-hosted console to run your entire business — commerce, ERP, HRM, CRM & manufacturing

কে কী করতে পারবে? বাড়তে থাকা টিমের জন্য রোল-ভিত্তিক অ্যাক্সেস আর অডিট লগ

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

Author

Anichur Rahaman

5 দিন আগে11 min read1 views
কে কী করতে পারবে? বাড়তে থাকা টিমের জন্য রোল-ভিত্তিক অ্যাক্সেস আর অডিট লগ

তিন outlet-এর একটি রিটেইল ব্যবসার মালিককে কল্পনা করুন, সোমবার সকাল। refund report খুলে তিনি দেখলেন, রোববার outlet ২ থেকে ৪১টি refund হয়েছে, মোট ২,৮৭০ ডলার। এর ৩৮টিই ৫০ থেকে ৩০০ ডলারের মধ্যে, অর্থাৎ যে পরিসরে দ্বিতীয় একজনের অনুমোদন লাগার কথা। অথচ প্রতিটি refund দিয়েছে একই ক্যাশিয়ারের login, আর অনুমোদনও দিয়েছে সেই একই login।

কেউ system হ্যাক করেনি। দুই বছর আগে এক ব্যস্ত দিনে ওই ক্যাশিয়ারকে "শুধু সপ্তাহান্তের জন্য" শিফট লিডের রোল দেওয়া হয়েছিল, পরে আর ফেরত নেওয়া হয়নি। system ঠিক তা-ই করেছে, যা তাকে বলা হয়েছিল। দৃশ্যটি বোঝানোর জন্য সাজানো, কিন্তু ধরনটা খুব পরিচিত: অ্যাক্সেস দেওয়া হয় তাড়াহুড়োয়, যাচাই হয় না কখনো, আর যে লগ থাকে তা কেউ পড়ে না।

এই লেখা তিনটি ধারণা নিয়ে, যেগুলো এমন ঘটনা ঠেকায়: কাজের প্রয়োজনের মাপে বানানো রোল, টাকা বা stock নড়ে এমন প্রতিটি কাজে দুজন মানুষ, আর এমন audit লগ যা চুপিসারে বদলানো যায় না। সঙ্গে আছে তিন outlet-এর রিটেইলারের জন্য একটি রোল template এবং একটি refund রেকর্ডের ফিল্ডগুলো।

দল বড় হলে অ্যাক্সেস যেভাবে এলোমেলো হয়ে যায়

তিনজনের দলে সবাই সবাইকে চেনে, আর একটাই admin login ক্ষতিকর মনে হয় না। কিন্তু তিন outlet-এ পনেরোজন হলে সেই একই অভ্যাস ঝুঁকিতে পরিণত হয়। কারণগুলো একেবারে সাধারণ:

  • ধীরে জমে ওঠা permission। কেউ কাজ বদলালে পুরোনো অ্যাক্সেসও রয়ে যায়, কারণ যোগ করা এক মিনিটের কাজ আর সরানোর দায়িত্ব কারও নয়।
  • কপি করা account। নতুন কর্মীকে সেট আপ করা হয় "রিনার মতো করে", ২০২৪ সালে একটি প্রজেক্টের জন্য রিনাকে যা যা দেওয়া হয়েছিল সবসহ।
  • শেয়ার করা login। পুরো শিফটের জন্য একটাই টিল login থাকলে লগে নাম থাকে না, থাকে শুধু "till"।
  • পড়ে থাকা অ্যাক্সেস। সাবেক কর্মীর account বা তাঁর বানানো API key কয়েক মাস পরেও চলে।

এখানকার বেশির ভাগ ক্ষতি নাটকীয় হামলা থেকে হয় না। হয় এমন একজনের ছোট ছোট, বারবার ঘটা, কারও চোখে না পড়া কাজ থেকে, যাঁর সেই কাজ করার অনুমতি ছিল। ক্ষতির যত রাস্তা আছে, তার মধ্যে ভেতরের রাস্তাটাই রিটেইলার সবচেয়ে ভালো সামলাতে পারে।

রোল, permission আর স্কোপ: তিনটি আলাদা জিনিস

রোল-ভিত্তিক অ্যাক্সেস কন্ট্রোল শুনতে বিমূর্ত লাগে, যতক্ষণ না একে ভাগ করে দেখা হয়। permission হলো একটি বিষয়ের ওপর একটিমাত্র ক্রিয়া: refund.issue, refund.approve, stock.adjust, customer.export। রোল হলো কোনো কাজের সঙ্গে মেলানো permission-এর একটি নামধারী গুচ্ছ: ক্যাশিয়ার, শিফট লিড, অ্যাকাউন্ট্যান্ট। আর স্কোপ বলে দেয় রোলটি কোথায় খাটবে: একটি outlet-এ, একটি গুদামে, নাকি সর্বত্র।

আসল একক রোল নয়, অ্যাসাইনমেন্ট। "সানা outlet ২-এর শিফট লিড" মানে একটি সারি: ব্যবহারকারী, রোল, স্কোপ, শুরুর তারিখ, আর চাইলে শেষের তারিখ। সানাকে outlet ৩-এ পাঠালে সারিটি বদলে যায়; outlet ২-এর অ্যাক্সেস নিঃশব্দে তাঁর কাছে থেকে যায় না।

ব্যবহারে ন্যূনতম অধিকার

ন্যূনতম অধিকারের (least privilege) মানে, একজন মানুষের কাছে আজকের কাজ করার জন্য যতটুকু permission লাগে, ঠিক ততটুকুই থাকবে। NIST SP 800-53-এর AC-6 কন্ট্রোলে কথাটা এভাবে আছে: নির্দিষ্ট কাজের জন্য যতটুকু অধিকার দরকার, system ততটুকুর বেশি দেবে না। রিটেইল system-এ এটি তিনটি অভ্যাসে দাঁড়ায়।

  • রোল শুরু করুন কাজের বিবরণ থেকে, "কখন কী লাগতে পারে" ভেবে নয়।
  • অল্প কয়েকটি বড় permission-এর বদলে অনেক ছোট permission রাখুন, যাতে "বিক্রি দেখতে পারা" আর "সব গ্রাহকের তালিকা এক্সপোর্ট করতে পারা" আলাদা সুইচ হয়।
  • স্কোপ ডিফল্টভাবে একটি লোকেশনে রাখুন। সব outlet-এর অ্যাক্সেস ব্যতিক্রম, এবং তার পাশে একজনের নাম থাকতে হবে।

দায়িত্বের বিভাজন: যে জোড়া এক হাতে থাকবে না

ন্যূনতম অধিকার ঠিক করে একজন কী করতে পারবে। দায়িত্বের বিভাজন (segregation of duties) ঠিক করে একজন একা কী করতে পারবে। NIST AC-5 একে বর্ণনা করেছে এভাবে: কাজ আলাদা আলাদা মানুষের মধ্যে ভাগ হবে, যাতে ক্ষমতার অপব্যবহারে যোগসাজশ লাগে। পদ্ধতি সহজ: এমন দুটি কাজের জোড়া তালিকা করুন, যেগুলো একজনের হাতে থাকলে ক্ষতি তৈরি বা লুকানো যায়, তারপর system-কে দিয়ে সেই মিলন আটকে দিন।

আটটি কাজের কনফ্লিক্ট ম্যাট্রিক্স। লাল ঘরগুলো সেই জোড়া, যা একজন মানুষের হাতে থাকা চলবে না: supplier তৈরি ও পরিশোধ, refund দেওয়া ও অনুমোদন, payroll সম্পাদনা ও চালানো, stock অ্যাডজাস্ট ও গণনা অনুমোদন। একটি হলুদ জোড়া, stock অ্যাডজাস্ট ও refund দেওয়া, পর্যালোচনা-সাপেক্ষ।
চারটি জোড়া সরাসরি নিষিদ্ধ। একটি জোড়া শুধু পর্যালোচনা সাপেক্ষে চলে, কারণ stock অ্যাডজাস্টমেন্ট দিয়ে refund-জালিয়াতি ঢাকা যায়।

এই চার নিষিদ্ধ জোড়া একটি কমার্স ব্যবসার প্রায় সব টাকা ঢেকে ফেলে। যে supplier তৈরি করতে পারে এবং সেই supplier-কে payment-ও দিতে পারে, সে ভুয়া vendor বানাতে পারে। যে refund দিতে এবং অনুমোদন করতে পারে, আমাদের সোমবারের ক্যাশিয়ারের মতো, সে নিজের কাজ নিজেই পাস করে। payroll সম্পাদনা আর payroll চালানোও একই ছাঁচ। আর stock অ্যাডজাস্ট করা এবং সেই অ্যাডজাস্টমেন্টের পক্ষের গণনা নিজেই অনুমোদন করা, এভাবেই ঘাটতি অদৃশ্য হয়ে যায়।

নিয়মটি খাটাতে হবে software-কে দিয়ে, কাজটি করার মুহূর্তে; শুধু নীতিমালার নথিতে লিখে রাখলে হবে না। "অনুমোদনকারী অবশ্যই অনুরোধকারী থেকে আলাদা ব্যবহারকারী হবেন", এই যাচাইয়ে লজিক লাগে এক লাইন, আর এতে একটা আস্ত শ্রেণির সমস্যাই শেষ।

স্পর্শকাতর কাজের জন্য login নয়, চাই একটি গেট

login প্রমাণ করে আপনি কে। এই নির্দিষ্ট কাজটি যুক্তিসংগত কি না, তা প্রমাণ করে না। অল্প কয়েকটি কাজের জন্য, যেমন refund, দাম ওভাররাইড, সীমার ওপরের discount, stock অ্যাডজাস্টমেন্ট, গ্রাহকের data এক্সপোর্ট আর payroll রান, এমন একটি গেট যোগ করুন যা পরিমাণ দেখে সিদ্ধান্ত নেয়।

নিচের ফ্লোতে থ্রেশহোল্ডগুলো দৃষ্টান্ত হিসেবে নেওয়া। আপনারটা ঠিক করুন আপনার ব্যবসায় একটি ভুলের খরচ কত, তা দেখে।

একটি refund-এর ফ্লোচার্ট। outlet ধরে permission যাচাইয়ের পর হয় প্রত্যাখ্যান, নয়তো ৫০ ডলারের থ্রেশহোল্ড। ছোট refund সঙ্গে সঙ্গে হয়ে যায়। বড়গুলো যায় অনুরোধকারী নন এমন একজন অনুমোদনকারীর কাছে, তারপর হয় সম্পন্ন হয়, নয়তো বাতিল। প্রতিটি পথের শেষে একটি audit রেকর্ড।
প্রতিটি শাখা শেষ হয় একই জায়গায়: একটি রেকর্ডে। প্রত্যাখ্যাত আর বাতিল চেষ্টাও লিখে রাখা হয়।

ওই ফ্লোর তিনটি খুঁটিনাটি দেখতে যতটা ছোট, গুরুত্বে ততটা নয়।

  1. permission যাচাইয়ে স্কোপও ধরা হয়। "refund.issue আছে" যথেষ্ট নয়। প্রশ্নটি হলো "outlet ২-এ refund.issue আছে কি না"।
  2. অনুমোদনকারীকে অনুরোধকারীর সঙ্গে মিলিয়ে দেখা হয়, শুধু permission দেখলে চলে না। শিফট লিড নিজের refund নিজে অনুমোদন করতে পারেন না।
  3. প্রত্যাখ্যানও লগে ওঠে। যে ক্যাশিয়ার এক সপ্তাহে ৪০০ ডলারের refund চারবার চেষ্টা করে প্রত্যাখ্যাত হলো, তার চেষ্টাটাই একটি তথ্য। শুধু সফল কাজ লিখলে সেটা হারিয়ে যায়।

সবচেয়ে ওপরের ধাপে, এখানে ৩০০ ডলারের বেশি হলে, দুজন অনুমোদনকারী রাখুন, যেমন outlet ম্যানেজার আর ফাইন্যান্সের একজন। ধাপ কম রাখুন। তিনটি ধাপ কাউন্টারে দাঁড়িয়েই বোঝানো যায়; সাতটি হলে মানুষ ঘুরপথ খোঁজে।

তিন outlet-এর রিটেইলারের জন্য একটি রোল template

এই টেবিল শুরু করার জায়গা, কোনো স্ট্যান্ডার্ড নয়। "নিজের" মানে permission-টি শুধু ব্যবহারকারীর নির্ধারিত outlet-এ খাটে। "অনুরোধ" মানে কাজটি শুরু করা যায়, কিন্তু অনুমোদন দেবেন অন্য কেউ।

permissionক্যাশিয়ারশিফট লিডoutlet ম্যানেজারstock ক্লার্কঅ্যাকাউন্ট্যান্টমালিক
কাউন্টারে বিক্রিনিজেরনিজেরনিজেরনানাসব
৫০ ডলার পর্যন্ত refund দেওয়ানিজেরনিজেরনিজেরনানাসব
৫০ থেকে ৩০০ ডলারের refund অনুমোদননানিজেরনিজেরনানাসব
৩০০ ডলারের বেশি refund অনুমোদননানানিজের (দুজনের প্রথম জন)নাদ্বিতীয় অনুমোদনকারীসব
দাম ওভাররাইডনাঅনুরোধনিজের, নির্ধারিত শতাংশের মধ্যেনানাসব
stock অ্যাডজাস্টনানানানিজেরনাসব
stock গণনা অনুমোদননানানিজেরনাহ্যাঁসব
supplier তৈরিনানানানানাসব
supplier-কে paymentনানানানাহ্যাঁনা
গ্রাহকের তালিকা এক্সপোর্টনানানানানাসব
ব্যবহারকারী ও রোল ব্যবস্থাপনানানানানানাসব, দ্বিতীয় একজন মালিকের অনুমোদনসহ

টেবিলের ফাঁকগুলো ইচ্ছে করেই রাখা, একটু খেয়াল করে দেখুন। অ্যাকাউন্ট্যান্ট supplier-কে payment দিতে পারেন, কিন্তু supplier তৈরি করতে পারেন না। মালিক supplier তৈরি করতে পারেন, কিন্তু payment দেওয়া তাঁর জন্য বন্ধ; একটু বিরক্তিকর, এবং ইচ্ছাকৃতভাবেই। মালিকের কলামে দেখা যাচ্ছে রোলটি কী কী করতে পারে, কিন্তু প্রতিটি লেনদেনে কনফ্লিক্ট যাচাই তবু চলে, তাই মালিকও নিজের দেওয়া refund নিজে অনুমোদন করতে পারেন না। payroll-এর রোল এই টেবিলে রাখা হয়নি, কারণ সেটি সাধারণত আলাদা একটি HR template-এ থাকে, নিয়ম একই: যিনি বেতন সম্পাদনা করেন, তিনি payroll চালান না।

audit রেকর্ডে কী থাকতেই হবে

audit লগ পরে একটি প্রশ্নের উত্তর দেয়: কে, কোন রেকর্ডে, কখন, কেন এবং কার অনুমতিতে কী করেছে। "refund প্রসেস হয়েছে" লেখা একটি লাইন সেই উত্তর দেয় না। ওপরের ফ্লোর ১৮৪ ডলারের refund-এর রেকর্ডটি এ রকম।

ফিল্ডউদাহরণকেন দরকার
রেকর্ড আইডি ও সময়R-20931, 09:41:07 UTCক্রম আর খুঁজে পাওয়ার জন্য। সংরক্ষণ UTC-তে, দেখানো স্থানীয় সময়ে।
কর্তাcashier-07 (নামধারী ব্যবহারকারী, কখনো "till" নয়)দায়বদ্ধতা
কাজ ও লক্ষ্যorder 48211-এ refund.issueকোন রেকর্ড বদলাল
কোথায়outlet ২, রেজিস্টার ৩, ডিভাইস ও IPস্কোপ আর অস্বাভাবিক লোকেশন যাচাই
পরিমাণ ও কারণ$184.00, কারণ-কোড "damaged"কারণ ধরে প্যাটার্ন বিশ্লেষণ
আগে ও পরেpayment ক্যাপচার হয়ে ফেরত; stock +১, return বিনেপ্রভাবের প্রমাণ
প্রযোজ্য নিয়ম"৫০ থেকে ৩০০ ডলারের refund: একজন অনুমোদনকারী"তখন কোন নীতি চালু ছিল তা দেখায়
অনুমোদনকারী ও সময়lead-02, 09:42:31 UTCদ্বিতীয় একজন যে ছিলেন তার প্রমাণ
ফলাফলসম্পন্নসফল, প্রত্যাখ্যাত বা বাতিল
আগের হ্যাশ ও নিজের হ্যাশ7f3a…c91eবদলানো হলে ধরা পড়ার ব্যবস্থা

বদল ধরা, সংরক্ষণের মেয়াদ আর পর্যালোচনা

যে লগ admin সম্পাদনা করতে পারেন, তার প্রমাণমূল্য কম। দুটি সস্তা ব্যবস্থা কাজে লাগে। প্রথমত, টেবিলটিকে অ্যাপ্লিকেশনের জন্য append-only করুন: আপডেট বা ডিলিটের অনুমতি থাকবে না, সংশোধন লেখা হবে নতুন সারি হিসেবে। দ্বিতীয়ত, রেকর্ডগুলোকে শিকলে বাঁধুন। প্রতিটি সারি নিজের বিষয়বস্তু আর আগের সারির হ্যাশ মিলিয়ে একটি SHA-256 হ্যাশ রাখে, ফলে পুরোনো সারি বদলালে তার পরের সব হ্যাশ ভেঙে যায়। লগটি প্রতি রাতে এমন স্টোরেজে কপি করুন, যেখানে অ্যাপ্লিকেশন লিখতে পারে না।

সংরক্ষণের মেয়াদ নির্ভর করে আপনার প্রযোজ্য নিয়মের ওপর। একটি রেফারেন্স হিসেবে, PCI DSS v4.0.1-এর ১০.৫.১ চায় audit লগের ইতিহাস অন্তত ১২ মাস রাখতে, যার সাম্প্রতিক তিন মাস বিশ্লেষণের জন্য সঙ্গে সঙ্গে হাতের কাছে থাকবে। কর, payroll আর প্রাইভেসির নিয়মে এর ওপর আর কী লাগে তা দেখে নিন, এবং মেয়াদটি লিখে রাখুন।

শেষ প্রশ্ন: লগ পড়বে কে? যে লগ কেউ দেখে না, সেটা ডায়েরি। outlet-এর বাইরের একজনকে, যেমন ফাইন্যান্স লিড বা মালিককে, দায়িত্ব দিন, আর তাঁকে তিনটি সেভ করা ভিউ দিন: ব্যবহারকারী অনুযায়ী refund, হাতে করা stock অ্যাডজাস্টমেন্ট আর এক্সপোর্ট। সপ্তাহে দশ মিনিটই যথেষ্ট, সোমবার আসার আগেই সোমবারের ক্যাশিয়ারকে ধরে ফেলার জন্য।

নতুন যোগদান, বদলি আর বিদায়

অ্যাক্সেসের বেশির ভাগ সমস্যা শুরু হয় কাজ বদলের সময়ে, হামলায় নয়। তিনটি মুহূর্তকে একটি নির্দিষ্ট ক্রমের রুটিন হিসেবে দেখুন।

তিনটি কলাম: নতুন যোগদান, বদলি ও বিদায়। নতুনরা পান একটি outlet-এ সীমিত template রোল। বদলিতে আগে পুরোনো রোল যায় আর কভারের কাজের মেয়াদ ফুরায়। বিদায়ে এক্সিট আলোচনার আগেই account বন্ধ ও কী বদল। তিনটির নিচে ত্রৈমাসিক পর্যালোচনা।
অ্যাক্সেস কাজের সঙ্গে চলবে: template থেকে দেওয়া, একই দিনে সরানো, এক্সিট আলোচনার আগে তুলে নেওয়া।

নতুন যোগদান: ম্যানেজার template থেকে একটি রোল চান, রোলের দায়িত্বে থাকা ব্যক্তি অনুমোদন দেন, আর ব্যক্তি প্রথম ব্যবহারের আগে দ্বিতীয় সাইন-ইন ফ্যাক্টর চালু করেন। বদলি: আগে পুরোনো রোল সরান, তারপর নতুনটি দিন। এই ক্রমই permission জমে ওঠা ঠেকায়। বিদায়: account বন্ধ করুন (মুছবেন না, ইতিহাস থাকতে হবে), সেশন শেষ করুন, শেয়ার করা কোড আর API key বদলান, আর পড়ে থাকা অনুমোদনগুলো অন্য কাউকে দিন।

অস্থায়ী অ্যাক্সেসের জন্য আলাদা নিয়ম দরকার। "শুক্রবার পর্যন্ত রিনার কাজ সামলাবে" হয়ে দাঁড়ায় শেষ তারিখসহ একটি রোল অ্যাসাইনমেন্ট, ফলে কারও মনে না রাখলেও সেটি নিজে থেকে ফুরোয়। এই একটি সুবিধা থাকলে আমাদের সোমবারের দৃশ্যের সেই সপ্তাহান্তের পদোন্নতি আটকে যেত।

ত্রৈমাসিক অ্যাক্সেস পর্যালোচনা, ধাপে ধাপে

প্রতিটি রোল অ্যাসাইনমেন্ট অন্তত নির্দিষ্ট বিরতিতে একজন মানুষকে দিয়ে নিশ্চিত করানো উচিত। PCI DSS ৭.২.৪ স্কোপের মধ্যে থাকা system-এর জন্য সর্বোচ্চ বিরতি ধরেছে ছয় মাস; কর্মী বদল বেশি হয় এমন রিটেইলারের জন্য প্রতি তিন মাস ভালো ছন্দ। ঠিকমতো প্রস্তুতি নিলে পর্যালোচনায় এক ঘণ্টা লাগে।

  1. সব অ্যাসাইনমেন্ট এক্সপোর্ট করুন: ব্যবহারকারী, রোল, স্কোপ, শুরু ও শেষের তারিখ, শেষ সাইন-ইন।
  2. প্রতিটি outlet ম্যানেজারকে তাঁর লোকেশনের তালিকা পাঠিয়ে প্রতি লাইনে হ্যাঁ বা না চান।
  3. ৬০ দিন সাইন-ইন নেই এমন account, আর যাঁরা আর কর্মী নন, তাঁদের সরান।
  4. ওপরের ম্যাট্রিক্সের নিষিদ্ধ জোড়ার দুই অর্ধেকই যার হাতে আছে, তাঁকে চিহ্নিত করুন।
  5. "সব outlet" স্কোপের প্রতিটি তালিকাভুক্ত করে মালিককে নাম ধরে আবার অনুমোদন দিতে বলুন।
  6. কে পর্যালোচনা করলেন, কখন এবং কী বদলাল, লিখে রাখুন। পর্যালোচনা নিজেই একটি audit রেকর্ড।

কী মাপবেন

কয়েকটি সংখ্যা দেখায় নিয়ন্ত্রণগুলো কাজ করছে কি না, আর কোনোটার জন্যই dashboard প্রজেক্ট লাগে না।

  • নিজেই অনুমোদন করা স্পর্শকাতর কাজ: লক্ষ্য শূন্য। শূন্যের বেশি মানে এমন একটি নিয়ম, যা এড়ানো যায়।
  • বিদায়ী কর্মীর account বন্ধ করতে সময়: লক্ষ্য একই দিন, আদর্শ হলো এক্সিট আলোচনার আগে।
  • ৬০ দিনে সাইন-ইন নেই এমন account: প্রতি ত্রৈমাসিকে শূন্যের দিকে নামবে।
  • ব্যবহারকারী অনুযায়ী refund-এর হার, একই outlet-এর সহকর্মীদের সঙ্গে তুলনায়। যে সবার থেকে আলাদা, সে একটি প্রশ্ন, রায় নয়।
  • সপ্তাহে প্রত্যাখ্যাত চেষ্টা: কয়েকটি স্বাভাবিক, একজনের কাছ থেকে হঠাৎ একগুচ্ছ এলে কথা বলার মতো।

সোমবার সকালে ফিরে যাই

এই নিয়ন্ত্রণগুলো বসিয়ে শুরুর দৃশ্যটি আবার চালান। ক্যাশিয়ারের রোলে আছে বিক্রি আর ৫০ ডলার পর্যন্ত refund। ১৮৪ ডলারের refund যায় একজন শিফট লিডের কাছে, যিনি অন্য মানুষ, আর system একই login দুবার গ্রহণ করে না। সপ্তাহান্তের পদোন্নতিতে শেষ তারিখ বসানো, তাই সোমবারেই তা ফুরিয়ে যায়।

৪১টি refund আগের মতো ঘটে না। কয়েকটি তবু সন্দেহজনক থাকলে মালিক সাপ্তাহিক দশ মিনিটের পর্যালোচনাতেই তা পেয়ে যান, কারণ প্রতিটির সঙ্গে আছে ব্যবহারকারী, নিয়ম, অনুমোদনকারী আর হ্যাশ। তিনি এখন ক্ষতি আবিষ্কার করেন না, একটি report পড়েন।

সংক্ষেপে

  • permission, রোল আর স্কোপ আলাদা রাখুন, এবং অ্যাক্সেস চালান শুরু ও শেষের তারিখসহ অ্যাসাইনমেন্ট হিসেবে।
  • ন্যূনতম অধিকার প্রয়োগ করুন, আর প্রতিটি রোলের স্কোপ ডিফল্টভাবে একটি লোকেশনে রাখুন।
  • চারটি চিরাচরিত কনফ্লিক্ট জোড়া software-এ আটকে দিন: supplier তৈরি ও পরিশোধ, refund দেওয়া ও অনুমোদন, payroll সম্পাদনা ও চালানো, stock অ্যাডজাস্ট ও অনুমোদন।
  • স্পর্শকাতর কাজ পরিমাণ ধরে গেট করুন, অনুমোদনকারী যে অনুরোধকারী নন তা যাচাই করুন, আর সফলতার পাশাপাশি প্রত্যাখ্যানও লগ করুন।
  • audit লগকে append-only ও হ্যাশ-শৃঙ্খলিত করুন, প্রযোজ্য নিয়মের মেয়াদ ধরে রাখুন, আর একজন নির্দিষ্ট মানুষকে সাপ্তাহিক পর্যালোচনার দায়িত্ব দিন।
  • নতুন যোগদান, বদলি আর বিদায়ের ধাপ নির্দিষ্ট ক্রমে চালান, এবং প্রতি ত্রৈমাসিকে সব অ্যাক্সেস পর্যালোচনা করুন।

আনিছুর রহমান একজন সফটওয়্যার আর্কিটেক্ট এবং StoreConsole-এর নির্মাতা। বাড়তে থাকা ব্যবসার জন্য তিনি কমার্স ও ERP সিস্টেম ডিজাইন করেন — বিশেষ মনোযোগ event-driven আর্কিটেকচার, ডেটার নির্ভুলতা আর নিজের সার্ভারে চালানো সিস্টেমের ওপর।

About the Author

Anichur Rahaman

Continue Reading