بهطور پیشفرض، همه دادههای غیرفعال در Cloud Firestore بااستفاده از رمزگذاری پیشفرض Google رمزگذاری میشوند. Cloud Firestore این رمزگذاری را بدون هیچ اقدام دیگری ازجانب شما برایتان مدیریت و اداره میکند.
اگر الزامات نظارتی یا متابعت از خطمشی خاصی دررابطهبا کلیدهایی که از دادههایتان محافظت میکنند دارید، میتوانید از کلیدهای رمزگذاری تحت مدیریت مشتری (CMEK) برای Cloud Firestore استفاده کنید. بهجای اینکه Google کلیدهای رمزگذاری را که از دادههایتان محافظت میکند مدیریت کند، پایگاه داده Cloud Firestore شما بااستفاده از کلیدی که در سرویس مدیریت کلید Cloud (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 درخواست میکند عملیات رمزگذاری یا رمزگشایی انجام دهد، هزینه عملیات برای شما صورتحساب میشود. عملیات رمزگذاری یا رمزگشایی توسط کلید تحتمدیریت مشتری هر ۵ دقیقه یکبار انجام میشود و با درخواستهای پایگاه داده همگامسازی نمیشود. با توجه به تعداد موردانتظار عملیات رمزنگاری تولیدشده توسط Cloud Firestore، هزینهها معمولاً پایین است. هزینههای Cloud Audit Logs هزینه اضافی است، اما با توجه به تعداد موردانتظار عملیاتهای رمزنگاری، انتظار میرود که بهطور کلی کم باشد.
هیچ هزینه Cloud Firestore اضافی برای استفاده از پایگاه داده محافظتشده با CMEK وجود ندارد و قیمتگذاری Cloud Firestore همچنان اعمال میشود.
اگر کلیدتان را برای پایگاه داده لغو کنید، هزینه فضای ذخیرهسازی براساس اندازه آخرین روزی که کلید دردسترس بوده است محاسبه میشود. تا زمانی که پایگاه داده حذف نشود یا کلید دوباره دردسترس قرار نگیرد، همچنان هزینههای فضای ذخیرهسازی را با آن اندازه پایگاه داده متحمل خواهید شد.
چه چیزی با CMEK محافظت میشود
وقتی پایگاه داده محافظتشده با Cloud Firestore CMEK ایجاد میکنید، از کلید Cloud KMS شما برای محافظت از دادههای غیرفعال استفاده میشود. این شامل دادههایی است که در دیسک یا حافظه فلش ذخیره میکنید، ازجمله نمایهها و نسخههای پشتیبان. برخی استثناها اعمال میشود. انواع دادههای زیر با رمزگذاری پیشفرض Google رمزگذاری میشوند و نه با کلید CMEK:
- دادههای درحال انتقال یا در حافظه
- فراداده پایگاه داده
نحوه رسیدگی به وضعیت کلید دردسترسنبودن
عملیات رمزگذاری و رمزگشایی برای هر درخواست داده صادر نمیشود. درعوض، Cloud Firestore سیستم هر ۵ دقیقه یکبار Cloud KMS را نظرسنجی میکند تا بررسی کند که آیا کلید هنوز دردسترس است یا نه و سپس درصورت دردسترس بودن کلید، عملیات رمزگذاری و رمزگشایی را انجام میدهد.
اگر سیستم تشخیص دهد که کلید دردسترس نیست، ظرف ۱۰ دقیقه هرگونه
فراخوانی بعدی به پایگاه داده Cloud Firestore، ازجمله خواندن،
نوشتن، و پُرسمان، خطای INVALID_ARGUMENT را با پیام زیر
برمیگرداند:
The customer-managed encryption key required by the requested
resource is not accessible.
اگر پایگاه داده خطمشیهای زمان بقا (TTL) داشته باشد و اگر هریک از زمانهای انقضا درحالیکه کلید دردسترس نیست منقضی شود، حذف دادهها توسط TTL تا زمانی که کلید بازگردانده شود بهتأخیر خواهد افتاد. اگر پایگاه داده عملیات طولانیمدت درحال اجرا داشته باشد، بهصورت زیر تحتتأثیر قرار خواهند گرفت:
- عملیات ساخت نمایه و عملیات فعال کردن خطمشیهای جدید TTL متوقف خواهد شد. اگر کلید بازگردانده شود، عملیات متوقفشده دوباره امتحان خواهد شد.
کلیدها در هر شرایطی که عمداً به Cloud Firestore اجازه دسترسی به کلید داده نشود، غیرقابلدسترس درنظر گرفته میشوند. ازجمله:
- غیرفعال کردن یا نابود کردن نسخه کلید درحال استفاده. هنگام ازبین بردن نسخه کلید مراقب باشید، زیرا این کار میتواند باعث ازدست رفتن غیرقابلبازیابی دادهها شود.
- درحال برداشتن اجازه دسترسی به کلید از حساب سرویس Cloud Firestore.
اگر کلید بازگردانده شود، عملیات نظرسنجی تشخیص میدهد که کلید دوباره دردسترس است. دسترسی معمولاً ظرف چند دقیقه دوباره فعال میشود، اما در موارد نادر ممکن است تا چند ساعت طول بکشد. توجه داشته باشید که برخیاز عملیات روی کلیدهای Cloud KMS، مانند غیرفعال کردن یا ازبین بردن کلید، ممکن است تا ۳ ساعت طول بکشد تا منتشر شود. Cloud Firestore هیچ تغییری را تا زمانی که در Cloud KMS اعمال نشود شناسایی نمیکند.
بسته به شرایط، بازگرداندن کلید شامل موارد زیر میشود:
- فعال کردن مجدد نسخه کلید غیرفعالشده.
- درحال بازیابی نسخه کلید تخریبشده. پیشاز اینکه نسخه کلید برای همیشه نابود شود، برای نابودی زمانبندی میشود. فقط در دورهای که نسخه کلید برای تخریب زمانبندی شده است میتوانید کلید را بازیابی کنید. نمیتوانید کلیدی را که قبلاً برای همیشه نابود شده است بازیابی کنید.
- اعطای مجدد اجازه به عامل سرویس Cloud Firestore برای دسترسی به کلید.
ملاحظات تغییر کلید
وقتی کلید CMEK را میچرخانید، Cloud Firestore پایگاه داده را با جدیدترین نسخه اصلی کلید CMEK دوباره رمزگذاری میکند. درطول فرایند بازرمزگذاری، هم نسخه کلید قبلی و هم نسخه کلید جدید را دردسترس نگه دارید. پساز پایان رمزگذاری مجدد، غیرفعال کردن یا حذف نسخههای قبلی کلید CMEK دسترسی به پایگاه داده را غیرفعال نمیکند زیرا با نسخه کلید اصلی جدید رمزگذاری شده است.
همچنین میتوانید نسخههای کلیدی را که برای محافظت از پایگاه داده استفاده میشود مشاهده کنید. برای اطلاعات بیشتر، به مشاهده کلید درحال استفاده مراجعه کنید.
ملاحظات کلیدی خارجی
وقتی از کلید Cloud EKM استفاده میکنید، Google هیچ کنترلی بر دردسترس بودن کلید مدیریتشده خارجی شما در سیستم شریک مدیریت کلید خارجی ندارد.
اگر کلید مدیریتشده خارجی دردسترس نباشد، Cloud Firestore بااستفاده از نسخه ذخیرهشده کلید در حافظه نهان، تا یک ساعت به پشتیبانی از عملیات کامل پایگاه داده ادامه میدهد.
پساز یک ساعت، اگر Cloud Firestore همچنان نتواند به Cloud KMS متصل شود،
Cloud Firestore بهعنوان اقدامی محافظتی، پایگاه داده را آفلاین میکند. فراخوانیهای پایگاه داده با خطای
INVALID_ARGUMENT که شامل جزئیات بیشتر است ناموفق خواهد بود.
برای ملاحظات بیشتر هنگام استفاده از کلیدهای خارجی، به سند Cloud External Key Manager مراجعه کنید.
پشتیبانگیری و بازیابی
نسخه پشتیبان از همان سازوکار رمزگذاری پایگاه دادهای استفاده میکند که از آن ایجاد شده است. وقتی پایگاه داده Cloud Firestore محافظتشده با CMEK نسخه پشتیبان ایجاد میکند، نسخه پشتیبان را با نسخه کلید اصلی استفادهشده در زمان ایجاد نسخه پشتیبان رمزگذاری میکند.
Cloud Firestore اولین پشتیبانگیری از پایگاه داده CMEK را ۲۴ ساعت پساز فعال کردن زمانبندیهای پشتیبانگیری ایجاد میکند.
برای اطلاعات بیشتر درباره پشتیبانگیریهای Cloud Firestore، به پشتیبانگیری و بازیابی دادهها مراجعه کنید.
پایگاه دادهای که از نسخه پشتیبان بازیابی شده است، بهطور پیشفرض از همان سازوکار رمزگذاری نسخه پشتیبان استفاده میکند. وقتی پایگاه دادهای را بازیابی میکنید، میتوانید نوع رمزگذاری متفاوتی را به یکی از روشهای زیر مشخص کنید:
- بازیابی در پایگاه داده CMEK با کلید جدید مشخصشده.
- بازیابی در پایگاه داده غیر CMEK که از رمزگذاری پیشفرض Google استفاده میکند.
- به پایگاه دادهای بازیابی کنید که از همان رمزگذاری نسخه پشتیبان استفاده میکند.
برای اطلاعات بیشتر درباره بازیابی پایگاه داده Cloud Firestore از نسخه پشتیبان، به بازیابی دادهها از نسخه پشتیبان پایگاه داده مراجعه کنید. برای اطلاعات بیشتر درباره بازیابی پایگاه داده Cloud Firestore محافظتشده با CMEK از نسخه پشتیبان، به بازیابی پایگاه داده محافظتشده با CMEK مراجعه کنید.
همسانهسازی
بهطور پیشفرض، پایگاه دادهای که از پایگاه داده دیگری کلون شده است از همان سازوکار رمزگذاری پایگاه داده منبع استفاده میکند. وقتی پایگاه دادهای را شبیهسازی میکنید، میتوانید نوع رمزگذاری متفاوتی را به یکی از روشهای زیر مشخص کنید:
- کلون کردن به پایگاه داده CMEK با کلید جدید مشخصشده.
- کلون کردن در پایگاه داده غیر CMEK که از رمزگذاری پیشفرض Google استفاده میکند.
- (پیشفرض) کلون کردن به پایگاه دادهای که از همان رمزگذاری پایگاه داده منبع استفاده میکند.
برای اطلاعات بیشتر درباره کلون کردن پایگاه داده Cloud Firestore، به کلون کردن پایگاه داده مراجعه کنید. برای کسب اطلاعات بیشتر درباره کلون کردن پایگاه داده Cloud Firestore محافظتشده با CMEK، به کلون کردن پایگاه داده محافظتشده با CMEK مراجعه کنید.
ردگیری کلید
میتوانید از ردیابی کلید برای مشاهده منابعی که کلید از آنها محافظت میکند، برای مثال Cloud Firestore پایگاههای داده، استفاده کنید. برای اطلاعات بیشتر درباره ردیابی کلید، به مشاهده استفاده از کلید مراجعه کنید.
CMEK و دردسترس بودن کلید
وقتی کلیدها دردسترس یا فعال نیستند، از رفتارهای زیر که ممکن است در پایگاههای داده فعالشده با CMEK رخ دهد آگاه باشید:
میتوانید پایگاه داده CMEK را که کلیدهای غیرقابلدسترس دارد حذف کنید.
وقتی پایگاه دادهای با CMEK فعال ایجاد میکنید، کلیدهای غیرفعالشده در فهرست کلیدهای دردسترس در کنسول Google Cloud نشان داده نمیشوند. اگر کلید غیرفعالشدهای را بهصورت دستی وارد کنید، فرایند ایجاد پایگاه داده با خطای
INVALID_ARGUMENT۴۰۰ ناموفق خواهد بود.
محدودیتها
نمیتوانید کلید پایگاه داده محافظتشده با CMEK را تغییر دهید. میتوانید کلیدها را بچرخانید، فعال کنید، و غیرفعال کنید.
نمیتوانید CMEK را در پایگاههای داده موجود فعال کنید. فقط در پایگاههای داده جدید میتوانید CMEK را فعال کنید و باید آن را هنگام ایجاد پایگاه داده فعال کنید. برای انتقال دادهها در پایگاه داده غیر CMEK موجود به پایگاه داده محافظتشده با CMEK، دادههایتان را صادر کنید و سپس دادهها را به پایگاه داده محافظتشده با CMEK جدید وارد کنید. همچنین میتوانید دادهها را از پایگاه داده غیر CMEK به پایگاه داده CMEK بازیابی یا کلون کنید.
Cloud Firestore از تعداد محدودی پایگاه داده محافظتشده با CMEK پشتیبانی میکند.