আইডেন্টিটি অ্যান্ড অ্যাক্সেস ম্যানেজমেন্ট (IAM) ব্যবহার করে আপনার রিসোর্সগুলিতে অ্যাক্সেস পরিচালনা করুন। IAM আপনাকে নির্দিষ্ট Google Cloud রিসোর্সগুলিতে আরও সুনির্দিষ্ট অ্যাক্সেস দেওয়ার সুযোগ দেয় এবং অন্যান্য রিসোর্সগুলিতে অনাকাঙ্ক্ষিত অ্যাক্সেস প্রতিরোধ করে। এই পৃষ্ঠায় Cloud Firestore এর জন্য IAM পারমিশন এবং রোলগুলি বর্ণনা করা হয়েছে। IAM-এর বিস্তারিত বিবরণের জন্য, IAM ডকুমেন্টেশন পড়ুন।
IAM আপনাকে সর্বনিম্ন বিশেষাধিকারের নিরাপত্তা নীতি অবলম্বন করতে দেয়, যার ফলে আপনি আপনার রিসোর্সগুলিতে কেবল প্রয়োজনীয় অ্যাক্সেসই প্রদান করেন।
IAM পলিসি সেট করার মাধ্যমে, আপনি নিয়ন্ত্রণ করতে পারেন যে কোন রিসোর্সের জন্য কার (ব্যবহারকারী) কী (ভূমিকা) অনুমতি থাকবে। IAM পলিসি একজন ব্যবহারকারীকে এক বা একাধিক ভূমিকা প্রদান করে, যা তাকে নির্দিষ্ট কিছু অনুমতি দেয়। উদাহরণস্বরূপ, আপনি একজন ব্যবহারকারীকে datastore.indexAdmin ভূমিকাটি প্রদান করতে পারেন, যা তাকে ইনডেক্স তৈরি, পরিবর্তন, মুছে ফেলা, তালিকাভুক্ত করা বা দেখার অনুমতি দেয়।
অনুমতি এবং ভূমিকা
এই বিভাগে Cloud Firestore দ্বারা সমর্থিত অনুমতি এবং ভূমিকাগুলির একটি সংক্ষিপ্ত বিবরণ দেওয়া হয়েছে।
এপিআই পদ্ধতিগুলির জন্য প্রয়োজনীয় অনুমতি
নিম্নলিখিত সারণিতে প্রতিটি কাজ সম্পাদন করার জন্য আহ্বানকারীর যে অনুমতিগুলো থাকা আবশ্যক, তা তালিকাভুক্ত করা হয়েছে:
| পদ্ধতি | প্রয়োজনীয় অনুমতি | |
|---|---|---|
projects.databases.MongoDBCompatible | ||
ListDatabases | datastore.databases.getMetadata | |
ListIndexes | datastore.schemas.list | |
Find | datastore.entities.getdatastore.entities.list | |
Aggregate | datastore.entities.getdatastore.entities.list | |
GetMore | কার্সর তৈরি করা কলটির জন্য যে অনুমতিগুলোর প্রয়োজন ছিল, সেই একই অনুমতি। | |
ListCollections | datastore.entities.list | |
Count | datastore.entities.list | |
Distinct | datastore.entities.getdatastore.entities.list | |
CommitTransaction | datastore.databases.get | |
AbortTransaction | datastore.databases.get | |
EndSessions | datastore.databases.get | |
KillCursors | datastore.databases.get | |
Insert | datastore.entities.create | |
Update | datastore.entities.getdatastore.entities.listdatastore.entities.updatedatastore.entities.create (শুধুমাত্র আপসার্টের জন্য) | |
FindAndModify | datastore.entities.getdatastore.entities.listdatastore.entities.update (শুধুমাত্র প্রতিস্থাপন বা আপডেটের জন্য)datastore.entities.create (শুধুমাত্র আপসার্টের জন্য)datastore.entities.delete (শুধুমাত্র মুছে ফেলার জন্য) | |
CreateCollection | datastore.entities.create | |
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 | ||
get | datastore.backupSchedules.get | |
list | datastore.backupSchedules.list | |
create | datastore.backupSchedules.create | |
update | datastore.backupSchedules.update | |
delete | datastore.backupSchedules.delete | |
projects.locations.backups | ||
get | datastore.backups.get | |
list | datastore.backups.list | |
delete | datastore.backups.delete | |
projects.databases.usercreds | ||
get | datastore.userCreds.get | |
list | datastore.userCreds.list | |
create | datastore.userCreds.create | |
enable | datastore.userCreds.update | |
disable | datastore.userCreds.update | |
resetPassword | datastore.userCreds.update | |
delete | datastore.userCreds.delete | |
পূর্বনির্ধারিত ভূমিকা
IAM-এর ক্ষেত্রে, Cloud Firestore প্রতিটি API মেথড ব্যবহার করার জন্য, API অনুরোধকারী অ্যাকাউন্টের রিসোর্সটি ব্যবহারের উপযুক্ত অনুমতি থাকা আবশ্যক। কোনো ব্যবহারকারী, গ্রুপ বা সার্ভিস অ্যাকাউন্টকে রোল প্রদানকারী পলিসি সেট করার মাধ্যমে অনুমতি দেওয়া হয়। মালিক (owner), সম্পাদক (editor) এবং দর্শক (viewer) -এর মতো সাধারণ রোলগুলো ছাড়াও, আপনি আপনার প্রোজেক্টের ব্যবহারকারীদের Cloud Firestore বিভিন্ন রোল প্রদান করতে পারেন।
নিচের সারণিতে Cloud Firestore আইএএম রোলগুলো তালিকাভুক্ত করা হয়েছে। আপনি একজন ব্যবহারকারী, গ্রুপ বা পরিষেবা অ্যাকাউন্টকে একাধিক রোল প্রদান করতে পারেন।
| ভূমিকা | অনুমতি | বর্ণনা |
|---|---|---|
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.list | Cloud Firestore সকল রিসোর্সে পঠনযোগ্য অ্যাক্সেস। |
roles/datastore.indexAdmin | appengine.applications.getdatastore.databases.getMetadatadatastore.schemas.*datastore.operations.listdatastore.operations.getresourcemanager.projects.getresourcemanager.projects.list | ইনডেক্স সংজ্ঞাগুলো পরিচালনা করার পূর্ণ অধিকার। |
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 | ইনসাইটস, স্ট্যাটস এবং কী ভিজ্যুয়ালাইজার স্ক্যানগুলো পড়ার সুযোগ। |
roles/datastore.userCredsViewer | datastore.userCreds.getdatastore.userCreds.list | Cloud Firestore ডেটাবেসে ব্যবহারকারীর পরিচয়পত্র পড়ার অ্যাক্সেস। |
roles/datastore.userCredsAdmin | datastore.userCreds.getdatastore.userCreds.listdatastore.userCreds.createdatastore.userCreds.updatedatastore.userCreds.deletedatastore.databases.listdatastore.databases.getMetadata | Cloud Firestore ডেটাবেসে ব্যবহারকারীর পরিচয়পত্রে সম্পূর্ণ অ্যাক্সেস। |
কাস্টম ভূমিকা
যদি পূর্বনির্ধারিত ভূমিকাগুলো আপনার ব্যবসায়িক চাহিদা পূরণ না করে, তবে আপনি আপনার নির্দিষ্ট করা অনুমতিসহ নিজস্ব কাস্টম ভূমিকা সংজ্ঞায়িত করতে পারেন:
ট্যাগ তৈরি ও পরিচালনা করার জন্য প্রয়োজনীয় ভূমিকা
তৈরি বা পুনরুদ্ধার কার্যক্রমে কোনো ট্যাগ ব্যবহার করা হলে, কিছু ভূমিকার প্রয়োজন হয়। ডাটাবেস রিসোর্সের সাথে যুক্ত করার আগে ট্যাগ কী-ভ্যালু পেয়ার তৈরি করার বিষয়ে আরও বিস্তারিত জানতে ‘ট্যাগ তৈরি ও পরিচালনা’ দেখুন।
নিম্নলিখিত তালিকাভুক্ত অনুমতিগুলো প্রয়োজন।
ট্যাগগুলি দেখুন
-
datastore.databases.listTagBindings -
datastore.databases.listEffectiveTags
রিসোর্সের ট্যাগগুলি পরিচালনা করুন
আপনি যে ডাটাবেস রিসোর্সে ট্যাগ ভ্যালুটি সংযুক্ত করছেন, তার জন্য নিম্নলিখিত অনুমতি প্রয়োজন।
-
datastore.databases.createTagBinding
অনুমতি
নিচের সারণিতে Cloud Firestore দ্বারা সমর্থিত অনুমতিগুলো তালিকাভুক্ত করা হয়েছে।
| ডাটাবেস অনুমতির নাম | বর্ণনা | |
|---|---|---|
datastore.databases.get | একটি লেনদেন শুরু করুন বা পূর্বাবস্থায় ফিরিয়ে আনুন। | |
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 | উপলব্ধ ডাটাবেস অবস্থানগুলির তালিকা। নতুন ডাটাবেস তৈরি করার জন্য এটি প্রয়োজন। | |
| কী ভিজ্যুয়ালাইজার অনুমতির নাম | বর্ণনা | |
datastore.keyVisualizerScans.get | Key Visualizer স্ক্যান সম্পর্কে বিস্তারিত জানুন। | |
datastore.keyVisualizerScans.list | উপলব্ধ কী ভিজ্যুয়ালাইজার স্ক্যানগুলির তালিকা দিন। | |
| ব্যাকআপ শিডিউলের অনুমতির নাম | বর্ণনা | |
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 | একটি রিসোর্স সম্পর্কে ধারণা লাভ করুন | |
| ব্যবহারকারীর পরিচয়পত্রের অনুমতির নাম | বর্ণনা | |
datastore.userCreds.get | ব্যবহারকারীর পরিচয়পত্র সম্পর্কে বিস্তারিত জানুন। | |
datastore.userCreds.list | উপলব্ধ ব্যবহারকারীর পরিচয়পত্রের তালিকা দেখুন। | |
datastore.userCreds.create | ব্যবহারকারীর পরিচয়পত্র তৈরি করুন। | |
datastore.userCreds.update | ব্যবহারকারীর পরিচয়পত্র সক্রিয় বা নিষ্ক্রিয় করুন, অথবা ব্যবহারকারীর পাসওয়ার্ড পুনরায় সেট করুন। | |
datastore.userCreds.delete | ব্যবহারকারীর পরিচয়পত্র মুছে ফেলুন। |
ভূমিকা পরিবর্তনের বিলম্ব
Cloud Firestore IAM পারমিশনগুলো ৫ মিনিটের জন্য ক্যাশ করে রাখে, তাই কোনো রোল পরিবর্তন কার্যকর হতে ৫ মিনিট পর্যন্ত সময় লাগতে পারে।
Cloud Firestore আইএএম পরিচালনা
আপনি গুগল ক্লাউড কনসোল, আইএএম এপিআই, অথবা gcloud কমান্ড-লাইন টুল ব্যবহার করে আইএএম পলিসিগুলো পেতে ও সেট করতে পারেন। বিস্তারিত জানতে ‘প্রজেক্ট সদস্যদের অ্যাক্সেস প্রদান, পরিবর্তন এবং প্রত্যাহার’ দেখুন।
শর্তসাপেক্ষ অ্যাক্সেস অনুমতি কনফিগার করুন
আপনি শর্তসাপেক্ষ অ্যাক্সেস নিয়ন্ত্রণ সংজ্ঞায়িত ও প্রয়োগ করতে 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 সম্পর্কে আরও জানুন।
- IAM ভূমিকা মঞ্জুর করুন ।
- প্রমাণীকরণ সম্পর্কে জানুন।