با «مدیریت هویت و دسترسیها» (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.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 |
|
نقشهای ازپیش تعریفشده
با IAM، هر روش میانای برنامهسازی کاربردی در Cloud Firestore نیاز دارد که حساب ارائهدهنده درخواست میانای برنامهسازی کاربردی، اجازههای مناسب را برای استفاده از منبع داشته باشد. اجازهها با تنظیم خطمشیهایی اعطا میشود که نقشها را به کاربر، گروه، یا حساب سرویس اعطا میکند. علاوهبر نقشهای اصلی، مالک، ویرایشگر، و بیننده، میتوانید نقشهای Cloud Firestore را به کاربران پروژهتان اعطا کنید.
جدول زیر نقشهای Cloud Firestore IAM را فهرست میکند. میتوانید چندین نقش را به یک کاربر، گروه، یا حساب سرویس اعطا کنید.
| نقش | اجازهها | شرح |
|---|---|---|
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 |
دسترسی خواندن به «اطلاعات آماری»، «آمار»، و اسکنهای «کلید مصورساز». |
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 را بهمدت ۵ دقیقه ذخیره میکند، بنابراین تا ۵ دقیقه طول میکشد تا تغییر نقش اعمال شود.
مدیریت 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» برای دسترسی به یک یا چند پایگاه داده، به پیکربندی شرایط دسترسی به پایگاه داده مراجعه کنید.
حالا چه میشود
- درباره IAM بیشتر بدانید.
- نقشهای IAM را اعطا کنید.
- با اصالتسنجی آشنا شوید.