يمكنك إدارة إمكانية الوصول إلى مواردك باستخدام خدمة "إدارة الهوية وإمكانية الوصول" (IAM). تتيح لك خدمة "إدارة الهوية وإمكانية الوصول" منح إذن وصول أكثر دقة إلى مراجع Google Cloud محدّدة ومنع الوصول غير المرغوب فيه إلى مراجع أخرى. توضّح هذه الصفحة أذونات وأدوار إدارة الهوية وإمكانية الوصول في Cloud Firestore. للحصول على وصف تفصيلي لإدارة الهوية وإمكانية الوصول، يُرجى الاطّلاع على مستندات إدارة الهوية وإمكانية الوصول.
تتيح لك خدمة "إدارة الهوية وإمكانية الوصول" اتّباع مبدأ الأمان المستنِد إلى الحدّ الأدنى من الأذونات المميّزة، وبالتالي يمكنك منح الإذن بالوصول إلى مواردك فقط عند الحاجة.
تتيح لك خدمة "إدارة الهوية وإمكانية الوصول" التحكّم في المستخدمين الذين لديهم أدوار
تمنحهم أذونات الوصول إلى الموارد، وذلك من خلال ضبط سياسات "إدارة الهوية وإمكانية الوصول".
تمنح سياسات إدارة الهوية وإمكانية الوصول دورًا واحدًا أو أكثر للمستخدم، ما يمنحه أذونات معيّنة. على سبيل المثال، يمكنك منح دور datastore.indexAdmin لمستخدم، ما يتيح له إنشاء الفهارس أو تعديلها أو حذفها أو إدراجها أو عرضها.
الأذونات والأدوار
يلخّص هذا القسم الأذونات والأدوار التي يتيحها Cloud Firestore.
الأذونات المطلوبة لطُرق واجهة برمجة التطبيقات
يعرض الجدول التالي الأذونات التي يجب أن يمتلكها المتصل لتنفيذ كل إجراء:
| الطريقة | الأذونات المطلوبة | |
|---|---|---|
projects.databases.MongoDBCompatible |
||
ListDatabases |
datastore.databases.getMetadata |
|
ListIndexes |
datastore.indexes.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.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 |
استنساخ قاعدة بيانات
إذا كان طلب
إذا أردت التحقّق مما إذا تم ضبط عمليات ربط العلامات بنجاح من خلال إدراج عمليات الربط، يجب توفُّر الأذونات الإضافية التالية:
|
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، تتطلّب كل طريقة API في Cloud Firestore أن يكون الحساب الذي يرسل طلب 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.indexes.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.indexes.getdatastore.indexes.listdatastore.namespaces.getdatastore.namespaces.listdatastore.statistics.getdatastore.statistics.listresourcemanager.projects.getresourcemanager.projects.list |
إذن بالاطّلاع على جميع موارد Cloud Firestore |
roles/datastore.indexAdmin |
appengine.applications.getdatastore.databases.getMetadatadatastore.indexes.*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 |
الإذن بالاطّلاع على الإحصاءات وعمليات فحص Key Visualizer |
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.listTagBindingsdatastore.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')"
}
}
للتعرّف على كيفية تحديد "شروط إدارة الهوية وإمكانية الوصول" (IAM) لإذن الوصول المؤقت، يُرجى الاطّلاع على ضبط إذن الوصول المؤقت.
لمعرفة كيفية ضبط "شروط إدارة الهوية وإمكانية الوصول" (IAM) للوصول إلى قاعدة بيانات واحدة أو أكثر، يُرجى الاطّلاع على ضبط شروط الوصول إلى قاعدة البيانات.
الخطوات التالية
- مزيد من المعلومات حول إدارة الهوية وإمكانية الوصول
- منح أدوار إدارة الهوية وإمكانية الوصول
- مزيد من المعلومات عن المصادقة