به طور پیشفرض، تمام دادههای موجود در Cloud Firestore با استفاده از رمزگذاری پیشفرض گوگل رمزگذاری میشوند. Cloud Firestore این رمزگذاری را بدون هیچ اقدام اضافی از جانب شما، مدیریت و کنترل میکند.
اگر الزامات خاص یا الزامات نظارتی مربوط به کلیدهایی که از دادههای شما محافظت میکنند را دارید، میتوانید از کلیدهای رمزگذاری مدیریتشده توسط مشتری (CMEK) برای Cloud Firestore استفاده کنید. به جای اینکه گوگل کلیدهای رمزگذاری محافظتکننده از دادههای شما را مدیریت کند، پایگاه داده Cloud Firestore شما با استفاده از کلیدی که شما در سرویس مدیریت کلید ابری (Cloud KMS) کنترل و مدیریت میکنید، محافظت میشود.
این صفحه CMEK را برای Cloud Firestore شرح میدهد. برای اطلاعات بیشتر در مورد CMEK به طور کلی، از جمله زمان و دلیل فعال کردن آن، به مستندات Cloud KMS زیر مراجعه کنید:
برای دستورالعملهای مربوط به انجام وظایف مرتبط با CMEK با Cloud Firestore ، به بخش «استفاده از CMEK» مراجعه کنید.
ویژگیها
- کنترل دادهها : CMEK به شما امکان مدیریت کلید KMS را میدهد. میتوانید کلید مورد استفاده برای رمزگذاری دادههای موجود در پایگاه داده Cloud Firestore خود را تغییر دهید، غیرفعال کنید و از بین ببرید.
- عملکرد : CMEK بر SLA مربوط به Cloud Firestore تأثیری ندارد.
- قابلیت حسابرسی : اگر ثبت گزارش حسابرسی را برای Cloud KMS فعال کنید ، تمام عملیات روی کلید ثبت شده و در Cloud Logging قابل مشاهده هستند.
- محدودیتهای سیاست سازمانی : شما میتوانید از محدودیتهای سیاست سازمانی CMEK برای تعیین الزامات انطباق رمزگذاری برای پایگاههای داده Cloud Firestore در سازمان خود استفاده کنید.
قیمتگذاری
Cloud KMS هزینه کلید و هرگونه عملیات رمزنگاری انجام شده با استفاده از آن کلید را دریافت میکند. برای اطلاعات بیشتر، به قیمتگذاری Cloud KMS مراجعه کنید.
وقتی Cloud Firestore از کلید Cloud KMS برای انجام عملیات رمزگذاری یا رمزگشایی درخواست میکند، هزینه عملیات از شما دریافت میشود. عملیات رمزگذاری/رمزگشایی توسط کلید مدیریتشده توسط مشتری هر 5 دقیقه یکبار انجام میشود و با درخواستهای پایگاه داده همگامسازی نمیشود. با توجه به تعداد عملیات رمزنگاری مورد انتظار توسط Cloud Firestore ، هزینهها عموماً پایین هستند. هزینههای گزارشهای حسابرسی Cloud یک هزینه اضافی است، اما با توجه به تعداد عملیات رمزنگاری مورد انتظار، انتظار میرود که عموماً پایین باشد.
هیچ هزینه اضافی برای استفاده از پایگاه داده محافظت شده توسط CMEK Cloud Firestore وجود ندارد و قیمت گذاری Cloud Firestore همچنان اعمال می شود.
اگر کلید خود را برای یک پایگاه داده لغو کنید، هزینه ذخیرهسازی بر اساس حجم آخرین روزی که کلید در دسترس بوده است، محاسبه خواهد شد. تا زمانی که پایگاه داده حذف نشود یا کلید دوباره در دسترس قرار نگیرد، هزینههای ذخیرهسازی در آن حجم پایگاه داده همچنان برای شما باقی خواهد ماند.
چه چیزی با CMEK محافظت میشود؟
وقتی یک پایگاه داده محافظتشده توسط CMEK Cloud Firestore ایجاد میکنید، از کلید Cloud KMS شما برای محافظت از دادههای ذخیرهشده استفاده میشود. این شامل دادههایی میشود که روی دیسک یا فلش درایو ذخیره میکنید، از جمله فهرستها و پشتیبانها. برخی استثنائات نیز اعمال میشود. انواع دادههای زیر با رمزگذاری پیشفرض گوگل رمزگذاری میشوند و نه با کلید CMEK:
- دادهها در حال انتقال یا در حافظه
- فراداده پایگاه داده
نحوه مدیریت وضعیت کلید غیرقابل دسترس
عملیات رمزگذاری و رمزگشایی برای هر درخواست داده انجام نمیشود. در عوض، سیستم Cloud Firestore هر 5 دقیقه یکبار از Cloud KMS نظرسنجی میکند تا بررسی کند که آیا کلید هنوز در دسترس است یا خیر و سپس در صورت موجود بودن کلید، عملیات رمزگذاری و رمزگشایی را انجام میدهد.
اگر سیستم تشخیص دهد که کلید در دسترس نیست، ظرف 10 دقیقه هرگونه فراخوانی بعدی به پایگاه داده Cloud Firestore ، شامل خواندن، نوشتن و پرسوجو، خطای FAILED_PRECONDITION را با پیام The customer-managed encryption key required by the requested resource is not accessible برمیگرداند.
اگر پایگاه داده دارای سیاستهای زمان حیات (TTL) باشد، و اگر زمان انقضا در حین عدم دسترسی به کلید از حد مجاز فراتر رود، حذف دادهها توسط TTL تا زمان بازیابی کلید به تأخیر میافتد. اگر پایگاه داده عملیات طولانی مدتی در حال انجام داشته باشد، به شرح زیر تحت تأثیر قرار خواهند گرفت:
- عملیات وارد کردن یا صادر کردن دادهها متوقف شده و به عنوان
Failedعلامتگذاری میشوند. در صورت بازگرداندن کلید، عملیات ناموفق دوباره انجام نخواهند شد. - عملیات ساخت ایندکس و عملیاتی که سیاستهای جدید TTL را فعال میکنند، پیشرفت خود را متوقف خواهند کرد. در صورت بازگرداندن کلید، عملیات متوقف شده دوباره امتحان خواهند شد.
کلیدها در هر موقعیتی که عمداً دسترسی Cloud Firestore به کلید را مسدود کند، غیرقابل دسترس تلقی میشوند. این شامل موارد زیر است:
- غیرفعال کردن یا از بین بردن نسخه کلید در حال استفاده. هنگام از بین بردن نسخه کلید مراقب باشید، زیرا این کار میتواند باعث از دست رفتن غیرقابل بازیابی دادهها شود .
- حذف مجوز دسترسی به کلید از حساب سرویس Cloud Firestore .
اگر کلید دوباره تنظیم شود، عملیات نظرسنجی تشخیص میدهد که کلید دوباره در دسترس است. دسترسی دوباره فعال میشود، معمولاً ظرف چند دقیقه، اما در موارد نادر میتواند تا چند ساعت طول بکشد. توجه داشته باشید که برخی از عملیات روی کلیدهای Cloud KMS، مانند غیرفعال کردن یا از بین بردن یک کلید، میتواند تا ۳ ساعت طول بکشد تا منتشر شود. Cloud Firestore هیچ تغییری را تا پس از اعمال آنها در Cloud KMS تشخیص نمیدهد.
بازگرداندن کلید، بسته به شرایط، شامل موارد زیر است:
- فعالسازی مجدد نسخه کلید غیرفعال.
- بازیابی نسخه کلید نابود شده. قبل از نابودی دائمی، یک نسخه کلید برای نابودی برنامهریزی شده است. شما فقط میتوانید در طول دورهای که یک نسخه کلید برای نابودی برنامهریزی شده است، یک کلید را بازیابی کنید. نمیتوانید کلیدی را که قبلاً به طور دائم نابود شده است، بازیابی کنید.
- اعطای مجدد مجوز دسترسی به کلید به نماینده سرویس Cloud Firestore .
ملاحظات کلیدی چرخش شغلی
وقتی کلید CMEK را تغییر میدهید، Cloud Firestore پایگاه داده را با آخرین نسخه اصلی کلید CMEK دوباره رمزگذاری میکند. در طول فرآیند رمزگذاری مجدد، نسخه قدیمی و جدید کلید را در دسترس نگه دارید. پس از اتمام رمزگذاری مجدد، غیرفعال کردن یا حذف نسخههای قدیمی کلید CMEK دسترسی به پایگاه داده را غیرفعال نمیکند زیرا با نسخه جدید کلید اصلی رمزگذاری شده است.
همچنین میتوانید نسخههای کلیدی که برای محافظت از پایگاه داده استفاده میشوند را مشاهده کنید. برای اطلاعات بیشتر، به «مشاهده کلید در حال استفاده» مراجعه کنید.
ملاحظات کلیدی خارجی
وقتی از کلید Cloud EKM استفاده میکنید، گوگل هیچ کنترلی بر در دسترس بودن کلید مدیریتشده خارجی شما در سیستم شریک مدیریت کلید خارجی ندارد.
اگر یک کلید مدیریتشده خارجی در دسترس نباشد، Cloud Firestore تا یک ساعت به پشتیبانی از عملیات کامل پایگاه داده بر اساس بهترین تلاش ادامه میدهد.
بعد از یک ساعت، اگر Cloud Firestore هنوز قادر به اتصال به Cloud KMS نباشد، Cloud Firestore به عنوان یک اقدام حفاظتی، شروع به آفلاین کردن پایگاه داده میکند. فراخوانیها به پایگاه داده با خطای FAILED_PRECONDITION که شامل جزئیات بیشتر است، با شکست مواجه میشوند.
برای اطلاعات بیشتر در مورد استفاده از کلیدهای خارجی، به مستندات Cloud External Key Manager مراجعه کنید.
پشتیبان گیری و بازیابی
یک نسخه پشتیبان از همان مکانیزم رمزگذاری پایگاه دادهای که آن را از آن ایجاد کردهاید، استفاده میکند. هنگامی که یک پایگاه داده Cloud Firestore محافظتشده توسط CMEK یک نسخه پشتیبان ایجاد میکند، نسخه پشتیبان را با نسخه کلید اصلی استفادهشده در زمان ایجاد نسخه پشتیبان رمزگذاری میکند.
Cloud Firestore اولین نسخه پشتیبان از پایگاه داده CMEK را پس از گذشت 24 ساعت از لحظه فعال کردن برنامههای پشتیبانگیری، ایجاد میکند.
برای اطلاعات بیشتر در مورد پشتیبانگیریهای Cloud Firestore ، به بخش پشتیبانگیری و بازیابی دادهها مراجعه کنید.
یک پایگاه داده بازیابی شده از یک نسخه پشتیبان، به طور پیشفرض از همان مکانیزم رمزگذاری نسخه پشتیبان استفاده میکند. هنگام بازیابی یک پایگاه داده، میتوانید نوع رمزگذاری متفاوتی را به یکی از روشهای زیر مشخص کنید:
- با یک کلید جدید مشخص شده، به پایگاه داده CMEK بازیابی کنید.
- بازیابی به یک پایگاه داده غیر CMEK که از رمزگذاری پیشفرض گوگل استفاده میکند.
- به پایگاه دادهای که از همان رمزگذاری نسخه پشتیبان استفاده میکند، بازیابی کنید.
برای اطلاعات بیشتر در مورد بازیابی پایگاه داده Cloud Firestore از یک نسخه پشتیبان، به بازیابی دادهها از یک نسخه پشتیبان پایگاه داده مراجعه کنید. برای اطلاعات بیشتر در مورد بازیابی پایگاه داده Cloud Firestore محافظت شده توسط CMEK از یک نسخه پشتیبان، به بازیابی پایگاه داده محافظت شده توسط CMEK مراجعه کنید.
کلون
به طور پیشفرض، یک پایگاه داده که از یک پایگاه داده دیگر کپی شده است، از همان مکانیزم رمزگذاری پایگاه داده منبع استفاده میکند. هنگام کپی کردن یک پایگاه داده، میتوانید نوع رمزگذاری متفاوتی را به یکی از روشهای زیر مشخص کنید:
- با یک کلید جدید مشخص شده، به یک پایگاه داده CMEK کپی کنید.
- کپی کردن در یک پایگاه داده غیر CMEK که از رمزگذاری پیشفرض گوگل استفاده میکند.
- (پیشفرض) کپی کردن به پایگاه دادهای که از همان رمزگذاری پایگاه داده منبع استفاده میکند.
برای اطلاعات بیشتر در مورد کلون کردن یک پایگاه داده Cloud Firestore ، به کلون کردن یک پایگاه داده مراجعه کنید. برای اطلاعات بیشتر در مورد کلون کردن یک پایگاه داده Cloud Firestore محافظت شده توسط CMEK، به کلون کردن یک پایگاه داده محافظت شده توسط CMEK مراجعه کنید.
ردیابی کلید
شما میتوانید از ردیابی کلید برای مشاهده منابعی، مثلاً پایگاههای داده Cloud Firestore ، که یک کلید از آنها محافظت میکند، استفاده کنید. برای اطلاعات بیشتر در مورد ردیابی کلید، به «مشاهده میزان استفاده از کلید» مراجعه کنید.
CMEK و در دسترس بودن کلید
وقتی کلیدها در دسترس نیستند یا غیرفعال هستند، از رفتارهای زیر که ممکن است در پایگاههای داده دارای CMEK رخ دهند، آگاه باشید:
- شما میتوانید تنظیمات بازیابی نقطهای در زمان (PITR) Cloud Firestore در یک پایگاه دادهی دارای CMEK تغییر دهید، حتی اگر کلید در دسترس نباشد، زیرا تنظیمات PITR، فرادادههای پایگاه داده هستند که توسط CMEK رمزگذاری نمیشوند.
- شما میتوانید یک پایگاه داده CMEK که کلیدهای آن در دسترس نیست را حذف کنید.
- وقتی یک پایگاه داده با قابلیت CMEK ایجاد میکنید، کلیدهای غیرفعال در لیست کلیدهای موجود در کنسول Google Cloud نمایش داده نمیشوند. اگر به صورت دستی یک کلید غیرفعال وارد کنید، فرآیند ایجاد پایگاه داده با خطای ۴۰۰
FAILED_PRECONDITIONبا شکست مواجه میشود.
محدودیتها
- شما نمیتوانید کلید پایگاه داده محافظتشده توسط CMEK را تغییر دهید. میتوانید کلیدها را بچرخانید، فعال و غیرفعال کنید.
- پایگاههای داده محافظتشده توسط CMEK، از Key Visualizer فقط برای دادههای موجودیت و سند پشتیبانی میکنند، نه برای دادههای شاخص.
- شما نمیتوانید CMEK را در پایگاههای داده موجود فعال کنید. CMEK را فقط میتوانید در پایگاههای داده جدید فعال کنید و باید هنگام ایجاد پایگاه داده آن را فعال کنید. برای انتقال دادهها در یک پایگاه داده غیر CMEK موجود به یک پایگاه داده محافظت شده توسط CMEK، دادههای خود را صادر کرده و سپس دادهها را به یک پایگاه داده جدید محافظت شده توسط CMEK وارد کنید. همچنین میتوانید دادهها را از یک پایگاه داده غیر CMEK به یک پایگاه داده CMEK بازیابی یا کلون کنید.
- Cloud Firestore از تعداد محدودی از پایگاههای داده محافظتشده توسط CMEK پشتیبانی میکند.
- ما از محافظت CMEK با ادغام توابع ابری (نسل اول) پشتیبانی نمیکنیم. اگر میخواهید محافظت CMEK داشته باشید، از توابع Cloud Run Firestore Triggers (نسل دوم) استفاده کنید.
چگونه دادهها میتوانند از پایگاههای داده محافظتشده توسط CMEK خارج شوند؟
دادههای کپیشده توسط برنامه شما میتوانند توسط کاربران آن به روشهای دلخواه ذخیره شوند. کنترلهای امنیتی مناسب برای هر برنامهای که به دادههای Cloud Firestore دسترسی دارد، لازم است تا اطمینان حاصل شود که دادهها فقط توسط افراد دارای مجوز مناسب قابل دسترسی هستند. برای جزئیات بیشتر به قوانین امنیتی و IAM مراجعه کنید.
دادههای یک پایگاه داده محافظتشده توسط CMEK را میتوان با استفاده از پشتیبانگیری و بازیابی ، شبیهسازی یا وارد کردن و صادر کردن به یک پایگاه داده غیر CMEK منتقل کرد. از کنترلهای IAM مناسب استفاده کنید تا فقط به کاربران مجاز اجازه این اقدامات داده شود. علاوه بر این، میتوان از محدودیتهای سیاست سازمانی CMEK برای الزام به محافظت از هر پایگاه دادهای که با بازیابی یا شبیهسازی ایجاد میشود و هر سطل Cloud Storage که برای وارد کردن استفاده میشود، توسط CMEK محافظت شود، استفاده کرد.