การบันทึกการตรวจสอบสําหรับ Firebase App Hosting

หน้านี้อธิบายบันทึกการตรวจสอบที่ Firebase สร้างขึ้นซึ่งเป็นส่วนหนึ่งของบันทึกการตรวจสอบ Cloud

ภาพรวม

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

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

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

บันทึกการตรวจสอบที่ใช้ได้

บันทึกการตรวจสอบประเภทต่อไปนี้มีให้บริการสำหรับโฮสติ้งแอป Firebase

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

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

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

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

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

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

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

การดำเนินการที่ผ่านการตรวจสอบ

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

ประเภทสิทธิ์ เมธอด
ADMIN_READ google.firebase.apphosting.v1alpha.AppHosting.GetBackend
google.firebase.apphosting.v1alpha.AppHosting.GetBuild
google.firebase.apphosting.v1alpha.AppHosting.GetRollout
google.firebase.apphosting.v1alpha.AppHosting.GetTraffic
google.firebase.apphosting.v1alpha.AppHosting.ListBackends
google.firebase.apphosting.v1alpha.AppHosting.ListBuilds
google.firebase.apphosting.v1alpha.AppHosting.ListDomains
google.firebase.apphosting.v1alpha.AppHosting.ListRollouts
google.firebase.apphosting.v1beta.AppHosting.GetBackend
google.firebase.apphosting.v1beta.AppHosting.GetBuild
google.firebase.apphosting.v1beta.AppHosting.GetDomain
google.firebase.apphosting.v1beta.AppHosting.GetTraffic
google.firebase.apphosting.v1beta.AppHosting.ListBackends
google.firebase.apphosting.v1beta.AppHosting.ListBuilds
google.firebase.apphosting.v1beta.AppHosting.ListDomains
google.firebase.apphosting.v1beta.AppHosting.ListRollouts
ADMIN_WRITE google.firebase.apphosting.v1alpha.AppHosting.CreateBackend
google.firebase.apphosting.v1alpha.AppHosting.CreateBuild
google.firebase.apphosting.v1alpha.AppHosting.CreateDomain
google.firebase.apphosting.v1alpha.AppHosting.CreateRollout
google.firebase.apphosting.v1alpha.AppHosting.DeleteBackend
google.firebase.apphosting.v1alpha.AppHosting.DeleteBuild
google.firebase.apphosting.v1alpha.AppHosting.DeleteDomain
google.firebase.apphosting.v1alpha.AppHosting.UpdateBuild
google.firebase.apphosting.v1alpha.AppHosting.UpdateTraffic
google.firebase.apphosting.v1beta.AppHosting.CreateBackend
google.firebase.apphosting.v1beta.AppHosting.CreateBuild
google.firebase.apphosting.v1beta.AppHosting.CreateDomain
google.firebase.apphosting.v1beta.AppHosting.CreateRollout
google.firebase.apphosting.v1beta.AppHosting.DeleteBackend
google.firebase.apphosting.v1beta.AppHosting.DeleteBuild
google.firebase.apphosting.v1beta.AppHosting.DeleteDomain
google.firebase.apphosting.v1beta.AppHosting.UpdateBackend
google.firebase.apphosting.v1beta.AppHosting.UpdateDomain
google.firebase.apphosting.v1beta.AppHosting.UpdateTraffic

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

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

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

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

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

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

ชื่อบันทึก

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

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

ชื่อบริการ

บันทึกการตรวจสอบโฮสติ้งแอป Firebase ใช้ชื่อบริการ firebaseapphosting.googleapis.com

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ดูบันทึก

หากต้องการค้นหาและดูบันทึกการตรวจสอบ คุณจะต้องทราบตัวระบุของโปรเจ็กต์ โฟลเดอร์ หรือองค์กร 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

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

คอนโซล

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

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

    ไปที่หน้า Logs Explorer

  2. ในหน้าเครื่องมือสำรวจบันทึก ให้เลือกโปรเจ็กต์ โฟลเดอร์ หรือองค์กร 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 ได้ที่หัวข้ออ่านรายการบันทึก

API

เมื่อสร้างการค้นหา ให้แทนที่ตัวแปรด้วยค่าที่ถูกต้อง แทนที่ชื่อหรือตัวระบุบันทึกการตรวจสอบระดับโปรเจ็กต์ ระดับโฟลเดอร์ หรือระดับองค์กรที่เหมาะสมตามที่ระบุไว้ในชื่อบันทึกการตรวจสอบ ตัวอย่างเช่น หากการค้นหามี 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