เริ่มต้นใช้งานกฎการรักษาความปลอดภัยของ Firebase

กฎการรักษาความปลอดภัยของ Firebase ให้การป้องกันที่มีประสิทธิภาพและปรับแต่งได้อย่างเต็มรูปแบบสำหรับข้อมูลใน Cloud Firestore, Realtime Database และ Cloud Storage คุณสามารถเริ่มต้นใช้งานกฎได้ง่ายๆ โดยทำตามขั้นตอนในคู่มือนี้ เพื่อรักษาความปลอดภัยของข้อมูลและปกป้องแอปของคุณจากผู้ใช้ที่เป็นอันตราย

ทำความเข้าใจภาษาของกฎการรักษาความปลอดภัยของ Firebase

ก่อนจะเขียนกฎ คุณควรสละเวลาสักครู่เพื่ออ่าน ภาษากฎการรักษาความปลอดภัยของ Firebase โดยเฉพาะสำหรับผลิตภัณฑ์ Firebase ที่คุณใช้อยู่ Cloud Storage ใช้ประโยชน์จากชุดพิเศษของ Common Expression Language (CEL) ที่อาศัยคำสั่ง match และ allow ซึ่งกำหนดเงื่อนไขสำหรับการเข้าถึงในเส้นทางที่กำหนด

เริ่มด้วยการเรียนรู้ไวยากรณ์หลักของภาษาของกฎการรักษาความปลอดภัยของ Firebase

ตั้งค่าการตรวจสอบสิทธิ์

หากยังไม่ได้ดำเนินการ ให้เพิ่มการตรวจสอบสิทธิ์ของ Firebase ลงในแอป การตรวจสอบสิทธิ์ Firebase รองรับวิธีการตรวจสอบสิทธิ์ทั่วไปหลายวิธีและผสานรวมกับกฎการรักษาความปลอดภัยของ Firebase เพื่อให้มีความสามารถในการยืนยันที่ครอบคลุม

คุณตั้งค่าข้อมูลการตรวจสอบสิทธิ์เพิ่มเติมที่กําหนดเองสําหรับแอปได้

ดูข้อมูลเพิ่มเติมเกี่ยวกับกฎการรักษาความปลอดภัยของ Firebase และการตรวจสอบสิทธิ์ Firebase

กำหนดโครงสร้างข้อมูลและกฎของคุณ

วิธีการจัดโครงสร้างข้อมูลอาจส่งผลต่อวิธีจัดโครงสร้างและใช้กฎ เมื่อคุณกำหนดโครงสร้างข้อมูล ให้พิจารณาถึงผลกระทบที่มีต่อโครงสร้างกฎ

เช่น คุณอาจต้องการใส่ช่องที่แสดงบทบาทเฉพาะสำหรับผู้ใช้แต่ละรายใน Cloud Storage จากนั้นกฎจะอ่านช่องนั้นและใช้เพื่อให้สิทธิ์เข้าถึงตามบทบาทได้ นอกจากนี้ คุณยังสร้างฐานข้อมูล Cloud Firestore, จัดเก็บเกณฑ์การเข้าถึงในเอกสาร Cloud Firestore แล้วเข้าถึงเอกสารเหล่านั้นจากกฎความปลอดภัยของ Cloud Storage ได้ด้วย

ขณะที่คุณกำหนดสถาปัตยกรรมข้อมูลและกฎ โปรดคำนึงว่ากฎจะเรียงซ้อนหรือไม่เรียงซ้อนกัน ซึ่งขึ้นอยู่กับผลิตภัณฑ์ของคุณ เมื่อใช้ Realtime Database กฎจะทำงานจากบนลงล่าง และกฎในระดับที่แคบกว่าจะลบล้างกฎที่ลึกขึ้น หากกฎให้สิทธิ์อ่านหรือเขียนในเส้นทางใดเส้นทางหนึ่ง กฎดังกล่าวก็จะให้สิทธิ์เข้าถึงโหนดย่อยทั้งหมดภายใต้เส้นทางดังกล่าวด้วย ในทางตรงกันข้ามกับ Cloud Firestore และ Cloud Storage กฎจะมีผลในระดับที่ระบุของลำดับชั้นข้อมูลเท่านั้น และคุณเขียนกฎอย่างชัดแจ้งเพื่อควบคุมการเข้าถึงระดับต่างๆ ได้

เข้าถึงกฎ

หากต้องการดูกฎที่มีอยู่ ให้ใช้ Firebase CLI หรือคอนโซล Firebase โปรดตรวจสอบว่าคุณแก้ไขกฎโดยใช้วิธีการเดียวกันอย่างสม่ำเสมอ เพื่อหลีกเลี่ยงการเขียนทับการอัปเดตโดยไม่ได้ตั้งใจ หากไม่แน่ใจว่ากฎที่กำหนดไว้ในเครื่องตรงกับการอัปเดตล่าสุดหรือไม่ คอนโซล Firebase จะแสดงกฎความปลอดภัยของ Firebase เวอร์ชันล่าสุดที่มีการใช้งานเสมอ

หากต้องการเข้าถึงกฎจากคอนโซล Firebase ให้เลือกโปรเจ็กต์ แล้วคลิกพื้นที่เก็บข้อมูลในแผงการนำทางด้านซ้าย คลิกกฎเมื่ออยู่ในฐานข้อมูลหรือที่เก็บข้อมูลของพื้นที่เก็บข้อมูลที่ถูกต้องแล้ว

หากต้องการเข้าถึงกฎจาก Firebase CLI ให้ไปที่ไฟล์กฎที่ระบุไว้ในไฟล์ firebase.json

เขียนกฎพื้นฐาน

ขณะพัฒนาแอปและทำความเข้าใจกฎ ให้ลองใช้กฎเพื่อจัดการกับกรณีการใช้งานพื้นฐาน 2-3 กรณี รวมถึงตัวอย่างต่อไปนี้

  • เจ้าของเนื้อหาเท่านั้น: จำกัดการเข้าถึงเนื้อหาโดยผู้ใช้
  • สิทธิ์การเข้าถึงแบบผสม: จำกัดสิทธิ์การเขียนตามผู้ใช้ แต่อนุญาตสิทธิ์การอ่านแบบสาธารณะ
  • การเข้าถึงตามแอตทริบิวต์: จำกัดการเข้าถึงให้เฉพาะกับกลุ่มหรือประเภทผู้ใช้

ทดสอบกฎ

หากคุณกำลังตั้งกฎความปลอดภัยของ Firebase ในคอนโซล Firebase คุณจะใช้พื้นที่ทดสอบกฎ Firebase เพื่อตรวจสอบลักษณะการทำงานได้อย่างรวดเร็ว อย่างไรก็ตาม เราขอแนะนำให้ทดสอบอย่างละเอียดยิ่งขึ้นด้วย Local Emulator Suite ก่อนที่จะนำการเปลี่ยนแปลงไปใช้กับเวอร์ชันที่ใช้งานจริง

ทำให้กฎใช้งานได้

ใช้คอนโซล Firebase หรือ Firebase CLI เพื่อทำให้กฎใช้งานได้ในเวอร์ชันที่ใช้งานจริง ทำตามขั้นตอนที่ระบุไว้ในหัวข้อจัดการและทำให้กฎการรักษาความปลอดภัยของ Firebase ใช้งานได้