Google 致力于为黑人社区推动种族平等。查看具体举措

ফায়ারবেস সুরক্ষা বিধিগুলি পরিচালনা করুন এবং মোতায়েন করুন

ফায়ারবেস সিএলআই ব্যবহার করুন

ফায়ারবেস সিএলআই ব্যবহার করে বিধিগুলি সম্পাদনা করুন এবং মোতায়েন করুন। সিএলআই ব্যবহার করে আপনাকে আপনার অ্যাপ্লিকেশন কোড সহ আপনার বিধিগুলি সংস্করণ নিয়ন্ত্রণে রাখতে এবং আপনার বিদ্যমান স্থাপনার প্রক্রিয়ার অংশ হিসাবে নিয়ম মোতায়েনের অনুমতি দেয়।

একটি কনফিগারেশন ফাইল তৈরি করুন

আপনি যখন ফায়ারবেস সিএলআই ব্যবহার করে আপনার ফায়ারবেস প্রকল্পটি কনফিগার করেন, আপনি আপনার প্রকল্প ডিরেক্টরিতে একটি .rules কনফিগারেশন ফাইল তৈরি করেন। আপনার ফায়ারবেস প্রকল্পটি কনফিগার করতে শুরু করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

ক্লাউড ফায়ার স্টোর

// Set up Firestore in your project directory, creates a .rules file
firebase init firestore

রিয়েলটাইম ডাটাবেস

// Set up Realtime Database in your project directory, creates a .rules file
firebase init database

মেঘ স্টোরেজ

// Set up Storage in your project directory, creates a .rules file
firebase init storage

আপনার বিধিগুলি সম্পাদনা করুন এবং আপডেট করুন

আপনার নিয়মগুলি সরাসরি .rules কনফিগারেশন ফাইলে সম্পাদনা করুন। আপনি নিশ্চিত করুন যে ফায়ারবেস সিএলআই-এ আপনার করা কোনও সম্পাদনা ফায়ারবেস কনসোলে প্রতিফলিত হয়েছে বা আপনি ফায়ারবেস কনসোল বা ফায়ারবেস সিএলআই ব্যবহার করে ধারাবাহিকভাবে আপডেট করেন make অন্যথায়, আপনি ফায়ারবেস কনসোলে তৈরি কোনও আপডেট ওভাররাইট করতে পারেন।

আপনার আপডেট পরীক্ষা করুন

স্থানীয়ভাবে আপনার আপডেটগুলি পরীক্ষা করতে ফায়ারবেস এমুলেটরটি ব্যবহার করুন এবং নিশ্চিত করুন যে আপনার অ্যাপের বিধিগুলি আপনার পছন্দমতো আচরণ প্রদর্শন করে ex

আপনার আপডেট স্থাপন করুন

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

ক্লাউড ফায়ার স্টোর

// Deploy your .rules file
firebase deploy --only firestore:rules

রিয়েলটাইম ডাটাবেস

// Deploy your .rules file
firebase deploy --only database

মেঘ স্টোরেজ

// Deploy your .rules file
firebase deploy --only storage

ফায়ারবেস কনসোল ব্যবহার করুন

আপনি ফায়ারবেস কনসোল থেকে বিধিগুলি সম্পাদনা ও মোতায়েন করতে পারেন।

আপনার বিধিগুলি সম্পাদনা করুন এবং আপডেট করুন

  1. ফায়ারবেস কনসোলটি খুলুন এবং আপনার প্রকল্পটি নির্বাচন করুন।
  2. তারপরে, পণ্য নেভিগেশন থেকে রিয়েলটাইম ডেটাবেস , ক্লাউড ফায়ার স্টোর বা স্টোরেজ নির্বাচন করুন, তারপরে বিধি সম্পাদকে নেভিগেট করতে নিয়মগুলি ক্লিক করুন।
  3. আপনার নিয়মগুলি সরাসরি সম্পাদকে সম্পাদনা করুন।

আপনার আপডেট পরীক্ষা করুন

আপনি নিয়ম সিমুলেটরটি ব্যবহার করে সরাসরি আপনার ফায়ারবেস কনসোলে আপনার বিধিবিধানের আচরণ পরীক্ষা করতে পারেন। রুলস এডিটরটিতে সিমুলেটর স্ক্রিনটি খুলুন, সেটিংস সংশোধন করুন এবং রান ক্লিক করুন। সম্পাদকের শীর্ষে নিশ্চিতকরণ বার্তাটি সন্ধান করুন।

আপনার আপডেট স্থাপন করুন

একবার আপনি সন্তুষ্ট হন যে আপনার আপডেটগুলি আপনি যা প্রত্যাশা করেন তা প্রকাশ করুন ক্লিক করুন

অ্যাডমিন এসডিকে ব্যবহার করুন

আপনি প্রোগ্রামে সুরক্ষা বিধি তৈরি করতে, পরিচালনা করতে এবং স্থাপন করতে নোড.জেএস এর জন্য অ্যাডমিন এসডিকে ব্যবহার করতে পারেন। এই প্রোগ্রাম্যাটিক অ্যাক্সেসের সাহায্যে আপনি:

  • নিয়ম পরিচালনার জন্য কাস্টম সরঞ্জাম, স্ক্রিপ্ট, ড্যাশবোর্ড এবং সিআই / সিডি পাইপলাইন প্রয়োগ করুন।
  • একাধিক ফায়ারবেস প্রকল্প জুড়ে নিয়মগুলি আরও সহজে পরিচালনা করুন।

প্রোগ্রামগুলি নিয়মে আপডেট করার সময়, আপনার অ্যাপ্লিকেশনটির অ্যাক্সেস নিয়ন্ত্রণে অনিচ্ছাকৃত পরিবর্তনগুলি এড়ানো উচিত। সুরক্ষার কথা মাথায় রেখে আপনার প্রশাসন এসডিকে কোডটি লিখুন, বিশেষত নিয়ম আপডেট করার সময় বা প্রয়োগ করার সময় when

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

এই সীমাগুলিও নোট করুন:

  • সিরিয়ালযুক্ত হওয়ার সময় নিয়মগুলি অবশ্যই ইউটিএফ -8 এনকোডযুক্ত পাঠ্যের 64 কিবি এর চেয়ে কম হতে হবে।
  • একটি প্রকল্পে সর্বাধিক 2500 টি মোতায়েন করা নিয়মকানুন থাকতে পারে। একবার এই সীমাটি পৌঁছে গেলে, নতুন তৈরি করার আগে আপনাকে অবশ্যই কিছু পুরানো রুলসেটগুলি মুছতে হবে।

ক্লাউড স্টোরেজ বা ক্লাউড ফায়ার স্টোর বিধি তৈরি করুন এবং মোতায়েন করুন

অ্যাডমিন এসডিকে দিয়ে সুরক্ষা বিধি পরিচালনার জন্য একটি সাধারণ ওয়ার্কফ্লোতে তিনটি পৃথক পদক্ষেপ অন্তর্ভুক্ত থাকতে পারে:

  1. একটি বিধি ফাইল তৈরি করুন (alচ্ছিক)
  2. একটি রুলসেট তৈরি করুন
  3. রিলিজ করুন বা মোতায়েন করুন, নতুন রুলসেটটি

ক্লাব স্টোরেজ এবং ক্লাউড ফায়ারস্টোর সুরক্ষা বিধিগুলির জন্য এই পদক্ষেপগুলিকে একক এপিআই কলের সাথে সংযুক্ত করার জন্য এসডিকে একটি পদ্ধতি সরবরাহ করে। উদাহরণ স্বরূপ:

    const source = `service cloud.firestore {
      match /databases/{database}/documents {
        match /carts/{cartID} {
          allow create: if request.auth != null && request.auth.uid == request.resource.data.ownerUID;
          allow read, update, delete: if request.auth != null && request.auth.uid == resource.data.ownerUID;
        }
      }
    }`;
    // Alternatively, load rules from a file
    // const fs = require('fs');
    // const source = fs.readFileSync('path/to/firestore.rules', 'utf8');

    await admin.securityRules().releaseFirestoreRulesetFromSource(source);

এই একই প্যাটার্নটি releaseFirestoreRulesetFromSource() সহ ক্লাউড স্টোরেজ নিয়মের জন্য কাজ করে।

বিকল্পভাবে, আপনি এই ইভেন্টগুলির নিবিড় নিয়ন্ত্রণের জন্য একটি মেমোরি অবজেক্ট হিসাবে নিয়ম ফাইল তৈরি করতে পারেন, রোলসেট তৈরি করতে পারেন এবং আলাদাভাবে নিয়মকোষ স্থাপন করতে পারেন। উদাহরণ স্বরূপ:

    const rf = admin.securityRules().createRulesFileFromSource('firestore.rules', source);
    const rs = await admin.securityRules().createRuleset(rf);
    await admin.securityRules().releaseFirestoreRuleset(rs);

রিয়েলটাইম ডেটাবেস রুলসেটগুলি আপডেট করুন

অ্যাডমিন এসডিকে দিয়ে রিয়েলটাইম ডেটাবেস রুলসেটগুলি আপডেট করতে, অ্যাডমিন.ড্যাটাবেসনের getRules() এবং setRules() পদ্ধতিগুলি ব্যবহার admin.database । আপনি JSON ফর্ম্যাটে রুলসেটগুলি পুনরুদ্ধার করতে পারেন, বা মন্তব্যগুলির সাথে স্ট্রিং হিসাবে অন্তর্ভুক্ত করতে পারেন।

একটি রুলসেট আপডেট করতে:

    const source = `{
      "rules": {
        "scores": {
          ".indexOn": "score",
          "$uid": {
            ".read": "$uid == auth.uid",
            ".write": "$uid == auth.uid"
          }
        }
      }
    }`;
    await admin.database().setRules(source);

রুলসেটগুলি পরিচালনা করুন

বৃহত্তর রুলসেটগুলি পরিচালনা করতে সহায়তা করতে, অ্যাডমিন এসডিকে আপনাকে প্রশাসনিক.সিকিউরিটি রুলস admin.securityRules().listRulesetMetadata দিয়ে সমস্ত বিদ্যমান নিয়ম তালিকাভুক্ত করতে দেয়। উদাহরণ স্বরূপ:

    const allRulesets = [];
    let pageToken = null;
    while (true) {
      const result = await admin.securityRules().listRulesetMetadata(pageToken: pageToken);
      allRulesets.push(...result.rulesets);
      pageToken = result.nextPageToken;
      if (!pageToken) {
        break;
      }
    }

সময়ের সাথে 2500-বিধি সীমাতে পৌঁছে যাওয়া খুব বড় রুলসেটের জন্য, আপনি একটি নির্দিষ্ট সময় চক্রের প্রাচীনতম বিধি মোছার জন্য যুক্তি তৈরি করতে পারেন। উদাহরণস্বরূপ, 30 দিনের বেশি সময় ধরে মোতায়েন করা সমস্ত নিয়ম সেট মুছতে:

0 বি 2585cac0