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

โดยปกติแล้ว การรักษาความปลอดภัยเป็นหนึ่งในส่วนที่ซับซ้อนที่สุดของการพัฒนาแอป ในแอปพลิเคชันส่วนใหญ่ นักพัฒนาแอปต้องสร้างและเรียกใช้เซิร์ฟเวอร์ที่จัดการการตรวจสอบสิทธิ์ (ผู้ใช้คือใคร) และการให้สิทธิ์ (ผู้ใช้ทำอะไรได้บ้าง) การตรวจสอบสิทธิ์และการให้สิทธิ์เป็นเรื่องที่ตั้งค่าได้ยาก และยิ่งยากขึ้นไปอีกหากต้องการทำให้ถูกต้อง แต่ก็เป็นสิ่งสำคัญต่อความสำเร็จของผลิตภัณฑ์

Firebase Security Rules สำหรับ Cloud Storage ช่วยให้คุณให้สิทธิ์ผู้ใช้และตรวจสอบคำขอได้ง่ายๆ เช่นเดียวกับที่ Firebase Authentication ช่วยให้คุณตรวจสอบสิทธิ์ผู้ใช้ได้ง่ายๆ Cloud Storage Security Rules จะจัดการความซับซ้อนให้คุณโดยอนุญาตให้คุณระบุสิทธิ์ตามเส้นทาง คุณสามารถเขียนกฎการให้สิทธิ์ที่จำกัดคำขอ Cloud Storage สำหรับผู้ใช้บางรายหรือจำกัดขนาดของการอัปโหลดได้ด้วยโค้ดเพียงไม่กี่บรรทัด

Firebase Realtime Database มีฟีเจอร์ที่คล้ายกันซึ่งเรียกว่า Firebase Realtime Database Security Rules

หากต้องการความช่วยเหลือจาก AI ให้คัดลอกพรอมต์ด้านล่างลงในตัวแทนการเขียนโค้ด AI (เช่น Gemini ใน Android Studio, Antigravity, Claude Code, Codex และ Cursor) คุณสามารถปรับแต่งพรอมต์และทำซ้ำกับ Agent ได้ ดูข้อมูลการติดตั้งโดยละเอียดได้ที่ทักษะเอเจนต์ Firebase

Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me write, validate, and deploy Firebase Security Rules to protect my app's Cloud Storage data.

การตรวจสอบสิทธิ์

การทราบว่าผู้ใช้ของคุณคือใครเป็นส่วนสำคัญในการสร้างแอปพลิเคชัน และ Firebase Authentication ก็มีโซลูชันการตรวจสอบสิทธิ์ฝั่งไคลเอ็นต์เท่านั้นที่ใช้งานง่ายและปลอดภัย Firebase Security Rules สำหรับ Cloud Storage เชื่อมโยงกับ Firebase Authentication เพื่อความปลอดภัยตามผู้ใช้ เมื่อผู้ใช้ได้รับการตรวจสอบสิทธิ์ด้วย Firebase Authentication ตัวแปร request.auth ใน Cloud Storage Security Rules จะกลายเป็นออบเจ็กต์ที่มีรหัสที่ไม่ซ้ำกันของผู้ใช้ (request.auth.uid) และข้อมูลผู้ใช้อื่นๆ ทั้งหมดในโทเค็น (request.auth.token) เมื่อผู้ใช้ไม่ได้รับการตรวจสอบสิทธิ์ request.auth จะเป็น null ซึ่งจะช่วยให้คุณควบคุมการเข้าถึงข้อมูลของผู้ใช้แต่ละรายได้อย่างปลอดภัย ดูข้อมูลเพิ่มเติมได้ในส่วนการตรวจสอบสิทธิ์

การให้สิทธิ์

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

Cloud Storage ช่วยให้คุณระบุกฎการให้สิทธิ์ต่อไฟล์และต่อเส้นทางที่อยู่ในเซิร์ฟเวอร์ของเรา และกำหนดสิทธิ์เข้าถึงไฟล์ในแอปของคุณ ตัวอย่างเช่น Cloud Storage Security Rules เริ่มต้นต้องใช้ Firebase Authentication เพื่อดำเนินการ read หรือ write กับไฟล์ทั้งหมด

service firebase.storage {
  match /b/{bucket}/o {
    match /someFolder/{fileName} {
      allow read, write: if request.auth != null;
    }
  }
}

คุณแก้ไขSecurity Rulesเหล่านี้ได้ในคอนโซล Firebase โดยไปที่แท็บฐานข้อมูลและพื้นที่เก็บข้อมูล > พื้นที่เก็บข้อมูล > กฎ

การตรวจสอบข้อมูล

นอกจากนี้ คุณยังใช้ Firebase Security Rules สำหรับ Cloud Storage เพื่อตรวจสอบข้อมูลได้ด้วย ซึ่งรวมถึงการตรวจสอบชื่อและเส้นทางของไฟล์ ตลอดจนพร็อพเพอร์ตี้ข้อมูลเมตาของไฟล์ เช่น contentType และ size

service firebase.storage {
  match /b/{bucket}/o {
    match /images/{imageId} {
      // Only allow uploads of any image file that's less than 5MB
      allow write: if request.resource.size < 5 * 1024 * 1024
                   && request.resource.contentType.matches('image/.*');
    }
  }
}

ขั้นตอนถัดไป

การป้องกันหลายชั้นด้วยการควบคุมบริการ VPC

คุณสามารถใช้การควบคุมบริการ VPC เพื่อปกป้องทั้งโปรเจ็กต์ด้วยขอบเขตการรักษาความปลอดภัย ซึ่งเป็นทางเลือกที่ครอบคลุมมากกว่าการควบคุมการเข้าถึงที่ละเอียดยิ่งขึ้นที่ Cloud Storage Security Rules มีให้

กฎความปลอดภัยของ Firebase และการควบคุมบริการ VPC ทำงานร่วมกัน โดยกฎความปลอดภัยจะจัดการการให้สิทธิ์ (ใครสามารถเข้าถึงไฟล์ใดได้บ้าง) ส่วนการควบคุมบริการ VPC จะให้การปกป้องระดับเครือข่าย (ป้องกันไม่ให้ข้อมูลออกจากสภาพแวดล้อมที่ได้รับอนุญาต) แนวทางแบบหลายชั้นนี้เป็นแนวทางปฏิบัติแนะนำสำหรับการรักษาความปลอดภัยข้อมูลที่ละเอียดอ่อนขององค์กร