আমি আমার প্রোডাকশন DB-তে AI চালাই। যা ঘটেছিল তা এখানে দেওয়া হলো।

গত মঙ্গলবার রাত ৩টার সময়, আমার সিস্টেমে প্রতি মিনিটে ১২,০০০টি রাইট (writes) সম্পন্ন হচ্ছিল। একটি লুপ সবকিছু ফ্রিজ করে দেয়। বাগটি ছিল একটি সাধারণ এক লাইনের ভুল। কিন্তু এর কারণ ছিল আরও ভয়াবহ।

ডেটাবেস মাইগ্রেশন চালানোর সময় আমি Claude Code-এ একটি পারমিশন স্কিপ ফ্ল্যাগ (permission skip flag) চালু করে দিয়েছিলাম। আমি ভেবেছিলাম আমি আমার স্টেজিং এনভায়রনমেন্ট (staging environment) ব্যবহার করছি। আমি ভুল ছিলাম। আমি আমার env ফাইলটি ভুলভাবে কনফিগার করেছিলাম। ডেভেলপমেন্ট ক্রেডেনশিয়ালের পরিবর্তে আমি প্রোডাকশন ক্রেডেনশিয়াল লোড করে ফেলেছিলাম।

Claude কোনো অনুমতির কথা জিজ্ঞেস করেনি। ফ্ল্যাগটি তাকে না জিজ্ঞেস করার নির্দেশ দিয়েছিল। মাইগ্রেশনটি একটি কলাম ড্রপ (drop) করার পরিবর্তে একটি নতুন কলাম যোগ করে ফেলেছিল। আমি কোনো ডেটা হারাইনি, তবে অল্পের জন্য বেঁচে গিয়েছিলাম।

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

শুধু ফ্ল্যাগটি বন্ধ করা যথেষ্ট নয়। এটি কেবল একটি প্রম্পট যোগ করবে যা রাত ৩টার ক্লান্তিতে আপনি চোখ বুজে ক্লিক করে দেবেন।

আমি আমার সেটিংস ফাইলে একটি deny rule যোগ করে এটি সমাধান করেছি।

আমি লোকাল কমান্ডের জন্য একটি নির্দিষ্ট allow rule ব্যবহার করি। অন্যান্য সব ডেটাবেস কমান্ডের জন্য আমি একটি deny rule ব্যবহার করি। এক্ষেত্রে নির্দিষ্ট নিয়মটিই কার্যকর হয়। এটি প্রোডাকশন ডেটাবেস কমান্ডগুলো চলার আগেই আটকে দেয়।

আমি এখন নিরাপত্তার তিনটি স্তর ব্যবহার করি:

  • কঠোর allow এবং deny রুলসহ একটি সেটিংস ফাইল।
  • মাইগ্রেশনের জন্য একটি আলাদা git worktree যা শুধুমাত্র স্টেজিং ক্রেডেনশিয়াল ধারণ করে।
  • একটি CLAUDE.md ফাইল যা AI-কে প্রোডাকশন স্পর্শ করার আগে অনুমতি চাইতে নির্দেশ দেয়।

মনে রাখবেন, দীর্ঘ চ্যাট সেশনে CLAUDE.md-এর নির্দেশাবলী গুরুত্ব হারাতে পারে। তাই আপনাকে আপনার প্রম্পটে গুরুত্বপূর্ণ নিয়মগুলো পুনরায় উল্লেখ করতে হবে।

আমি আমার সেটআপ এবং সঠিক কনফিগারেশনের একটি বিস্তারিত বিবরণ লিখেছি।

উৎস: https://dev.to/riversea/i-let-claude-code-run-dangerously-skip-permissions-on-my-production-db-heres-what-i-changed-4p8

ঐচ্ছিক লার্নিং কমিউনিটি: https://t.me/GyaanSetuAi