หน้านี้อธิบายบันทึกการตรวจสอบที่ 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, โฟลเดอร์ หรือองค์กร ดังนี้
ในคอนโซล Google Cloud ให้ไปที่หน้าการบันทึก > Logs Explorer
ในหน้าเครื่องมือสำรวจบันทึก ให้เลือกโปรเจ็กต์ โฟลเดอร์ หรือองค์กร Firebase ที่มีอยู่
ในแผงเครื่องมือสร้างคําค้นหา ให้ทําดังนี้
ในประเภททรัพยากร ให้เลือกทรัพยากร 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 เพื่อดูรายการในบันทึกการตรวจสอบ ให้ทําดังนี้
ไปที่ส่วนลองใช้ API นี้ในเอกสารประกอบสำหรับเมธอด
entries.list
ใส่ข้อมูลต่อไปนี้ในส่วนเนื้อความของคำขอของแบบฟอร์มลองใช้ API การคลิกแบบฟอร์มที่กรอกข้อมูลไว้ล่วงหน้านี้จะกรอกเนื้อหาคําขอโดยอัตโนมัติ แต่คุณต้องระบุ
PROJECT_ID
ที่ถูกต้องในแต่ละชื่อบันทึก{ "resourceNames": [ "projects/PROJECT_ID" ], "pageSize": 5, "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" }
คลิกดำเนินการ
ดูรายละเอียดเพิ่มเติมเกี่ยวกับการค้นหาได้ที่ภาษาในการค้นหาการบันทึก
ดูตัวอย่างรายการบันทึกการตรวจสอบและวิธีค้นหาข้อมูลที่สำคัญที่สุดได้ในตัวอย่างรายการบันทึกการตรวจสอบ
กําหนดเส้นทางบันทึกการตรวจสอบ
คุณสามารถกำหนดเส้นทางบันทึกการตรวจสอบไปยังปลายทางที่รองรับได้เช่นเดียวกับการกำหนดเส้นทางบันทึกประเภทอื่นๆ สาเหตุบางประการที่คุณอาจต้องกำหนดเส้นทางบันทึกการตรวจสอบมีดังนี้
หากต้องการเก็บบันทึกการตรวจสอบไว้เป็นเวลานานขึ้นหรือใช้ความสามารถในการค้นหาที่มีประสิทธิภาพมากขึ้น คุณสามารถส่งสำเนาบันทึกการตรวจสอบไปยัง Google Cloud Storage, BigQuery หรือ Google Cloud Pub/Sub เมื่อใช้ Cloud Pub/Sub คุณจะกำหนดเส้นทางไปยังแอปพลิเคชันอื่นๆ ที่เก็บข้อมูลอื่นๆ และบุคคลที่สามได้
หากต้องการจัดการบันทึกการตรวจสอบทั่วทั้งองค์กร คุณสามารถสร้างซิงค์แบบรวมซึ่งสามารถกําหนดเส้นทางบันทึกจากโปรเจ็กต์ Firebase ใดก็ได้หรือทุกโปรเจ็กต์ในองค์กร
- หากบันทึกการตรวจสอบการเข้าถึงข้อมูลที่เปิดใช้ดันโปรเจ็กต์ Firebase เกินการจัดสรรบันทึก คุณสามารถสร้างซิงค์ที่ยกเว้นบันทึกการตรวจสอบการเข้าถึงข้อมูลจากการบันทึกได้
โปรดดูวิธีการกำหนดเส้นทางบันทึกที่หัวข้อกำหนดข้อมูลลงในที่เก็บ
ราคา
บันทึกการตรวจสอบกิจกรรมของผู้ดูแลระบบและบันทึกการตรวจสอบเหตุการณ์ของระบบไม่มีค่าใช้จ่าย
บันทึกการตรวจสอบการเข้าถึงข้อมูลและบันทึกการตรวจสอบการปฏิเสธนโยบายจะมีค่าใช้จ่าย
ดูข้อมูลเพิ่มเติมเกี่ยวกับราคา Cloud Logging ได้ที่ราคาชุดเครื่องมือการดำเนินการของ Google Cloud: Cloud Logging