دسترسی به منابع خود را با مدیریت هویت و دسترسی (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.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 | |
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 را به کاربران پروژه خود اعطا کنید.
جدول زیر فهرستی از نقشهای IAM در Cloud Firestore را نشان میدهد. میتوانید چندین نقش را به یک حساب کاربری، گروه یا سرویس اعطا کنید.
| نقش | مجوزها | توضیحات |
|---|---|---|
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.indexes.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.indexes.getdatastore.indexes.listdatastore.namespaces.getdatastore.namespaces.listdatastore.statistics.getdatastore.statistics.listresourcemanager.projects.getresourcemanager.projects.list | دسترسی به تمام منابع Cloud Firestore را بخوانید. |
roles/datastore.indexAdmin | appengine.applications.getdatastore.databases.getMetadatadatastore.indexes.*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 | دسترسی به اطلاعات آماری، آمار و اسکنهای Key Visualizer را بخوانید. |
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.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 برای دسترسی به یک یا چند پایگاه داده، به پیکربندی شرایط دسترسی به پایگاه داده مراجعه کنید.
قدم بعدی چیست؟
- درباره IAM بیشتر بدانید.
- نقشهای IAM را اعطا کنید .
- درباره احراز هویت اطلاعات کسب کنید.