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