دسترسی به منابع خود را با مدیریت هویت و دسترسی (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 | یک پایگاه داده را شبیه سازی کنید. اگر درخواست
اگر میخواهید با فهرست کردن پیوندها بررسی کنید که آیا پیوندهای برچسب با موفقیت تنظیم شدهاند، مجوزهای اضافی زیر مورد نیاز است:
|
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 برای دسترسی به یک یا چند پایگاه داده، به پیکربندی شرایط دسترسی به پایگاه داده مراجعه کنید.
بعدش چی
- درباره IAM بیشتر بدانید.
- نقش های IAM را اعطا کنید .
- درباره احراز هویت بیاموزید.