مدیریت هویت و دسترسی (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 (فقط برای upsert)
FindAndModify datastore.entities.get
datastore.entities.list
datastore.entities.update (فقط برای جایگزینی یا به روز رسانی)
datastore.entities.create (فقط برای upsert)
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 را به کاربران پروژه خود اعطا کنید.

جدول زیر نقش‌های 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 بازیابی پایگاه داده از پشتیبان.
نام مجوز Insights توضیحات
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 IAM

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

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

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

به عنوان مثال، شرط زیر به یک اصلی نقش 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 برای دسترسی به یک یا چند پایگاه داده، به پیکربندی شرایط دسترسی به پایگاه داده مراجعه کنید.

بعدش چی