إدارة الهوية وإمكانية الوصول (IAM)

يمكنك إدارة إمكانية الوصول إلى مواردك باستخدام خدمة "إدارة الهوية وإمكانية الوصول" (IAM). تتيح لك خدمة "إدارة الهوية وإمكانية الوصول" منح إذن وصول أكثر دقة إلى مراجع Google Cloud محدّدة ومنع الوصول غير المرغوب فيه إلى مراجع أخرى. توضّح هذه الصفحة أذونات وأدوار إدارة الهوية وإمكانية الوصول في Cloud Firestore. للحصول على وصف تفصيلي لإدارة الهوية وإمكانية الوصول، يُرجى الاطّلاع على مستندات إدارة الهوية وإمكانية الوصول.

تتيح لك خدمة "إدارة الهوية وإمكانية الوصول" اتّباع مبدأ الأمان المستنِد إلى الحدّ الأدنى من الأذونات المميّزة، وبالتالي يمكنك منح الإذن بالوصول إلى مواردك فقط عند الحاجة.

تتيح لك خدمة "إدارة الهوية وإمكانية الوصول" التحكّم في مَن (المستخدم) لديه ماذا (الدور) من الأذونات الخاصة بأي موارد من خلال ضبط سياسات "إدارة الهوية وإمكانية الوصول". تمنح سياسات إدارة الهوية وإمكانية الوصول دورًا واحدًا أو أكثر للمستخدم، ما يمنحه أذونات معيّنة. على سبيل المثال، يمكنك منح دور datastore.indexAdmin لمستخدم، ما يتيح له إنشاء الفهارس أو تعديلها أو حذفها أو إدراجها أو عرضها.

الأذونات والأدوار

يلخّص هذا القسم الأذونات والأدوار التي تتوافق مع Cloud Firestore.

الأذونات المطلوبة لطُرق واجهة برمجة التطبيقات

يعرض الجدول التالي الأذونات التي يجب أن يمتلكها المتصل لتنفيذ كل إجراء:

الطريقة الأذونات المطلوبة
projects.databases.MongoDBCompatible
ListDatabases datastore.databases.getMetadata
ListIndexes datastore.indexes.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.indexes.create
delete datastore.indexes.delete
get datastore.indexes.get
list datastore.indexes.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 أن يكون الحساب الذي يرسل طلب واجهة برمجة التطبيقات لديه الأذونات المناسبة لاستخدام المورد. يتم منح الأذونات من خلال ضبط السياسات التي تمنح الأدوار لمستخدم أو مجموعة أو حساب خدمة. بالإضافة إلى الأدوار الأولية، المالك والمحرّر والمشاهد، يمكنك منح أدوار Cloud Firestore لمستخدمي مشروعك.

يسرد الجدول التالي أدوار Cloud Firestore IAM. يمكنك منح أدوار متعددة لمستخدم أو مجموعة أو حساب خدمة.

الدور الأذونات الوصف
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.indexes.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.indexes.get
datastore.indexes.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.indexes.*

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
الإذن بالاطّلاع على الإحصاءات وعمليات فحص Key Visualizer
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.indexes.create إنشاء فهرس
datastore.indexes.delete حذف فهرس
datastore.indexes.get قراءة البيانات الوصفية من فهرس
datastore.indexes.list عرض قائمة بالفهارس في مشروع
datastore.indexes.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 الحصول على إحصاءات عن أحد الموارد
اسم إذن بيانات اعتماد المستخدم الوصف
datastore.userCreds.get الحصول على تفاصيل حول بيانات اعتماد المستخدم
datastore.userCreds.list تعرض هذه السمة قائمة ببيانات اعتماد المستخدم المتاحة.
datastore.userCreds.create أنشئ بيانات اعتماد المستخدم.
datastore.userCreds.update تفعيل بيانات اعتماد المستخدم أو إيقافها، أو إعادة ضبط كلمة مرور المستخدم
datastore.userCreds.delete احذف بيانات اعتماد المستخدم.

وقت استجابة تغيير الدور

يخزّن Cloud Firestore أذونات "إدارة الهوية وإمكانية الوصول" مؤقتًا لمدة 5 دقائق، لذا يستغرق تطبيق تغيير الدور مدة تصل إلى 5 دقائق.

إدارة Cloud Firestore IAM

يمكنك الحصول على سياسات IAM وضبطها باستخدام Google Cloud Console أو واجهة برمجة تطبيقات IAM أو أداة سطر الأوامر gcloud. راجِع مقالة منح إذن الوصول إلى أعضاء المشروع وتغييره وإبطاله للحصول على التفاصيل.

ضبط أذونات الوصول الشرطي

يمكنك استخدام شروط إدارة الهوية وإمكانية الوصول لتحديد عناصر التحكّم في الوصول المشروط وفرضها.

على سبيل المثال، يمنح الشرط التالي الجهة الرئيسية 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')"
  }
}

للتعرّف على كيفية تحديد "شروط إدارة الهوية وإمكانية الوصول" لإذن الوصول المؤقت، يُرجى الاطّلاع على ضبط إذن الوصول المؤقت.

لمعرفة كيفية ضبط &quot;شروط إدارة الهوية وإمكانية الوصول&quot; (IAM) للوصول إلى قاعدة بيانات واحدة أو أكثر، راجِع مقالة ضبط شروط الوصول إلى قاعدة البيانات.

الخطوات التالية