การบันทึกการตรวจสอบสำหรับการจัดการ Firebase

หน้านี้อธิบายบันทึกการตรวจสอบที่สร้างโดย Firebase โดยเป็นส่วนหนึ่งของ บันทึกการตรวจสอบระบบคลาวด์

ภาพรวม

บริการ Firebase เขียนบันทึกการตรวจสอบเพื่อช่วยคุณตอบคำถาม "ใครทำอะไร ที่ไหน และเมื่อไหร่" นี่คือบันทึกการตรวจสอบระบบคลาวด์ซึ่งเป็นส่วนหนึ่งของ โครงการ Google Cloud ที่เชื่อมต่อกับโครงการ Firebase ของคุณ

โปรเจ็กต์ Firebase ของคุณแต่ละโปรเจ็กต์จะมีเฉพาะบันทึกการตรวจสอบสำหรับทรัพยากรที่อยู่ในโปรเจ็กต์โดยตรง

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

บันทึกการตรวจสอบที่มีอยู่

บันทึกการตรวจสอบประเภทต่อไปนี้ใช้ได้กับการจัดการ Firebase:

  • บันทึกการตรวจสอบกิจกรรมของผู้ดูแลระบบ

    รวมการดำเนินการ "เขียนโดยผู้ดูแลระบบ" ที่เขียนข้อมูลเมตาหรือข้อมูลการกำหนดค่า

    คุณไม่สามารถปิดใช้งานบันทึกการตรวจสอบกิจกรรมของผู้ดูแลระบบได้

  • บันทึกการตรวจสอบการเข้าถึงข้อมูล

    รวมการดำเนินการ "อ่านโดยผู้ดูแลระบบ" ที่อ่านข้อมูลเมตาหรือข้อมูลการกำหนดค่า ยังรวมถึงการดำเนินการ "อ่านข้อมูล" และ "เขียนข้อมูล" ที่อ่านหรือเขียนข้อมูลที่ผู้ใช้ให้ไว้

    หากต้องการรับบันทึกการตรวจสอบการเข้าถึงข้อมูล คุณต้องเปิดใช้งานอย่างชัดเจน

สำหรับคำอธิบายเพิ่มเติมของประเภทบันทึกการตรวจสอบ โปรดดู ประเภทของบันทึกการตรวจสอบ

การดำเนินงานที่ได้รับการตรวจสอบแล้ว

ข้อมูลต่อไปนี้จะสรุปว่าการทำงานของ API ใดที่สอดคล้องกับบันทึกการตรวจสอบแต่ละประเภทในการจัดการ Firebase

หมวดหมู่บันทึกการตรวจสอบ การดำเนินการจัดการ Firebase
การดำเนินโครงการ
กิจกรรมของผู้ดูแลระบบ เพิ่มFirebase
อัปเดตโปรเจ็กต์ Firebase
สิ้นสุด DefaultLocation
การเข้าถึงข้อมูล (ADMIN_READ) รับโปรเจ็กต์ GetFirebase
รายชื่อสถานที่ที่มีอยู่
รับ AdminSdkConfig
ค้นหา FirebaseApps
การทำงานของแอป iOS
กิจกรรมของผู้ดูแลระบบ สร้างIosApp
อัพเดต iOSApp
การเข้าถึงข้อมูล (ADMIN_READ) GetIosApp
รายการ IosApps
รับ IosAppConfig
การทำงานของแอพ Android
กิจกรรมของผู้ดูแลระบบ สร้าง AndroidApp
อัปเดต AndroidApp
สร้างใบรับรอง ShaCertificate
ลบใบรับรอง ShaCertificate
การเข้าถึงข้อมูล (ADMIN_READ) รับ AndroidApp
รายการ AndroidApps
รับ AndroidAppConfig
ListShaCertificates
การดำเนินงานของเว็บแอป
กิจกรรมของผู้ดูแลระบบ สร้างWebApp
อัพเดตWebApp
การเข้าถึงข้อมูล (ADMIN_READ) รับWebApp
รายการWebApps
รับ WebAppConfig

รูปแบบบันทึกการตรวจสอบ

รายการบันทึกการตรวจสอบประกอบด้วยออบเจ็กต์ต่อไปนี้:

  • รายการบันทึกเอง ซึ่งเป็นออบเจ็กต์ประเภท LogEntry ช่องที่มีประโยชน์มีดังต่อไปนี้:

    • logName ประกอบด้วยรหัสทรัพยากรและประเภทบันทึกการตรวจสอบ
    • resource มีเป้าหมายของการดำเนินการที่ได้รับการตรวจสอบ
    • timestamp ประกอบด้วยเวลาของการดำเนินการที่ได้รับการตรวจสอบ
    • protoPayload มีข้อมูลที่ตรวจสอบแล้ว
  • ข้อมูลการบันทึกการตรวจสอบ ซึ่งเป็นออบเจ็กต์ AuditLog ที่เก็บไว้ในฟิลด์ protoPayload ของรายการบันทึก

  • ข้อมูลการตรวจสอบเฉพาะบริการเพิ่มเติม ซึ่งเป็นออบเจ็กต์เฉพาะบริการ สำหรับการบูรณาการแบบเก่า ออบเจ็กต์นี้จะถูกเก็บไว้ในฟิลด์ serviceData ของออบเจ็กต์ AuditLog การบูรณาการที่ใหม่กว่าจะใช้ฟิลด์ metadata

สำหรับช่องอื่นๆ ในออบเจ็กต์เหล่านี้ และวิธีการตีความ โปรดดู ทำความเข้าใจบันทึกการตรวจสอบ

ชื่อบันทึก

ชื่อทรัพยากรบันทึกการตรวจสอบระบบคลาวด์ระบุโปรเจ็กต์ Firebase หรือเอนทิตี Google Cloud อื่นๆ ที่เป็นเจ้าของบันทึกการตรวจสอบ และไม่ว่าบันทึกจะมีข้อมูลกิจกรรมของผู้ดูแลระบบ การเข้าถึงข้อมูล นโยบายถูกปฏิเสธ หรือบันทึกการตรวจสอบเหตุการณ์ของระบบหรือไม่ ตัวอย่างเช่น ข้อมูลต่อไปนี้จะแสดงชื่อบันทึกสำหรับบันทึกการตรวจสอบกิจกรรมผู้ดูแลระบบระดับโครงการและบันทึกการตรวจสอบการเข้าถึงข้อมูลขององค์กร ตัวแปรแสดงถึงโปรเจ็กต์ Firebase และตัวระบุองค์กร

projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access

ชื่อบริการ

บันทึกการตรวจสอบการจัดการ Firebase ใช้ชื่อบริการ firebase.googleapis.com

หากต้องการดูรายชื่อบริการ Cloud Logging API ทั้งหมดและประเภททรัพยากรที่ได้รับการตรวจสอบที่เกี่ยวข้อง โปรดดู แมปบริการกับทรัพยากร

ประเภททรัพยากร

บันทึกการตรวจสอบการจัดการ Firebase ใช้ประเภททรัพยากร audited_resource สำหรับบันทึกการตรวจสอบทั้งหมด

หากต้องการดูรายการประเภททรัพยากรที่ได้รับการตรวจสอบของ Cloud Logging ทั้งหมดและข้อมูลเชิงอธิบาย โปรดดู ประเภททรัพยากรที่ได้รับการตรวจสอบ

เปิดใช้งานการบันทึกการตรวจสอบ

บันทึกการตรวจสอบกิจกรรมของผู้ดูแลระบบจะเปิดใช้งานอยู่เสมอ คุณไม่สามารถปิดการใช้งานได้

บันทึกการตรวจสอบการเข้าถึงข้อมูลจะปิดใช้โดยค่าเริ่มต้นและไม่ได้เขียนเว้นแต่จะเปิดใช้งานอย่างชัดเจน (ยกเว้นบันทึกการตรวจสอบการเข้าถึงข้อมูลสำหรับ BigQuery ซึ่งปิดใช้ไม่ได้)

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

สิทธิ์และบทบาท

สิทธิ์และบทบาท ของ Cloud IAM จะกำหนดความสามารถของคุณในการเข้าถึงข้อมูลบันทึกการตรวจสอบในทรัพยากรของ Google Cloud

เมื่อตัดสินใจว่า สิทธิ์และบทบาทเฉพาะการบันทึก ใดที่จะนำไปใช้กับกรณีการใช้งานของคุณ ให้พิจารณาสิ่งต่อไปนี้:

  • บทบาทผู้ดูบันทึก ( roles/logging.viewer ) ช่วยให้คุณเข้าถึงบันทึกการตรวจสอบกิจกรรมของผู้ดูแลระบบ นโยบายถูกปฏิเสธ และเหตุการณ์ของระบบในระดับอ่านอย่างเดียว ถ้าคุณมีบทบาทนี้ คุณจะไม่สามารถดูบันทึกการตรวจสอบการเข้าถึงข้อมูลที่อยู่ในที่เก็บ _Default ได้

  • บทบาทผู้ดูบันทึกส่วนตัว (roles/logging.privateLogViewer ) มีสิทธิ์ที่มีอยู่ใน roles/logging.viewer รวมถึงความสามารถในการอ่านบันทึกการตรวจสอบการเข้าถึงข้อมูลในที่เก็บ _Default

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

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

ดูบันทึก

หากต้องการค้นหาและดูบันทึกการตรวจสอบ คุณจำเป็นต้องทราบตัวระบุของโปรเจ็กต์ Firebase โฟลเดอร์ หรือองค์กรที่คุณต้องการดูข้อมูลการบันทึกการตรวจสอบ คุณสามารถระบุฟิลด์ LogEntry ที่จัดทำดัชนีอื่นๆ เพิ่มเติมได้ เช่น resource.type ; สำหรับรายละเอียด โปรดดู ค้นหารายการบันทึกอย่างรวดเร็ว

ต่อไปนี้เป็นชื่อบันทึกการตรวจสอบ รวมถึงตัวแปรสำหรับตัวระบุของโปรเจ็กต์ Firebase โฟลเดอร์หรือองค์กร:

   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fpolicy

คุณสามารถดูบันทึกการตรวจสอบใน Cloud Logging ได้โดยใช้คอนโซล GCP, เครื่องมือบรรทัดคำสั่ง gcloud หรือ Logging API

คอนโซล

คุณสามารถใช้ Logs Explorer ในคอนโซล GCP เพื่อดึงข้อมูลรายการบันทึกการตรวจสอบสำหรับโปรเจ็กต์ โฟลเดอร์ หรือองค์กร Firebase ของคุณได้ ดังนี้

  1. ในคอนโซล GCP ให้ไปที่หน้า การบันทึก > Logs Explorer

    ไปที่หน้า Logs Explorer

  2. ในหน้า Logs Explorer ให้เลือกโปรเจ็กต์ โฟลเดอร์ หรือองค์กร Firebase ที่มีอยู่

  3. ในบานหน้าต่าง ตัวสร้างแบบสอบถาม ให้ทำดังต่อไปนี้:

    • ใน ประเภททรัพยากร ให้เลือกทรัพยากร Google Cloud ที่มีบันทึกการตรวจสอบที่คุณต้องการดู

    • ใน ชื่อบันทึก ให้เลือกประเภทบันทึกการตรวจสอบที่คุณต้องการดู:

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

    หากคุณไม่เห็นตัวเลือกเหล่านี้ แสดงว่าไม่มีบันทึกการตรวจสอบประเภทนั้นในโปรเจ็กต์ โฟลเดอร์ หรือองค์กร Firebase

    สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการสืบค้นโดยใช้ Logs Explorer โปรดดู ที่ สร้างการสืบค้นบันทึก

gcloud

เครื่องมือบรรทัดคำสั่ง gcloud มีอินเทอร์เฟซบรรทัดคำสั่งให้กับ Cloud Logging API ระบุ PROJECT_ID , FOLDER_ID หรือ ORGANIZATION_ID ที่ถูกต้องในชื่อบันทึกแต่ละรายการ

หากต้องการอ่านรายการบันทึกการตรวจสอบระดับโปรเจ็กต์ Firebase ให้เรียกใช้คำสั่งต่อไปนี้

gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" --project=PROJECT_ID

หากต้องการอ่านรายการบันทึกการตรวจสอบระดับโฟลเดอร์ของคุณ ให้รันคำสั่งต่อไปนี้:

gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" --folder=FOLDER_ID

หากต้องการอ่านรายการบันทึกการตรวจสอบระดับองค์กรของคุณ ให้รันคำสั่งต่อไปนี้:

gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" --organization=ORGANIZATION_ID

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้เครื่องมือ gcloud โปรดดู อ่านรายการบันทึก

เอพีไอ

เมื่อสร้างการสืบค้นของคุณ ให้แทนที่ตัวแปรด้วยค่าที่ถูกต้อง แทนที่ชื่อหรือตัวระบุบันทึกการตรวจสอบระดับโปรเจ็กต์ ระดับโฟลเดอร์ หรือระดับองค์กรที่เหมาะสมตามที่แสดงในชื่อบันทึกการตรวจสอบ ตัวอย่างเช่น หากข้อความค้นหาของคุณมี PROJECT_ID ตัวระบุโปรเจ็กต์ที่คุณระบุจะต้องอ้างอิงถึงโปรเจ็กต์ Firebase ที่เลือกในปัจจุบัน

หากต้องการใช้ Logging API เพื่อดูรายการบันทึกการตรวจสอบ ให้ทำดังต่อไปนี้:

  1. ไปที่ส่วน ลองใช้ API นี้ ในเอกสารประกอบสำหรับเมธอด entries.list

  2. ใส่ข้อมูลต่อไปนี้ลงในส่วน เนื้อหาของคำขอ ของแบบฟอร์ม ลองใช้ API นี้ การคลิก แบบฟอร์มที่เติมไว้ล่วงหน้า นี้จะเติมเนื้อหาคำขอโดยอัตโนมัติ แต่คุณต้องระบุ PROJECT_ID ที่ถูกต้องในชื่อบันทึกแต่ละรายการ

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
    
  3. คลิก ดำเนินการ

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการสืบค้น โปรดดูที่ การบันทึกภาษาการสืบค้น

สำหรับตัวอย่างของรายการบันทึกการตรวจสอบและวิธีค้นหาข้อมูลที่สำคัญที่สุด โปรดดูที่ ตัวอย่างรายการบันทึกการตรวจสอบ

บันทึกการตรวจสอบเส้นทาง

คุณสามารถ กำหนดเส้นทางบันทึกการตรวจสอบ ไปยังปลายทางที่รองรับได้ในลักษณะเดียวกับที่คุณกำหนดเส้นทางบันทึกประเภทอื่นๆ ได้ ต่อไปนี้เป็นเหตุผลบางประการที่คุณอาจต้องการกำหนดเส้นทางบันทึกการตรวจสอบของคุณ:

  • หากต้องการเก็บบันทึกการตรวจสอบไว้เป็นระยะเวลานานขึ้นหรือใช้ความสามารถในการค้นหาที่มีประสิทธิภาพมากขึ้น คุณสามารถกำหนดเส้นทางสำเนาของบันทึกการตรวจสอบไปยัง Google Cloud Storage, BigQuery หรือ Google Cloud Pub/Sub ได้ เมื่อใช้ Cloud Pub/Sub คุณจะกำหนดเส้นทางไปยังแอปพลิเคชันอื่น ที่เก็บอื่น และไปยังบุคคลที่สามได้

  • หากต้องการจัดการบันทึกการตรวจสอบทั่วทั้งองค์กร คุณสามารถสร้าง ซิงก์รวม ที่สามารถกำหนดเส้นทางบันทึกจากโปรเจ็กต์ Firebase ใดๆ หรือทั้งหมดในองค์กรได้

  • หากบันทึกการตรวจสอบการเข้าถึงข้อมูลที่เปิดใช้งานกำลังผลักดันโปรเจ็กต์ Firebase ของคุณไปเกินการจัดสรรบันทึก คุณสามารถสร้างซิงก์ที่แยกบันทึกการตรวจสอบการเข้าถึงข้อมูลออกจากการบันทึกได้

สำหรับคำแนะนำเกี่ยวกับบันทึกการกำหนดเส้นทาง โปรดดู ที่กำหนดค่าซิงก์

ราคา

บันทึกการตรวจสอบกิจกรรมของผู้ดูแลระบบ และ บันทึกการตรวจสอบเหตุการณ์ของระบบ ไม่มีค่าใช้จ่าย

บันทึกการตรวจสอบการเข้าถึงข้อมูล และ บันทึกการตรวจสอบนโยบายถูกปฏิเสธ มีค่าใช้จ่าย

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับราคา Cloud Logging โปรดดู ราคาชุดปฏิบัติการของ Google Cloud: Cloud Logging