আইডেন্টিটি অ্যান্ড অ্যাকসেস ম্যানেজমেন্ট (আইএএম)

আইডেন্টিটি অ্যান্ড অ্যাক্সেস ম্যানেজমেন্ট (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.get
datastore.entities.list
Aggregate datastore.entities.get
datastore.entities.list
GetMore

কার্সর তৈরি করা কলটির জন্য যে অনুমতিগুলোর প্রয়োজন ছিল, সেই একই অনুমতি।

ListCollections datastore.entities.list
Count datastore.entities.list
Distinct datastore.entities.get
datastore.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.get
datastore.entities.list
datastore.entities.update
datastore.entities.create (শুধুমাত্র আপসার্টের জন্য)
FindAndModify datastore.entities.get
datastore.entities.list
datastore.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 একটি ডাটাবেস ক্লোন করুন।

আপনার clone অনুরোধে যদি tags ভ্যালু থাকে, তাহলে নিম্নলিখিত অতিরিক্ত অনুমতিগুলির প্রয়োজন হবে:

  • datastore.databases.createTagBinding

ট্যাগ বাইন্ডিংগুলো সফলভাবে সেট করা হয়েছে কিনা তা বাইন্ডিংগুলো তালিকাভুক্ত করে যাচাই করতে চাইলে, নিম্নলিখিত অতিরিক্ত অনুমতিগুলোর প্রয়োজন হবে:

  • datastore.databases.listTagBindings
  • datastore.databases.listEffectiveTags
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.get

datastore.*

resourcemanager.projects.get
resourcemanager.projects.list
Cloud Firestore সম্পূর্ণ অ্যাক্সেস।
roles/datastore.user appengine.applications.get

datastore.databases.get
datastore.databases.getMetadata
datastore.databases.list
datastore.entities.*
datastore.schemas.list
datastore.namespaces.get
datastore.namespaces.list
datastore.statistics.get
datastore.statistics.list

resourcemanager.projects.get
resourcemanager.projects.list
Cloud Firestore ডেটাবেসের ডেটাতে পঠন ও লিখন অ্যাক্সেস। অ্যাপ্লিকেশন ডেভেলপার এবং সার্ভিস অ্যাকাউন্টগুলোর জন্য উদ্দিষ্ট।
roles/datastore.viewer appengine.applications.get

datastore.databases.get
datastore.databases.getMetadata
datastore.databases.list
datastore.entities.get
datastore.entities.list
datastore.schemas.get
datastore.schemas.list
datastore.namespaces.get
datastore.namespaces.list
datastore.statistics.get
datastore.statistics.list

resourcemanager.projects.get
resourcemanager.projects.list
Cloud Firestore সকল রিসোর্সে পঠনযোগ্য অ্যাক্সেস।
roles/datastore.indexAdmin appengine.applications.get

datastore.databases.getMetadata

datastore.schemas.*

datastore.operations.list
datastore.operations.get
resourcemanager.projects.get
resourcemanager.projects.list
ইনডেক্স সংজ্ঞাগুলো পরিচালনা করার পূর্ণ অধিকার।
roles/datastore.backupSchedulesViewer datastore.backupSchedules.get
datastore.backupSchedules.list
Cloud Firestore ডেটাবেসে ব্যাকআপ শিডিউল পড়ার অ্যাক্সেস।
roles/datastore.backupSchedulesAdmin datastore.backupSchedules.get
datastore.backupSchedules.list
datastore.backupSchedules.create
datastore.backupSchedules.update
datastore.backupSchedules.delete
datastore.databases.list
datastore.databases.getMetadata
Cloud Firestore ডেটাবেসে ব্যাকআপ শিডিউলগুলিতে সম্পূর্ণ অ্যাক্সেস।
roles/datastore.backupsViewer datastore.backups.get
datastore.backups.list
Cloud Firestore অবস্থানে ব্যাকআপ তথ্যে পড়ার অ্যাক্সেস।
roles/datastore.backupsAdmin datastore.backups.get
datastore.backups.list
datastore.backups.delete
Cloud Firestore লোকেশনে থাকা ব্যাকআপগুলিতে সম্পূর্ণ অ্যাক্সেস।
roles/datastore.restoreAdmin datastore.backups.get
datastore.backups.list
datastore.backups.restoreDatabase
datastore.databases.list
datastore.databases.create
datastore.databases.getMetadata
datastore.operations.list
datastore.operations.get
একটি নতুন ডেটাবেসে Cloud Firestore ব্যাকআপ পুনরুদ্ধার করার ক্ষমতা। এই ভূমিকাটি নতুন ডেটাবেস তৈরি করার ক্ষমতাও দেয়, যার জন্য ব্যাকআপ থেকে পুনরুদ্ধার করা আবশ্যক নয়।
roles/datastore.cloneAdmin datastore.databases.clone
datastore.databases.list
datastore.databases.create
datastore.databases.getMetadata
datastore.operations.list
datastore.operations.get
একটি Cloud Firestore ডেটাবেসকে একটি নতুন ডেটাবেসে ক্লোন করার ক্ষমতা। এই ভূমিকাটি ক্লোন করা ছাড়াই নতুন ডেটাবেস তৈরি করার ক্ষমতাও দেয়।
roles/datastore.statisticsViewer resourcemanager.projects.get
resourcemanager.projects.list
datastore.databases.getMetadata
datastore.insights.get
datastore.keyVisualizerScans.get
datastore.keyVisualizerScans.list
datastore.statistics.list
datastore.statistics.get
ইনসাইটস, স্ট্যাটস এবং কী ভিজ্যুয়ালাইজার স্ক্যানগুলো পড়ার সুযোগ।
roles/datastore.userCredsViewer datastore.userCreds.get
datastore.userCreds.list
Cloud Firestore ডেটাবেসে ব্যবহারকারীর পরিচয়পত্র পড়ার অ্যাক্সেস।
roles/datastore.userCredsAdmin datastore.userCreds.get
datastore.userCreds.list
datastore.userCreds.create
datastore.userCreds.update
datastore.userCreds.delete
datastore.databases.list
datastore.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 শর্তাবলী কনফিগার করতে হয় তা জানতে, “ডেটাবেস অ্যাক্সেস শর্তাবলী কনফিগার করুন” দেখুন।

এরপর কী?