مدیریت هویت و دسترسی (IAM)

دسترسی به منابع خود را با مدیریت هویت و دسترسی (IAM) مدیریت کنید. IAM به شما امکان می‌دهد دسترسی جزئی‌تری به منابع خاص Google Cloud بدهید و از دسترسی ناخواسته به سایر منابع جلوگیری کنید. این صفحه مجوزها و نقش‌های IAM را برای Cloud Firestore شرح می‌دهد. برای شرح مفصلی از IAM، مستندات IAM را مطالعه کنید.

IAM به شما امکان می‌دهد اصل امنیتی حداقل امتیاز را اتخاذ کنید، بنابراین فقط دسترسی‌های لازم را به منابع خود اعطا می‌کنید.

IAM به شما امکان می‌دهد با تنظیم سیاست‌های IAM، کنترل کنید که چه کسی (کاربر) چه مجوز (نقشی) برای کدام منابع دارد. سیاست‌های IAM یک یا چند نقش را به یک کاربر اعطا می‌کنند و مجوزهای خاصی را به کاربر می‌دهند. به عنوان مثال، می‌توانید نقش datastore.indexAdmin را به یک کاربر اعطا کنید که به کاربر اجازه می‌دهد شاخص‌ها را ایجاد، تغییر، حذف، فهرست یا مشاهده کند.

مجوزها و نقش‌ها

این بخش خلاصه‌ای از مجوزها و نقش‌هایی است که Cloud Firestore پشتیبانی می‌کند.

مجوزهای لازم برای متدهای API

جدول زیر مجوزهایی را که فراخواننده برای انجام هر عمل باید داشته باشد، فهرست می‌کند:

روش مجوزهای مورد نیاز
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، هر روش API در Cloud Firestore مستلزم آن است که حسابی که درخواست API را انجام می‌دهد، مجوزهای مناسب برای استفاده از منبع را داشته باشد. مجوزها با تنظیم سیاست‌هایی که نقش‌ها را به یک حساب کاربری، گروه یا سرویس اعطا می‌کنند، اعطا می‌شوند. علاوه بر نقش‌های اولیه، مالک، ویرایشگر و بیننده ، می‌توانید نقش‌های Cloud Firestore را به کاربران پروژه خود اعطا کنید.

جدول زیر فهرستی از نقش‌های IAM در 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.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 حذف یک تگ binding برای یک پایگاه داده.
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 فهرست مکان‌های موجود پایگاه داده. برای ایجاد یک پایگاه داده جدید لازم است.
نام مجوز تجسم‌گر کلید توضیحات
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 بازیابی یک پایگاه داده از یک نسخه پشتیبان.
نام مجوز Insights توضیحات
datastore.insights.get دریافت بینش از یک منبع
نام مجوز اعتبارنامه کاربر توضیحات
datastore.userCreds.get جزئیات مربوط به اعتبارنامه‌های کاربر را دریافت کنید.
datastore.userCreds.list اعتبارنامه‌های کاربری موجود را فهرست کنید.
datastore.userCreds.create اعتبارنامه‌های کاربر را ایجاد کنید.
datastore.userCreds.update اعتبارنامه‌های کاربر را فعال یا غیرفعال کنید، یا رمز عبور کاربر را بازنشانی کنید.
datastore.userCreds.delete اعتبارنامه‌های کاربر را حذف کنید.

تأخیر در تغییر نقش

Cloud Firestore مجوزهای IAM را به مدت ۵ دقیقه ذخیره می‌کند، بنابراین اعمال تغییر نقش تا ۵ دقیقه طول می‌کشد.

مدیریت IAM Cloud Firestore

شما می‌توانید سیاست‌های IAM را با استفاده از کنسول Google Cloud، رابط برنامه‌نویسی IAM یا ابزار خط فرمان gcloud دریافت و تنظیم کنید. برای جزئیات بیشتر به بخش اعطای، تغییر و لغو دسترسی به اعضای پروژه مراجعه کنید.

پیکربندی مجوزهای دسترسی مشروط

شما می‌توانید از IAM Conditions برای تعریف و اعمال کنترل دسترسی مشروط استفاده کنید.

برای مثال، شرط زیر نقش datastore.user را تا تاریخ مشخصی به یک principal اختصاص می‌دهد:

{
  "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 برای دسترسی به یک یا چند پایگاه داده، به پیکربندی شرایط دسترسی به پایگاه داده مراجعه کنید.

قدم بعدی چیست؟