کلیدهای رمزگذاری مدیریت شده توسط مشتری (CMEK)

به طور پیش‌فرض، تمام داده‌های در حالت استراحت در Cloud Firestore با استفاده از رمزگذاری پیش‌فرض Google رمزگذاری می‌شوند. Cloud Firestore این رمزگذاری را برای شما بدون هیچ اقدام اضافی انجام می دهد و مدیریت می کند.

اگر انطباق یا الزامات قانونی مربوط به کلیدهایی که از داده های شما محافظت می کنند دارید، می توانید از کلیدهای رمزگذاری مدیریت شده توسط مشتری (CMEK) برای Cloud Firestore استفاده کنید. به جای اینکه Google کلیدهای رمزگذاری را که از داده‌های شما محافظت می‌کنند مدیریت کند، پایگاه داده Cloud Firestore شما با استفاده از کلیدی که در سرویس مدیریت کلید ابری (Cloud KMS) کنترل و مدیریت می‌کنید محافظت می‌شود.

این صفحه CMEK را برای Cloud Firestore توصیف می کند. برای اطلاعات بیشتر در مورد CMEK به طور کلی، از جمله زمان و چرایی فعال کردن آن، به مستندات Cloud KMS زیر مراجعه کنید:

برای دستورالعمل‌های مربوط به انجام وظایف مربوط به CMEK با Cloud Firestore ، به استفاده از CMEK مراجعه کنید.

ویژگی ها

  • کنترل داده ها : CMEK به شما امکان می دهد کلید KMS را مدیریت کنید. می توانید کلید مورد استفاده برای رمزگذاری داده ها در حالت استراحت را در پایگاه داده Cloud Firestore خود بچرخانید، غیرفعال کنید و از بین ببرید.
  • عملکرد : CMEK بر Cloud Firestore SLA تأثیر نمی گذارد.
  • قابلیت ممیزی : اگر ثبت حسابرسی را برای Cloud KMS فعال کنید ، تمام عملیات روی کلید ثبت شده و در Cloud Logging قابل مشاهده است.
  • محدودیت‌های خط‌مشی سازمان : می‌توانید از محدودیت‌های خط‌مشی سازمان CMEK برای تعیین الزامات انطباق با رمزگذاری برای پایگاه‌های اطلاعاتی Cloud Firestore در سازمان خود استفاده کنید.

قیمت گذاری

Cloud KMS هزینه کلید و هرگونه عملیات رمزنگاری انجام شده با استفاده از آن کلید را دریافت می کند. برای اطلاعات بیشتر، قیمت گذاری Cloud KMS را ببینید.

زمانی که Cloud Firestore از کلید Cloud KMS می‌خواهد عملیات رمزگذاری یا رمزگشایی را انجام دهد، هزینه‌های عملیات از شما دریافت می‌شود. عملیات رمزگذاری/رمزگشایی توسط کلید مدیریت شده توسط مشتری هر 5 دقیقه انجام می شود و با درخواست های پایگاه داده همگام نیست. با توجه به تعداد مورد انتظار عملیات رمزنگاری ایجاد شده توسط Cloud Firestore ، هزینه ها معمولاً پایین هستند. هزینه‌های گزارش حسابرسی ابری یک هزینه اضافی است، اما همچنین انتظار می‌رود که با توجه به تعداد مورد انتظار عملیات رمزنگاری، به طور کلی کم باشد.

هیچ هزینه اضافی Cloud Firestore برای استفاده از پایگاه داده محافظت شده با CMEK وجود ندارد و قیمت گذاری Cloud Firestore همچنان اعمال می شود.

اگر کلید خود را برای یک پایگاه داده لغو کنید، هزینه ذخیره سازی بر اساس اندازه آخرین روزی که کلید در دسترس بوده است، محاسبه می شود. تا زمانی که پایگاه داده حذف شود یا کلید دوباره در دسترس قرار گیرد، هزینه های ذخیره سازی در آن اندازه پایگاه داده را متحمل خواهید شد.

آنچه با CMEK محافظت می شود

هنگامی که یک پایگاه داده محافظت شده توسط Cloud Firestore CMEK ایجاد می کنید، کلید Cloud KMS شما برای محافظت از داده ها در حالت استراحت استفاده می شود. این شامل داده‌هایی است که روی دیسک یا فلش درایو ذخیره می‌کنید، از جمله فهرست‌ها و نسخه‌های پشتیبان. برخی استثناها اعمال می شود. انواع داده‌های زیر با رمزگذاری پیش‌فرض Google و نه با کلید 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 تا زمانی که کلید بازگردانده شود به تأخیر می‌افتد. اگر پایگاه داده دارای عملیات طولانی مدت در حال انجام باشد، به صورت زیر تحت تأثیر قرار خواهند گرفت:

کلیدها در هر شرایطی که عمداً Cloud Firestore از دسترسی به کلید منع می‌کند، در دسترس نیستند. این شامل:

اگر کلید بازیابی شود، عملیات نظرسنجی تشخیص می دهد که کلید دوباره در دسترس است. دسترسی مجدداً فعال می شود، معمولاً در عرض چند دقیقه، اما در موارد نادر ممکن است تا چند ساعت طول بکشد. توجه داشته باشید که انتشار برخی از عملیات روی کلیدهای Cloud KMS، مانند غیرفعال کردن یا از بین بردن یک کلید، ممکن است تا 3 ساعت طول بکشد. Cloud Firestore هیچ تغییری را تا زمانی که در Cloud KMS اعمال شود شناسایی نمی کند.

بازگرداندن یک کلید بسته به موقعیت شامل موارد زیر است:

  • فعال کردن مجدد نسخه کلید غیرفعال
  • بازیابی نسخه کلید نابود شده قبل از نابودی دائمی، یک نسخه کلیدی برای تخریب برنامه ریزی شده است. شما فقط می توانید یک کلید را در دوره ای بازیابی کنید که نسخه کلیدی برای نابودی برنامه ریزی شده است. شما نمی توانید کلیدی را که قبلاً برای همیشه از بین رفته است بازیابی کنید.
  • اعطای مجدد مجوز به عامل سرویس Cloud Firestore برای دسترسی به کلید.

ملاحظات چرخش کلیدی

هنگامی که کلید CMEK را می چرخانید، Cloud Firestore پایگاه داده را با آخرین نسخه اولیه کلید CMEK دوباره رمزگذاری می کند. در طول فرآیند رمزگذاری مجدد، هم نسخه کلید قدیمی و هم جدید را در دسترس نگه دارید. پس از پایان رمزگذاری مجدد، غیرفعال کردن یا حذف نسخه های قدیمی کلید CMEK دسترسی به پایگاه داده را غیرفعال نمی کند زیرا با نسخه کلید اصلی جدید رمزگذاری شده است.

همچنین می توانید نسخه های کلیدی که برای محافظت از پایگاه داده استفاده می شوند را مشاهده کنید. برای اطلاعات بیشتر، مشاهده کلید در حال استفاده را ببینید.

ملاحظات کلیدی خارجی

وقتی از کلید Cloud EKM استفاده می‌کنید، Google هیچ کنترلی بر در دسترس بودن کلید مدیریت‌شده خارجی شما در سیستم شریک مدیریت کلید خارجی ندارد.

اگر کلید مدیریت شده خارجی در دسترس نباشد، 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 که از رمزگذاری پیش فرض Google استفاده می کند.
  • بازیابی به پایگاه داده ای که از رمزگذاری مشابه نسخه پشتیبان استفاده می کند.

برای اطلاعات بیشتر در مورد بازیابی پایگاه داده Cloud Firestore از یک نسخه پشتیبان، به بازیابی داده ها از یک نسخه پشتیبان از پایگاه داده مراجعه کنید. برای اطلاعات بیشتر در مورد بازیابی پایگاه داده Cloud Firestore محافظت شده با CMEK از یک نسخه پشتیبان، به بازیابی پایگاه داده محافظت شده با CMEK مراجعه کنید.

ردیابی کلید

می توانید از ردیابی کلید برای مشاهده منابع استفاده کنید، به عنوان مثال، پایگاه داده های Cloud Firestore ، که یک کلید از آنها محافظت می کند. برای اطلاعات بیشتر درباره ردیابی کلید، مشاهده استفاده از کلید را ببینید.

CMEK و در دسترس بودن کلید

هنگامی که کلیدها در دسترس یا غیرفعال هستند، از رفتارهای زیر که ممکن است در پایگاه‌های داده فعال CMEK رخ دهد، آگاه باشید:

  • می‌توانید تنظیمات بازیابی نقطه در زمان Cloud Firestore (PITR) را در یک پایگاه داده دارای CMEK تغییر دهید، حتی اگر کلید در دسترس نباشد، زیرا تنظیمات PITR ابرداده پایگاه داده است که توسط CMEK رمزگذاری نشده است.
  • می توانید یک پایگاه داده CMEK را که دارای کلیدهای در دسترس نیست حذف کنید.
  • وقتی یک پایگاه داده با CMEK فعال می‌سازید، کلیدهای غیرفعال در فهرست کلیدهای موجود در کنسول Google Cloud نشان داده نمی‌شوند. اگر به صورت دستی یک کلید غیرفعال را وارد کنید، فرآیند ایجاد پایگاه داده با خطای 400 FAILED_PRECONDITION ناموفق خواهد بود.

محدودیت ها

  • شما نمی توانید کلید یک پایگاه داده محافظت شده با CMEK را تغییر دهید. می توانید کلیدها را بچرخانید، فعال و غیرفعال کنید.
  • پایگاه داده های محافظت شده توسط CMEK از Key Visualizer فقط برای داده های موجودیت و سند پشتیبانی می کنند، نه برای داده های فهرست.
  • شما نمی توانید CMEK را در پایگاه داده های موجود فعال کنید. شما می توانید CMEK را فقط در پایگاه داده های جدید فعال کنید و هنگام ایجاد پایگاه داده باید آن را فعال کنید. برای انتقال داده ها در یک پایگاه داده غیر CMEK موجود به یک پایگاه داده محافظت شده با CMEK، داده های خود را صادر کرده و سپس داده ها را به یک پایگاه داده جدید محافظت شده با CMEK وارد کنید. همچنین می توانید داده ها را از یک پایگاه داده غیر CMEK به یک پایگاه داده CMEK بازیابی کنید.
  • Cloud Firestore از تعداد محدودی پایگاه داده محافظت شده توسط CMEK پشتیبانی می کند.
  • ما از حفاظت CMEK با ادغام توابع ابری (نسل اول) پشتیبانی نمی‌کنیم. اگر می‌خواهید حفاظت CMEK داشته باشید، از توابع Cloud Run Firestore Triggers (نسل دوم) استفاده کنید.

بعدش چی