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

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

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

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

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

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

اجازه‌های لازم برای روش‌های میانای برنامه‌سازی کاربردی

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

روش مجوزهای لازم
projects.databases.MongoDBCompatible
ListDatabases datastore.databases.getMetadata
ListIndexes datastore.schemas.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
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 همسانه‌سازی پایگاه داده.

اگر درخواست 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، هر روش میانای برنامه‌سازی کاربردی در 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.schemas.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.schemas.get
datastore.schemas.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.schemas.*

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
دسترسی خواندن به «اطلاعات آماری»، «آمار»، و اسکن‌های «کلید مصورساز».
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.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 را به‌مدت ۵ دقیقه ذخیره می‌کند، بنابراین تا ۵ دقیقه طول می‌کشد تا تغییر نقش اعمال شود.

مدیریت IAM Cloud Firestore

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

حالا چه می‌شود