يمكنك إدارة إمكانية الوصول إلى مواردك باستخدام خدمة "إدارة الهوية وإمكانية الوصول" (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 |
استنساخ قاعدة بيانات
إذا كان طلب
إذا أردت التحقّق مما إذا تم ضبط عمليات ربط العلامات بنجاح من خلال إدراج عمليات الربط، يجب توفُّر الأذونات الإضافية التالية:
|
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')"
}
}
للتعرّف على كيفية تحديد "شروط إدارة الهوية وإمكانية الوصول" لإذن الوصول المؤقت، يُرجى الاطّلاع على ضبط إذن الوصول المؤقت.
لمعرفة كيفية ضبط "شروط إدارة الهوية وإمكانية الوصول" (IAM) للوصول إلى قاعدة بيانات واحدة أو أكثر، راجِع مقالة ضبط شروط الوصول إلى قاعدة البيانات.
الخطوات التالية
- مزيد من المعلومات حول إدارة الهوية وإمكانية الوصول
- منح أدوار إدارة الهوية وإمكانية الوصول
- مزيد من المعلومات حول المصادقة