একটি এক্সটেনশনের জন্য উপযুক্ত অ্যাক্সেস সেট আপ করুন

একটি এক্সটেনশনকে তার নির্দিষ্ট ক্রিয়া সম্পাদন করার জন্য, ফায়ারবেস একটি ইনস্টল করা এক্সটেনশনের প্রতিটি উদাহরণকে একটি পরিষেবা অ্যাকাউন্টের মাধ্যমে প্রকল্প এবং এর ডেটাতে সীমিত অ্যাক্সেস দেয়।

একটি পরিষেবা অ্যাকাউন্ট কী?

একটি পরিষেবা অ্যাকাউন্ট হল একটি বিশেষ ধরণের Google ব্যবহারকারী অ্যাকাউন্ট। এটি এমন একটি অ-মানব ব্যবহারকারীকে প্রতিনিধিত্ব করে যা Google পরিষেবাগুলিতে অনুমোদিত API কল করতে পারে।

একটি এক্সটেনশন ইনস্টল করার সময়, ফায়ারবেস প্রকল্পে এক্সটেনশনের জন্য একটি পরিষেবা অ্যাকাউন্ট তৈরি করে। প্রতিটি ইনস্টল করা এক্সটেনশনের নিজস্ব পরিষেবা অ্যাকাউন্ট থাকে। যদি কোনও এক্সটেনশন ইনস্ট্যান্স আনইনস্টল করা হয়, তাহলে ফায়ারবেস এক্সটেনশনের পরিষেবা অ্যাকাউন্ট মুছে ফেলে।

এক্সটেনশনের জন্য তৈরি পরিষেবা অ্যাকাউন্টগুলি এই ফর্ম্যাটে রয়েছে:

ext- extension-instance-id @ project-id .iam.gserviceaccount.com

ফায়ারবেস এক্সটেনশনের পরিষেবা অ্যাকাউন্টে নির্দিষ্ট ভূমিকা (অনুমতিগুলির বান্ডিল) বরাদ্দ করে একটি প্রকল্প এবং তার ডেটাতে এক্সটেনশনের অ্যাক্সেস সীমিত করে। যখন আপনি একটি এক্সটেনশন তৈরি করেন, তখন আপনি নির্ধারণ করেন যে আপনার এক্সটেনশনটি পরিচালনা করার জন্য কোন ভূমিকাগুলি প্রয়োজন, তারপরে আপনি এই ভূমিকাগুলি এবং আপনার এক্সটেনশনের এই ভূমিকাগুলির প্রয়োজনের কারণগুলি আপনার extension.yaml ফাইলে তালিকাভুক্ত করেন (এই পৃষ্ঠার নীচে উদাহরণ দেখুন)।

আপনার এক্সটেনশনের জন্য কোন ভূমিকাগুলি প্রয়োজন তা নির্ধারণ করুন

যখন আপনি আপনার এক্সটেনশন তৈরি করেন, তখন আপনি নির্ধারণ করেন যে আপনার এক্সটেনশনটি পরিচালনা করার জন্য কতটা অ্যাক্সেস প্রয়োজন।

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

  1. আপনার এক্সটেনশনটি কোনও পণ্যের সাথে ইন্টারঅ্যাক্ট করে কিনা তা নির্ধারণ করুন:

    • যদি আপনার এক্সটেনশনটি কোনও পণ্যের সাথে ইন্টারঅ্যাক্ট করে , তাহলে আপনাকে আপনার এক্সটেনশনটিকে সেই পণ্যটিতে অ্যাক্সেস দিতে হবে।

      উদাহরণস্বরূপ, যদি আপনার এক্সটেনশনটি একটি Realtime Database ইনস্ট্যান্সে ডেটা লেখে , তাহলে আপনার এক্সটেনশনের একটি Realtime Database ভূমিকা (বিশেষ করে, firebasedatabase.admin ) প্রয়োজন।

    • যদি আপনার এক্সটেনশনটি কোনও পণ্য থেকে কোনও ট্রিগারিং ইভেন্ট শোনে , তাহলে আপনার এক্সটেনশনটির সেই পণ্যের সাথে সম্পর্কিত কোনও ভূমিকার প্রয়োজন নেই

      উদাহরণস্বরূপ, যদি আপনার এক্সটেনশনটি Realtime Database ইনস্ট্যান্সে লেখার সময় ট্রিগার হয় (কিন্তু ডাটাবেসে কিছুই লেখে না), তাহলে আপনার এক্সটেনশনের Realtime Database ভূমিকার প্রয়োজন নেই

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

    উদাহরণস্বরূপ, ধরুন আপনার এক্সটেনশনটি একটি Cloud Storage বাকেটের সাথে ইন্টারঅ্যাক্ট করে। storage.objectCreator ভূমিকাটি এক্সটেনশনটিকে Cloud Storage বাকেটের মধ্যে একটি অবজেক্ট তৈরি করার অনুমতি দেবে, কিন্তু সেই ভূমিকাটি এক্সটেনশনটিকে অবজেক্টগুলি দেখতে, মুছে ফেলতে বা ওভাররাইট করার অনুমতি দেবে না। এক্সটেনশনটিকে অতিরিক্ত ক্রিয়া সম্পাদন করতে সক্ষম করতে, আপনাকে পরিবর্তে storage.objectAdmin ভূমিকাটি বরাদ্দ করতে হবে।

আপনার এক্সটেনশনের পরিষেবা অ্যাকাউন্টে আপনি যে সমস্ত সমর্থিত ভূমিকা বরাদ্দ করতে পারেন তা দেখতে এই পৃষ্ঠার নীচের অংশটি দেখুন। প্রতিটি ভূমিকার বিবরণ এবং প্রদত্ত অনুমতি সম্পর্কে জানতে, Firebase ডকুমেন্টেশন বা Google Cloud ডকুমেন্টেশন দেখুন। আপনি Google Cloud কনসোলের IAM এবং অ্যাডমিন প্যানেলেও ভূমিকাগুলি দেখতে পারেন।

একটি এক্সটেনশনে কীভাবে ভূমিকা নির্ধারণ করবেন

আপনার extension.yaml ফাইলের roles বিভাগে আপনার এক্সটেনশনটি পরিচালনা করার জন্য প্রয়োজনীয় IAM ভূমিকাগুলি তালিকাভুক্ত করুন।

এখানে একটি এক্সটেনশনের উদাহরণ দেওয়া হল যা একটি নির্দিষ্ট Firebase Realtime Database পাথ শোনে। ট্রিগার করা হলে, এক্সটেনশনটি একটি ব্যবহারকারী অ্যাকাউন্টের ইমেল ( Firebase Authentication সাথে ইন্টারঅ্যাকশন) আপডেট করে এবং একটি বিজ্ঞপ্তি পাঠায় ( Firebase Cloud Messaging এর সাথে ইন্টারঅ্যাকশন)। নিম্নলিখিতগুলি লক্ষ্য করুন:

  • যদিও এক্সটেনশনটি একটি Realtime Database ইভেন্ট থেকে ট্রিগার হয় , firebasedatabase.admin ভূমিকা তালিকাভুক্ত করা হয় না (শ্রবণকে একটি ইন্টারঅ্যাকশন হিসাবে বিবেচনা করা হয় না)।
  • যেহেতু এক্সটেনশনটি Authentication এবং Cloud Messaging সাথে ইন্টারঅ্যাক্ট করে , তাই এক্সটেনশনটির সেই পণ্যগুলি অ্যাক্সেস করার জন্য ভূমিকা প্রয়োজন (যথাক্রমে firebaseauth.admin এবং firebasenotifications.admin )।
# extension.yaml
...

# Roles assigned to the extension's service account by Firebase during installation
roles:
  - role: firebaseauth.admin
    reason: Required to update the email address of the user account

  - role: firebasenotifications.admin
    reason: Required to send a notification that the email address has been updated

...

আপনার extension.yaml ফাইলে, একটি এক্সটেনশনের পরিষেবা অ্যাকাউন্টে একটি ভূমিকা নির্ধারণ করতে নিম্নলিখিত ক্ষেত্রগুলি ব্যবহার করুন:

মাঠ আদর্শ বিবরণ
role
(প্রয়োজনীয়)
স্ট্রিং এক্সটেনশনটি পরিচালনা করার জন্য প্রয়োজনীয় IAM ভূমিকার নাম
reason
(প্রয়োজনীয়)
স্ট্রিং

ভূমিকার দ্বারা এক্সটেনশনের কেন অ্যাক্সেস প্রয়োজন তার সংক্ষিপ্ত বিবরণ

ব্যবহারকারী যাতে বুঝতে পারেন যে এক্সটেনশনটি কীভাবে ভূমিকাটি ব্যবহার করে, সেজন্য পর্যাপ্ত বিশদ বিবরণ প্রদান করতে ভুলবেন না।

resource
(ঐচ্ছিক)
স্ট্রিং

কোন রিসোর্সের IAM নীতিতে এই ভূমিকাটি যোগ করা উচিত। বাদ দিলে, ডিফল্টভাবে projects/${project_id} তে সেট করা হবে।

সমর্থিত মানগুলি হল projects/* এবং projects/*/buckets/*

ভূমিকার পরিধি হ্রাস করুন

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

roles:
  - role: storage.objectCreator
    reason: Needed in order to write
    resource: projects/${PROJECT_ID}/buckets/${STORAGE_BUCKET}

এর ফলে এক্সটেনশনটি কেবল তার প্রয়োজনীয় বাকেটটি অ্যাক্সেস করতে পারবে, একই প্রকল্পের অন্যদের নয়।

এই ক্ষেত্রটি প্রকল্প ( projects/{project_id} ) এবং স্টোরেজ বাকেট ( projects/{project_id}/buckets/{bucket_id} ) সমর্থন করে।

এক্সটেনশনের জন্য সমর্থিত ভূমিকা

নিম্নলিখিত টেবিলে Firebase পণ্যের সাথে ইন্টারঅ্যাক্ট করার জন্য সমর্থিত IAM ভূমিকাগুলি তালিকাভুক্ত করা হয়েছে। এই টেবিলের বেশিরভাগ ভূমিকা Firebase পণ্য-স্তরের ভূমিকা , তবে কিছু সরাসরি Google Cloud (বিশেষ করে, Cloud Firestore এবং Cloud Storage ) দ্বারা পরিচালিত হয়।

ফায়ারবেস পণ্য

যদি আপনার এক্সটেনশন... এর সাথে ইন্টারঅ্যাক্ট করে। এই ভূমিকাগুলির মধ্যে একটি নির্ধারণ করুন...
Cloud Firestore ডেটাস্টোর.ইম্পোর্টএক্সপোর্টঅ্যাডমিন
ডেটাস্টোর.ইন্ডেক্সঅ্যাডমিন
ডেটাস্টোর.মালিক
ডেটাস্টোর.ইউজার
ডেটাস্টোর.ভিউয়ার
Cloud Storage for Firebase স্টোরেজ.অ্যাডমিন
স্টোরেজ.অবজেক্টঅ্যাডমিন
storage.objectCreator সম্পর্কে
স্টোরেজ.অবজেক্টভিউয়ার
Firebase App Distribution firebaseappdistro.admin সম্পর্কে
firebaseappdistro.viewer সম্পর্কে
Firebase Authentication firebaseauth.admin সম্পর্কে
firebaseauth.viewer সম্পর্কে
Firebase A/B Testing firebaseabt.admin সম্পর্কে
firebaseabt.viewer সম্পর্কে
Firebase Cloud Messaging firebasenotifications.admin সম্পর্কে
firebasenotifications.viewer সম্পর্কে
Firebase Crashlytics firebasecrashlytics.admin সম্পর্কে
firebasecrashlytics.viewer সম্পর্কে
Firebase Hosting firebasehosting.admin সম্পর্কে
firebasehosting.viewer সম্পর্কে
Firebase In-App Messaging firebaseinappmessaging.admin সম্পর্কে
firebaseinappmessaging.viewer সম্পর্কে
Firebase ML firebaseml.admin সম্পর্কে
firebaseml.viewer সম্পর্কে
Firebase Performance Monitoring firebaseperformance.viewer সম্পর্কে
firebaseperformance.reader সম্পর্কে
firebaseperformance.writer সম্পর্কে
Firebase Realtime Database firebasedatabase.admin সম্পর্কে
firebasedatabase.viewer সম্পর্কে
নিরাপত্তা নিয়ম firebaserules.viewer সম্পর্কে
firebaserules.developer সম্পর্কে
firebaserules.deployer সম্পর্কে
Google Analytics firebaseanalytics.admin সম্পর্কে
firebaseanalytics.viewer সম্পর্কে

গুগল ক্লাউড পণ্য

গুগল ক্লাউড ডকুমেন্টেশনে এই ভূমিকাগুলি সম্পর্কে জানুন।

যদি আপনার এক্সটেনশন... এর সাথে ইন্টারঅ্যাক্ট করে। এই ভূমিকাগুলির মধ্যে একটি নির্ধারণ করুন...
কর্ম অ্যাকশন। অ্যাডমিন
অ্যাকশন। ভিউয়ার
এপিজি apigee.analyticsএজেন্ট
apigee.analyticsসম্পাদক
apigee.analyticsViewer সম্পর্কে
apigee.apiস্রষ্টা
অনুসরণ
apigee.developerঅ্যাডমিন
apigee.readOnlyAdmin সম্পর্কে
apigee.synchronizerম্যানেজার
App Engine অ্যাপইঞ্জিন.অ্যাপঅ্যাডমিন
অ্যাপইঞ্জিন.অ্যাপভিউয়ার
অ্যাপইঞ্জিন.কোডভিউয়ার
অ্যাপইঞ্জিন.ডিপ্লয়ার
অ্যাপইঞ্জিন.সার্ভিস অ্যাডমিন
অটোএমএল automl.editor সম্পর্কে
automl.predictor সম্পর্কে
automl.viewer সম্পর্কে
বিগকুয়েরি bigquery.connectionAdmin সম্পর্কে
bigquery.connectionব্যবহারকারী
bigquery.dataEditor সম্পর্কে
bigquery.data মালিক
bigquery.dataViewer সম্পর্কে
bigquery.jobব্যবহারকারী
bigquery.metadataViewer সম্পর্কে
bigquery.readSessionUser সম্পর্কে
bigquery.user সম্পর্কে
ক্লাউড বিগটেবিল bigtable.reader সম্পর্কে
bigtable.user সম্পর্কে
অনুসরণ
বিলিং বিলিং.ভিউয়ার
Hangout চ্যাট চ্যাট.মালিক
চ্যাট.রিডার
ক্লাউড অ্যাসেট অনুসরণ
অনুসরণ
ক্লাউড ডেটা ফিউশন ডেটাফিউশন.অ্যাডমিন
ডেটাফিউশন.ভিউয়ার
ক্লাউড ডিবাগার ক্লাউডডিবাগার.এজেন্ট
ক্লাউডডিবাগার.ব্যবহারকারী
ক্লাউড ফাংশন ক্লাউডফাংশন.ইনভোকার
ক্লাউডফাংশন.ভিউয়ার
ক্লাউড আইএপি iap.admin সম্পর্কে
iap.httpsরিসোর্সঅ্যাক্সেসর
iap.settingsঅ্যাডমিন
iap.tunnelরিসোর্সঅ্যাক্সেসর
ক্লাউড আইওটি ক্লাউডিওট.ডিভাইসকন্ট্রোলার
ক্লাউডিওট.এডিটর
ক্লাউডিওট.প্রোভিশনার
ক্লাউডিওট.ভিউয়ার
স্ট্যাকড্রাইভার প্রোফাইলার ক্লাউডপ্রোফাইলার.এজেন্ট
ক্লাউডপ্রোফাইলার.ইউজার
Cloud Scheduler ক্লাউডশিডিউলার.অ্যাডমিন
ক্লাউডশিডিউলার.জবরানার
ক্লাউডশিডিউলার.ভিউয়ার
ক্লাউড সিকিউরিটি স্ক্যানার ক্লাউডসিকিউরিটিস্ক্যানার.এডিটর
ক্লাউডসিকিউরিটিস্ক্যানার.রানার
ক্লাউডসিকিউরিটিস্ক্যানার.ভিউয়ার
ক্লাউড এসকিউএল ক্লাউডস্কিএল.ক্লায়েন্ট
ক্লাউডস্কিএল.এডিটর
ক্লাউডস্কিএল.ভিউয়ার
ক্লাউড ট্রেস ক্লাউডট্রেস.অ্যাডমিন
ক্লাউডট্রেস.এজেন্ট
ক্লাউডট্রেস.ইউজার
ডেটাফ্লো ডেটাফ্লো.ডেভেলপার
ডেটাফ্লো.ভিউয়ার
ডেটাফ্লো.ওয়ার্কার
ডায়ালগফ্লো ডায়ালগফ্লো.অ্যাডমিন
ডায়ালগফ্লো.ক্লায়েন্ট
ডায়ালগফ্লো.রিডার
ক্লাউড ডেটা ক্ষতি প্রতিরোধ dlp.reader সম্পর্কে
dlp.user সম্পর্কে
ত্রুটি প্রতিবেদন errorreporting.user সম্পর্কে
ত্রুটি প্রতিবেদন.দর্শক
ত্রুটি প্রতিবেদন লেখক
ইভেন্টার্ক অনুসরণ
eventarc.eventReceiver সম্পর্কে
ক্লাউড ফাইলস্টোর ফাইল.এডিটর
ফাইল.ভিউয়ার
লগিং logging.configWriter সম্পর্কে
লগিং.লগ রাইটার
লগিং.প্রাইভেটলগভিউয়ার
লগিং.ভিউয়ার
মেশিন লার্নিং ইঞ্জিন ml.developer সম্পর্কে
ml.jobমালিক
ml.modelOwner সম্পর্কে
ml.modelUser সম্পর্কে
ml.operationমালিক
ml.viewer সম্পর্কে
পর্যবেক্ষণ পর্যবেক্ষণ.সম্পাদক
monitoring.metricWriter সম্পর্কে
পর্যবেক্ষণ.দর্শক
এআই নোটবুক নোটবুক.অ্যাডমিন
নোটবুক.ভিউয়ার
Pub/Sub pubsub.editor সম্পর্কে
অনুসরণ
অনুসরণ
অনুসরণ
মেমোরিস্টোর রেডিস redis.editor সম্পর্কে
redis.viewer সম্পর্কে
ক্লাউড রান রান.ইনভোকার
উৎস সোর্স.রিডার
উৎস.লেখক
ক্লাউড স্প্যানার স্প্যানার.ডাটাবেসঅ্যাডমিন
স্প্যানার.ডাটাবেসরিডার
spanner.databaseব্যবহারকারী
অনুসরণ
পরিষেবা ব্যবহার serviceusage.apiKeysমেটাডেটাভিউয়ার
ক্লাউড স্টোরেজ ট্রান্সফার পরিষেবা storagetransfer.user সম্পর্কে
স্টোরেজট্রান্সফার.ভিউয়ার
ক্লাউড ট্রান্সকোডার ট্রান্সকোডার.অ্যাডমিন
ট্রান্সকোডার.ভিউয়ার
ভার্টেক্স এআই aiplatform.user সম্পর্কে
অন্যান্য আইডেন্টিটিটুলকিট.অ্যাডমিন
আইডেন্টিটিটুলকিট.ভিউয়ার