يمكنك إدارة الوصول إلى مواردك باستخدام "إدارة الهوية وإمكانية الوصول" (IAM). تتيح لك "إدارة الهوية وإمكانية الوصول" منح إذن وصول أكثر دقة إلى موارد Google Cloud محدّدة وتمنع الوصول غير المرغوب فيه إلى موارد أخرى. توضّح هذه الصفحة أذونات وأدوار "إدارة الهوية وإمكانية الوصول" في Cloud Firestore. للحصول على وصف تفصيلي لإدارة الهوية وإمكانية الوصول، يُرجى الاطّلاع على مستندات إدارة الهوية وإمكانية الوصول.
تتيح لك "إدارة الهوية وإمكانية الوصول" (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 |
|
DropCollection |
datastore.schemas.delete |
|
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 |
|
الأدوار المحدّدة مسبقًا
باستخدام "إدارة الهوية وإمكانية الوصول"، تتطلّب كل طريقة من طرق واجهة برمجة التطبيقات في Cloud Firestore أن يكون لدى الحساب الذي يرسل طلب البيانات من واجهة برمجة التطبيقات الأذونات المناسبة لاستخدام المورد. يتم منح الأذونات من خلال ضبط السياسات التي تمنح الأدوار لمستخدم أو مجموعة أو حساب خدمة. بالإضافة إلى الأدوار الأساسية، المالك والمحرِّر والمشاهد، يمكنك منح أدوار 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 |
إذن بالوصول للقراءة إلى عمليات فحص Insights وStats و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.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 |
عرض المواقع الجغرافية المتاحة لقاعدة البيانات مطلوب لإنشاء قاعدة بيانات جديدة. | |
| اسم إذن 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 أذونات "إدارة الهوية وإمكانية الوصول" (IAM) مؤقتًا لمدة 5 دقائق، لذا يستغرق تفعيل تغيير الدور مدة تصل إلى 5 دقائق.
إدارة "إدارة الهوية وإمكانية الوصول" في Cloud Firestore
يمكنك الحصول على سياسات "إدارة الهوية وإمكانية الوصول" وضبطها باستخدام وحدة تحكّم Google Cloud أو واجهة برمجة تطبيقات "إدارة الهوية وإمكانية الوصول" أو أداة سطر الأوامر 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')"
}
}
للتعرّف على كيفية تحديد شروط "إدارة الهوية وإمكانية الوصول" للوصول المؤقت، يُرجى الاطّلاع على ضبط إذن الوصول المؤقت.
للتعرّف على كيفية ضبط شروط "إدارة الهوية وإمكانية الوصول" للوصول إلى قاعدة بيانات واحدة أو أكثر، يُرجى الاطّلاع على ضبط شروط الوصول إلى قاعدة البيانات.
الخطوات التالية
- مزيد من المعلومات حول "إدارة الهوية وإمكانية الوصول"
- منح أدوار "إدارة الهوية وإمكانية الوصول"
- مزيد من المعلومات حول المصادقة