Cloud Firestore-এর জন্য সার্ভার ক্লায়েন্ট লাইব্রেরি ব্যবহার করার সময়, আপনি পরিচয় ও অ্যাক্সেস ম্যানেজমেন্ট (IAM) ব্যবহার করে আপনার রিসোর্সের অ্যাক্সেস ম্যানেজ করতে পারবেন। IAM আপনাকে নির্দিষ্ট Google Cloud রিসোর্সে আরও গ্র্যানুলার অ্যাক্সেস দিতে দেয় এবং অন্যান্য রিসোর্সে অবাঞ্ছিত অ্যাক্সেস প্রতিরোধ করে। এই পৃষ্ঠায় Cloud Firestore-এর জন্য IAM অনুমতি ও ভূমিকা বর্ণনা করা হয়েছে। IAM-এর বিস্তারিত বিবরণের জন্য, IAM ডকুমেন্টেশন পড়ুন।
IAM আপনাকে সবচেয়ে কম প্রিভিলেজ সংক্রান্ত নিরাপত্তা নীতি গ্রহণ করতে দেয়, যাতে আপনি নিজের রিসোর্সে শুধুমাত্র প্রয়োজনীয় অ্যাক্সেস প্রদান করেন।
IAM নীতি সেট করার মাধ্যমে IAM আপনাকে কোন রিসোর্সের জন্য কার (ব্যবহারকারী)
কী (ভূমিকা) অনুমতি আছে তা নিয়ন্ত্রণ করতে দেয়।
IAM নীতি কোনও ব্যবহারকারীকে এক বা একাধিক ভূমিকা প্রদান করে, যার ফলে
ব্যবহারকারী নির্দিষ্ট কিছু অনুমতি পান। যেমন, আপনি কোনও ব্যবহারকারীকে datastore.indexAdmin
ভূমিকা দিতে পারেন, যা ব্যবহারকারীকে ইন্ডেক্স তৈরি, পরিবর্তন, মুছে ফেলা, তালিকাভুক্ত করা বা দেখার অনুমতি দেয়।
অনুমতি ও ভূমিকা
এই বিভাগে Cloud Firestore-এর সমর্থিত অনুমতি ও ভূমিকার সারসংক্ষেপ রয়েছে।
API পদ্ধতির জন্য প্রয়োজনীয় অনুমতি
নিম্নলিখিত সারণীতে প্রতিটি অ্যাকশন পারফর্ম করার জন্য কলারের কাছে যেসব অনুমতি থাকতে হবে তার তালিকা দেওয়া হল:
| পদ্ধতি | প্রয়োজনীয় অনুমতি |
|---|---|
projects.databases.documents |
|
batchGet |
datastore.entities.get |
batchWrite false-এ সেট করা আগে থেকে থাকা পূর্বশর্ত সহ আপডেট বা ট্রান্সফর্ম করুন |
datastore.entities.create |
batchWrite true-এ সেট করা আগে থেকে থাকা পূর্বশর্ত সহ আপডেট বা ট্রান্সফর্ম করুন |
datastore.entities.create |
batchWrite কোনও পূর্বশর্ত ছাড়াই আপডেট বা পরিবর্তন করুন |
datastore.entities.create |
beginTransaction |
datastore.databases.get |
commit false-এ সেট করা আগে থেকে থাকা পূর্বশর্ত সহ আপডেট বা ট্রান্সফর্ম করুন |
datastore.entities.create |
commit true-এ সেট করা আগে থেকে থাকা পূর্বশর্ত সহ আপডেট বা ট্রান্সফর্ম করুন |
datastore.entities.update |
commit কোনও পূর্বশর্ত ছাড়াই আপডেট বা পরিবর্তন করুন |
datastore.entities.create |
commit মুছুন |
datastore.entities.delete |
createDocument |
datastore.entities.create |
delete |
datastore.entities.delete |
get |
datastore.entities.get |
list |
datastore.entities.getdatastore.entities.list |
listCollectionIds |
datastore.entities.list |
partitionQuery |
datastore.entities.get |
patch |
datastore.entities.update |
rollback |
datastore.databases.get |
runAggregationQuery |
datastore.entities.get |
runQuery |
datastore.entities.get |
executePipeline (RPC)নিচে উল্লেখ করা যেকোনও স্টেজের সাথে: - collection(...)- collection_group(...)- database()
|
datastore.entities.get
|
executePipeline (RPC)নিম্নলিখিত যেকোনও স্টেজ সহ: - documents(...) |
datastore.entities.get
|
executePipeline (RPC)নিম্নলিখিত যেকোনও স্টেজ সহ: - update(...) |
datastore.entities.update
|
executePipeline (RPC)নিম্নলিখিত যেকোনও স্টেজ সহ: - delete(...) |
datastore.entities.delete
|
write (RPC) false-এ সেট করা আগে থেকে থাকা পূর্বশর্ত সহ আপডেট বা ট্রান্সফর্ম করুন |
datastore.entities.create |
write (RPC) true-এ সেট করা আগে থেকে থাকা পূর্বশর্ত সহ আপডেট বা ট্রান্সফর্ম করুন |
datastore.entities.update |
write (RPC) কোনও পূর্বশর্ত ছাড়াই আপডেট বা পরিবর্তন করুন |
datastore.entities.create |
write (RPC) মুছুন |
datastore.entities.delete |
projects.databases.indexes |
|
create |
datastore.schemas.create |
delete |
datastore.schemas.delete |
get |
datastore.schemas.get |
list |
datastore.schemas.list |
projects.databases |
|
create |
datastore.databases.createআপনার
আপনি যদি ট্যাগ বাইন্ডিংগুলি তালিকাভুক্ত করে সফলভাবে সেট করা হয়েছে কিনা তা যাচাই করতে চান, তাহলে নিম্নলিখিত অতিরিক্ত অনুমতির প্রয়োজন হবে:
|
delete |
datastore.databases.delete |
get |
datastore.databases.getMetadata |
list |
datastore.databases.list |
patch |
datastore.databases.update |
| ফিরিয়ে আনুন | datastore.backups.restoreDatabase |
clone |
datastore.databases.cloneআপনার
আপনি যদি ট্যাগ বাইন্ডিংগুলি তালিকাভুক্ত করে সফলভাবে সেট করা হয়েছে কিনা তা যাচাই করতে চান, তাহলে নিম্নলিখিত অতিরিক্ত অনুমতির প্রয়োজন হবে:
|
projects.locations |
|
get |
datastore.locations.get |
list |
datastore.locations.list |
projects.databases.backupschedules |
|
| পেয়ে যান | datastore.backupSchedules.get |
| তালিকা | datastore.backupSchedules.list |
| তৈরি করুন | datastore.backupSchedules.create |
| আপডেট করুন | datastore.backupSchedules.update |
| মুছুন | datastore.backupSchedules.delete |
projects.locations.backups |
|
| পেয়ে যান | datastore.backups.get |
| তালিকা | datastore.backups.list |
| মুছুন | datastore.backups.delete |
আগে থেকে নির্ধারিত ভূমিকা
IAM-এর মাধ্যমে, Cloud Firestore-এ প্রতিটি API পদ্ধতির জন্য প্রয়োজন যে API অনুরোধ করা অ্যাকাউন্টের কাছে রিসোর্স ব্যবহার করার জন্য উপযুক্ত অনুমতি আছে। ব্যবহারকারী, গ্রুপ বা পরিষেবা অ্যাকাউন্টকে ভূমিকা প্রদান করে এমন নীতি সেট করার মাধ্যমে অনুমতি দেওয়া হয়। মালিক, এডিটর ও দর্শক-এর মতো আদিম ভূমিকা ছাড়াও, আপনার প্রোজেক্টের ব্যবহারকারীদের আপনি Cloud Firestore ভূমিকা দিতে পারবেন।
নিম্নলিখিত সারণীতে Cloud Firestore IAM ভূমিকার তালিকা দেওয়া হয়েছে। আপনি কোনও ব্যবহারকারী, গ্রুপ বা পরিষেবা অ্যাকাউন্টকে একাধিক ভূমিকা দিতে পারেন।
| ভূমিকা | অনুমতি | বিবরণ |
|---|---|---|
roles/datastore.owner |
appengine.applications.getdatastore.*resourcemanager.projects.getresourcemanager.projects.list |
Cloud Firestore-এ সম্পূর্ণ অ্যাক্সেস। |
roles/datastore.user |
appengine.applications.getdatastore.databases.getdatastore.databases.getMetadatadatastore.databases.listdatastore.entities.*datastore.schemas.listdatastore.namespaces.getdatastore.namespaces.listdatastore.statistics.getdatastore.statistics.listresourcemanager.projects.getresourcemanager.projects.list |
Cloud Firestore ডেটাবেসে ডেটা পড়া/লেখার অ্যাক্সেস। অ্যাপ্লিকেশন ডেভেলপার ও পরিষেবা অ্যাকাউন্টের জন্য। |
roles/datastore.viewer |
appengine.applications.getdatastore.databases.getdatastore.databases.getMetadatadatastore.databases.listdatastore.entities.getdatastore.entities.listdatastore.schemas.getdatastore.schemas.listdatastore.namespaces.getdatastore.namespaces.listdatastore.statistics.getdatastore.statistics.listresourcemanager.projects.getresourcemanager.projects.listdatastore.insights.get |
সব Cloud Firestore রিসোর্স পড়ার অ্যাক্সেস। |
roles/datastore.importExportAdmin |
appengine.applications.getdatastore.databases.exportdatastore.databases.getMetadatadatastore.databases.importdatastore.operations.canceldatastore.operations.getdatastore.operations.listresourcemanager.projects.getresourcemanager.projects.list |
ইমপোর্ট ও এক্সপোর্ট ম্যানেজ করার সম্পূর্ণ অ্যাক্সেস। |
roles/datastore.bulkAdmin |
resourcemanager.projects.getresourcemanager.projects.listdatastore.databases.getMetadatadatastore.databases.bulkDeletedatastore.operations.canceldatastore.operations.getdatastore.operations.list |
বাল্ক অপারেশন ম্যানেজ করার সম্পূর্ণ অ্যাক্সেস। |
roles/datastore.indexAdmin |
appengine.applications.getdatastore.databases.getMetadatadatastore.schemas.*datastore.operations.listdatastore.operations.getresourcemanager.projects.getresourcemanager.projects.list |
ইনডেক্স সংজ্ঞা ম্যানেজ করার সম্পূর্ণ অ্যাক্সেস। |
roles/datastore.keyVisualizerViewer |
datastore.databases.getMetadatadatastore.keyVisualizerScans.getdatastore.keyVisualizerScans.listresourcemanager.projects.getresourcemanager.projects.list |
Key Visualizer স্ক্যানে সম্পূর্ণ অ্যাক্সেস। |
roles/datastore.backupSchedulesViewer |
datastore.backupSchedules.getdatastore.backupSchedules.list |
Cloud Firestore ডেটাবেসে ব্যাক-আপ শিডিউল অ্যাক্সেস করার অনুমতি। |
roles/datastore.backupSchedulesAdmin |
datastore.backupSchedules.getdatastore.backupSchedules.listdatastore.backupSchedules.createdatastore.backupSchedules.updatedatastore.backupSchedules.deletedatastore.databases.listdatastore.databases.getMetadata |
Cloud Firestore ডেটাবেসে ব্যাক-আপ শিডিউলের সম্পূর্ণ অ্যাক্সেস। |
roles/datastore.backupsViewer |
datastore.backups.getdatastore.backups.list |
Cloud Firestore লোকেশনে ব্যাক-আপ সংক্রান্ত তথ্য অ্যাক্সেস করার অনুমতি। |
roles/datastore.backupsAdmin |
datastore.backups.getdatastore.backups.listdatastore.backups.delete |
Cloud Firestore লোকেশনে ব্যাক-আপের সম্পূর্ণ অ্যাক্সেস। |
roles/datastore.restoreAdmin |
datastore.backups.getdatastore.backups.listdatastore.backups.restoreDatabasedatastore.databases.listdatastore.databases.createdatastore.databases.getMetadatadatastore.operations.listdatastore.operations.get |
নতুন ডেটাবেসে Cloud Firestore ব্যাক-আপ ফিরিয়ে আনার ক্ষমতা। এই ভূমিকা নতুন ডেটাবেস তৈরি করার ক্ষমতাও দেয়, ব্যাক-আপ থেকে রিস্টোর করার মাধ্যমে এটি করতে হবে এমন কোনও বাধ্যবাধকতা নেই। |
roles/datastore.cloneAdmin |
datastore.databases.clonedatastore.databases.listdatastore.databases.createdatastore.databases.getMetadatadatastore.operations.listdatastore.operations.get |
নতুন ডেটাবেসে Cloud Firestore ডেটাবেস ক্লোন করার ক্ষমতা। এই ভূমিকা নতুন ডেটাবেস তৈরি করার ক্ষমতাও দেয়, ক্লোন করার মাধ্যমে নয়। |
roles/datastore.statisticsViewer |
resourcemanager.projects.getresourcemanager.projects.listdatastore.databases.getMetadatadatastore.insights.getdatastore.keyVisualizerScans.getdatastore.keyVisualizerScans.listdatastore.statistics.listdatastore.statistics.get |
ইনসাইট, পরিসংখ্যান এবং Key Visualizer স্ক্যান পড়ার অ্যাক্সেস। |
কাস্টম ভূমিকা
পূর্বনির্ধারিত ভূমিকা আপনার ব্যবসার প্রয়োজনীয়তা পূরণ না করলে, আপনি নিজের কাস্টম ভূমিকা নির্ধারণ করতে পারেন এবং আপনার নির্দিষ্ট করা অনুমতি দিতে পারেন:
ট্যাগ তৈরি ও ম্যানেজ করার জন্য প্রয়োজনীয় ভূমিকা
তৈরি বা রিস্টোর করার অ্যাকশনে কোনও ট্যাগ দেখানো হলে, কিছু ভূমিকা প্রয়োজন হয়। ডেটাবেস রিসোর্সের সাথে ট্যাগ কী-ভ্যালু পেয়ার অ্যাসোসিয়েট করার আগে সেগুলি তৈরি করার ব্যাপারে আরও জানতে ট্যাগ তৈরি ও ম্যানেজ করা দেখুন।
নিচে তালিকাভুক্ত অনুমতিগুলি প্রয়োজন।
ট্যাগ দেখুন
datastore.databases.listTagBindingsdatastore.databases.listEffectiveTags
রিসোর্সে ট্যাগ ম্যানেজ করা
আপনি যে ডেটাবেস রিসোর্সে ট্যাগ ভ্যালু অ্যাটাচ করছেন সেটির জন্য নিম্নলিখিত অনুমতি প্রয়োজন।
datastore.databases.createTagBinding
অনুমতি
Cloud Firestore যেসব অনুমতি সমর্থন করে তার তালিকা নিচে দেওয়া হল।
| ডেটাবেসের অনুমতির নাম | বিবরণ | |
|---|---|---|
datastore.databases.get |
ট্রানজ্যাকশন শুরু বা রোলব্যাক করুন। | |
datastore.databases.import |
ডেটাবেসে এন্টিটি ইমপোর্ট করুন। | |
datastore.databases.export |
ডেটাবেস থেকে এন্টিটি এক্সপোর্ট করুন। | |
datastore.databases.bulkDelete |
ডেটাবেস থেকে বাল্কে এন্টিটি মুছে ফেলা। | |
datastore.databases.getMetadata |
ডেটাবেস থেকে মেটাডেটা পড়ুন। | |
datastore.databases.list |
প্রোজেক্টে ডেটাবেসের তালিকা তৈরি করুন। | |
datastore.databases.create |
ডেটাবেস তৈরি করুন। | |
datastore.databases.update |
ডেটাবেস আপডেট করুন। | |
datastore.databases.delete |
ডেটাবেস মুছে দেওয়া। | |
datastore.databases.clone |
ডেটাবেস ক্লোন করুন। | |
datastore.databases.createTagBinding |
ডেটাবেসের জন্য ট্যাগ বাইন্ডিং তৈরি করুন। | |
datastore.databases.deleteTagBinding |
কোনও ডেটাবেসের জন্য ট্যাগ বাইন্ডিং মুছে দিন। | |
datastore.databases.listTagBindings |
কোনও ডেটাবেসের জন্য সব ট্যাগ বাইন্ডিংয়ের তালিকা তৈরি করুন। | |
datastore.databases.listEffectiveTagBindings |
কোনও ডেটাবেসের জন্য কার্যকর ট্যাগ বাইন্ডিংয়ের তালিকা তৈরি করুন। | |
| এন্টিটির অনুমতির নাম | বিবরণ | |
datastore.entities.create |
ডকুমেন্ট তৈরি করুন। | |
datastore.entities.delete |
ডকুমেন্ট মুছে দেওয়া। | |
datastore.entities.get |
ডকুমেন্ট পড়া। | |
datastore.entities.list |
প্রোজেক্টে থাকা ডকুমেন্টের নামের তালিকা। (ডকুমেন্ট ডেটা অ্যাক্সেস করতে datastore.entities.get প্রয়োজন।) |
|
datastore.entities.update |
ডকুমেন্ট আপডেট করুন। | |
| ইনডেক্স অনুমতির নাম | বিবরণ | |
datastore.schemas.create |
একটি ইন্ডেক্স তৈরি করুন। | |
datastore.schemas.delete |
ইন্ডেক্স মুছে দেওয়া। | |
datastore.schemas.get |
ইনডেক্স থেকে মেটাডেটা পড়ুন। | |
datastore.schemas.list |
প্রোজেক্টে ইন্ডেক্সের তালিকা তৈরি করুন। | |
datastore.schemas.update |
ইনডেক্স আপডেট করুন। | |
| অপারেশন সংক্রান্ত অনুমতির নাম | বিবরণ | |
datastore.operations.cancel |
দীর্ঘ সময় ধরে চলা অপারেশন বাতিল করুন। | |
datastore.operations.delete |
দীর্ঘ সময় ধরে চলা অপারেশন মুছে দিন। | |
datastore.operations.get |
দীর্ঘ সময় ধরে চলা অপারেশনের লেটেস্ট স্ট্যাটাস পায়। | |
datastore.operations.list |
দীর্ঘ সময় ধরে চলা অপারেশনের তালিকা। | |
| প্রোজেক্টের অনুমতির নাম | বিবরণ | |
resourcemanager.projects.get |
প্রোজেক্টে রিসোর্স ব্রাউজ করুন। | |
resourcemanager.projects.list |
মালিকানাধীন প্রোজেক্টের তালিকা। | |
| লোকেশন সংক্রান্ত অনুমতির নাম | বিবরণ | |
datastore.locations.get |
ডেটাবেস লোকেশন সম্পর্কে বিবরণ পান। নতুন ডেটাবেস তৈরি করতে হবে। | |
datastore.locations.list |
উপলভ্য ডেটাবেস লোকেশনের তালিকা। নতুন ডেটাবেস তৈরি করতে হবে। | |
| Key Visualizer-এর অনুমতির নাম | বিবরণ | |
datastore.keyVisualizerScans.get |
Key Visualizer স্ক্যান সম্পর্কে বিবরণ পান। | |
datastore.keyVisualizerScans.list |
উপলভ্য Key Visualizer স্ক্যানের তালিকা তৈরি করুন। | |
| ব্যাক-আপ শিডিউল সংক্রান্ত অনুমতির নাম | বিবরণ | |
datastore.backupSchedules.get |
ব্যাক-আপ শিডিউল সম্পর্কে বিবরণ পান। | |
datastore.backupSchedules.list |
উপলভ্য ব্যাক-আপ শিডিউলের তালিকা। | |
datastore.backupSchedules.create |
ব্যাক-আপ শিডিউল তৈরি করুন। | |
datastore.backupSchedules.update |
ব্যাক-আপের শিডিউল আপডেট করুন। | |
datastore.backupSchedules.delete |
ব্যাক-আপ শিডিউল মুছে দেওয়া। | |
| ব্যাক-আপ অনুমতির নাম | বিবরণ | |
datastore.backups.get |
ব্যাক-আপ সম্পর্কে বিবরণ পান। | |
datastore.backups.list |
উপলভ্য ব্যাক-আপের তালিকা। | |
datastore.backups.delete |
ব্যাক-আপ মুছে দেওয়া। | |
datastore.backups.restoreDatabase |
ব্যাক-আপ থেকে ডেটাবেস ফিরিয়ে আনুন। | |
| ইনসাইট সংক্রান্ত অনুমতির নাম | বিবরণ | |
datastore.insights.get |
রিসোর্সের ইনসাইট পাওয়া |
ভূমিকা পরিবর্তন সংক্রান্ত লেটেন্সি
Cloud Firestore ৫ মিনিটের জন্য IAM অনুমতি ক্যাশে করে, তাই ভূমিকা পরিবর্তন কার্যকর হতে ৫ মিনিট পর্যন্ত সময় লাগে।
Cloud Firestore IAM ম্যানেজ করুন
Google Cloud কনসোল, IAM API বা
gcloud কমান্ড-লাইন টুল ব্যবহার করে
আপনি IAM নীতি পেতে ও সেট করতে পারবেন। আরও জানতে
প্রোজেক্ট মেম্বারদের অ্যাক্সেস দেওয়া, পরিবর্তন করা ও তুলে নেওয়া
দেখুন।
শর্তসাপেক্ষ অ্যাক্সেসের অনুমতি কনফিগার করুন
শর্তাধীন অ্যাক্সেস কন্ট্রোল নির্ধারণ ও প্রয়োগ করতে আপনি IAM শর্তাবলী ব্যবহার করতে পারবেন।
যেমন, নিম্নলিখিত শর্তটি একটি নির্দিষ্ট তারিখ পর্যন্ত কোনও প্রিন্সিপালকে datastore.user
ভূমিকা অ্যাসাইন করে:
{
"role": "roles/datastore.user",
"members": [
"user:travis@example.com"
],
"condition": {
"title": "Expires_December_1_2023",
"description": "Expires on December 1, 2023",
"expression":
"request.time < timestamp('2023-12-01T00:00:00.000Z')"
}
}
সাময়িক অ্যাক্সেসের জন্য IAM শর্ত কীভাবে নির্ধারণ করতে হয় তা জানতে, সাময়িক অ্যাক্সেস কনফিগার করুন দেখুন।
এক বা একাধিক ডেটাবেস অ্যাক্সেস করার জন্য IAM শর্তাবলী কীভাবে কনফিগার করতে হয় তা জানতে, ডেটাবেস অ্যাক্সেস শর্তাবলী কনফিগার করুন দেখুন।
IAM-এর উপর নিরাপত্তা সংক্রান্ত নিয়মের নির্ভরতা
মোবাইল/ওয়েব ক্লায়েন্টের জন্য Cloud Firestore Security Rules নিম্নলিখিত পরিষেবা অ্যাকাউন্ট ও IAM বাইন্ডিংয়ের উপর নির্ভর করে:
| সার্ভিস অ্যাকাউন্ট | IAM ভূমিকা |
|---|---|
service-project_number@firebase-rules.iam.gserviceaccount.com |
roles/firebaserules.system |
Firebase আপনার জন্য এই পরিষেবা অ্যাকাউন্ট অটোমেটিক সেট-আপ করে। আপনি যদি
এই পরিষেবা অ্যাকাউন্ট থেকে firebaserules.system ভূমিকা সরিয়ে দেন, তাহলে আপনার নিরাপত্তা
নিয়ম সব অনুরোধ প্রত্যাখ্যান করবে। এই IAM বাইন্ডিং ফিরিয়ে আনতে,
নিম্নলিখিত gcloud CLI কমান্ড ব্যবহার করুন:
gcloud projects add-iam-policy-binding project_id \ --member=serviceAccount:service-project_number@firebase-rules.iam.gserviceaccount.com \ --role=roles/firebaserules.system
আপনার project_id এবং project_number নির্ধারণ করতে, প্রোজেক্ট শনাক্ত করা দেখুন।
Google Cloud কনসোলের পরিবর্তে Google Cloud CLI ব্যবহার করুন,
কারণ কনসোলে ডিফল্ট হিসেবে firebaserules.system ভূমিকা লুকানো থাকে।
এর পরে কী করতে হবে
- IAM সম্পর্কে আরও জানুন।
- IAM ভূমিকা মঞ্জুর করুন।
- যাচাইকরণ সম্পর্কে জানুন।