เอกสารนี้จะอธิบายการบันทึกการตรวจสอบสำหรับฐานข้อมูลเรียลไทม์ของ Firebase รวมถึงวิธีการต่างๆ สร้างบันทึกการตรวจสอบ รายละเอียดเกี่ยวกับบันทึกการตรวจสอบที่แต่ละวิธีสร้างขึ้น และ ว่าวิธีการใดจะไม่สร้างบันทึกการตรวจสอบ (หากมี) Google Cloud สร้าง บันทึกการตรวจสอบที่บันทึกกิจกรรมการดูแลระบบและสิทธิ์การเข้าถึงภายใน ทรัพยากร Google Cloud สำหรับข้อมูลเพิ่มเติม โปรดดู ภาพรวมบันทึกการตรวจสอบ Cloud
หมายเหตุ
ดูข้อมูลเพิ่มเติมเกี่ยวกับช่องใน protoPayload.metadata
สำหรับการดำเนินการ DATA_READ
และ DATA_WRITE
ได้ในเอกสารอ้างอิง
ชื่อบริการ
บันทึกการตรวจสอบของฐานข้อมูลเรียลไทม์ของ Firebase จะใช้ชื่อบริการ firebasedatabase.googleapis.com
วิธีการตามประเภทสิทธิ์
เมธอดที่ตรวจสอบ DATA_READ
, DATA_WRITE
และ
สิทธิ์ ADMIN_READ
รายการสร้างบันทึกที่จัดหมวดหมู่เป็น
บันทึกการตรวจสอบการเข้าถึงข้อมูล
วิธีการที่ตรวจสอบสิทธิ์ ADMIN_WRITE
จะสร้างบันทึก
จัดหมวดหมู่เป็น
บันทึกการตรวจสอบกิจกรรมของผู้ดูแลระบบ
ประเภทสิทธิ์ | เมธอด |
---|---|
ADMIN_READ |
google.firebase.database.v1beta.RealtimeDatabaseService.GetDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.ListDatabaseInstances |
ADMIN_WRITE |
google.firebase.database.v1beta.RealtimeDatabaseService.CreateDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.DeleteDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.DisableDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.ReenableDatabaseInstance google.firebase.database.v1beta.RealtimeDatabaseService.UndeleteDatabaseInstance |
DATA_READ |
google.firebase.database.v1.RealtimeDatabase.Connect google.firebase.database.v1.RealtimeDatabase.Disconnect google.firebase.database.v1.RealtimeDatabase.Listen google.firebase.database.v1.RealtimeDatabase.OnDisconnectCancel google.firebase.database.v1.RealtimeDatabase.Read google.firebase.database.v1.RealtimeDatabase.Unlisten |
DATA_WRITE |
google.firebase.database.v1.RealtimeDatabase.OnDisconnectPut google.firebase.database.v1.RealtimeDatabase.OnDisconnectUpdate google.firebase.database.v1.RealtimeDatabase.RunOnDisconnect google.firebase.database.v1.RealtimeDatabase.Update google.firebase.database.v1.RealtimeDatabase.Write |
บันทึกการตรวจสอบสำหรับอินเทอร์เฟซ API แต่ละรายการ
หากต้องการดูข้อมูลเกี่ยวกับวิธีการประเมินสิทธิ์และสิทธิ์ใดสำหรับแต่ละวิธี ดูเอกสารประกอบ Cloud Identity and Access Management สำหรับฐานข้อมูลเรียลไทม์ของ Firebase
google.firebase.database.v1.RealtimeDatabase
ส่วนต่อไปนี้มีรายละเอียดเกี่ยวกับบันทึกการตรวจสอบที่เกี่ยวข้องกับ
เมธอดของ google.firebase.database.v1.RealtimeDatabase
Connect
- วิธีการ:
google.firebase.database.v1.RealtimeDatabase.Connect
- ประเภทบันทึกการตรวจสอบ: การเข้าถึงข้อมูล
- สิทธิ์:
firebasedatabase.data.connect - DATA_READ
- เมธอดเป็นการดำเนินการที่ใช้เวลานานหรือสตรีม:
ฉบับที่
- กรองวิธีนี้:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Connect"
Disconnect
- วิธีการ:
google.firebase.database.v1.RealtimeDatabase.Disconnect
- ประเภทบันทึกการตรวจสอบ: การเข้าถึงข้อมูล
- สิทธิ์:
firebasedatabase.data.connect - DATA_READ
- เมธอดเป็นการดำเนินการที่ใช้เวลานานหรือสตรีม:
ฉบับที่
- กรองวิธีนี้:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Disconnect"
Listen
- วิธีการ:
google.firebase.database.v1.RealtimeDatabase.Listen
- ประเภทบันทึกการตรวจสอบ: การเข้าถึงข้อมูล
- สิทธิ์:
firebasedatabase.data.get - DATA_READ
- เมธอดเป็นการดำเนินการที่ใช้เวลานานหรือสตรีม:
ฉบับที่
- กรองวิธีนี้:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Listen"
OnDisconnectCancel
- วิธีการ:
google.firebase.database.v1.RealtimeDatabase.OnDisconnectCancel
- ประเภทบันทึกการตรวจสอบ: การเข้าถึงข้อมูล
- สิทธิ์:
firebasedatabase.data.cancel - DATA_READ
- เมธอดเป็นการดำเนินการที่ใช้เวลานานหรือสตรีม:
ฉบับที่
- กรองวิธีนี้:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.OnDisconnectCancel"
OnDisconnectPut
- วิธีการ:
google.firebase.database.v1.RealtimeDatabase.OnDisconnectPut
- ประเภทบันทึกการตรวจสอบ: การเข้าถึงข้อมูล
- สิทธิ์:
firebasedatabase.data.update - DATA_WRITE
- เมธอดเป็นการดำเนินการที่ใช้เวลานานหรือสตรีม:
ฉบับที่
- กรองวิธีนี้:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.OnDisconnectPut"
OnDisconnectUpdate
- วิธีการ:
google.firebase.database.v1.RealtimeDatabase.OnDisconnectUpdate
- ประเภทบันทึกการตรวจสอบ: การเข้าถึงข้อมูล
- สิทธิ์:
firebasedatabase.data.update - DATA_WRITE
- เมธอดเป็นการดำเนินการที่ใช้เวลานานหรือสตรีม:
ฉบับที่
- กรองวิธีนี้:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.OnDisconnectUpdate"
Read
- วิธีการ:
google.firebase.database.v1.RealtimeDatabase.Read
- ประเภทบันทึกการตรวจสอบ: การเข้าถึงข้อมูล
- สิทธิ์:
firebasedatabase.data.get - DATA_READ
- เมธอดเป็นการดำเนินการที่ใช้เวลานานหรือสตรีม:
ฉบับที่
- กรองวิธีนี้:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Read"
RunOnDisconnect
- วิธีการ:
google.firebase.database.v1.RealtimeDatabase.RunOnDisconnect
- ประเภทบันทึกการตรวจสอบ: การเข้าถึงข้อมูล
- สิทธิ์:
firebasedatabase.data.update - DATA_WRITE
- เมธอดเป็นการดำเนินการที่ใช้เวลานานหรือสตรีม:
ฉบับที่
- กรองวิธีนี้:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.RunOnDisconnect"
Unlisten
- วิธีการ:
google.firebase.database.v1.RealtimeDatabase.Unlisten
- ประเภทบันทึกการตรวจสอบ: การเข้าถึงข้อมูล
- สิทธิ์:
firebasedatabase.data.cancel - DATA_READ
- เมธอดเป็นการดำเนินการที่ใช้เวลานานหรือสตรีม:
ฉบับที่
- กรองวิธีนี้:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Unlisten"
Update
- วิธีการ:
google.firebase.database.v1.RealtimeDatabase.Update
- ประเภทบันทึกการตรวจสอบ: การเข้าถึงข้อมูล
- สิทธิ์:
firebasedatabase.data.get - DATA_READ
firebasedatabase.data.get - DATA_WRITE
firebasedatabase.data.update - DATA_WRITE
- เมธอดเป็นการดำเนินการที่ใช้เวลานานหรือสตรีม:
ฉบับที่
- กรองวิธีนี้:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Update"
Write
- วิธีการ:
google.firebase.database.v1.RealtimeDatabase.Write
- ประเภทบันทึกการตรวจสอบ: การเข้าถึงข้อมูล
- สิทธิ์:
firebasedatabase.data.get - DATA_READ
firebasedatabase.data.get - DATA_WRITE
firebasedatabase.data.update - DATA_WRITE
- เมธอดเป็นการดำเนินการที่ใช้เวลานานหรือสตรีม:
ฉบับที่
- กรองวิธีนี้:
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Write"
google.firebase.database.v1beta.RealtimeDatabaseService
ส่วนต่อไปนี้มีรายละเอียดเกี่ยวกับบันทึกการตรวจสอบที่เกี่ยวข้องกับ
เมธอดของ google.firebase.database.v1beta.RealtimeDatabaseService
CreateDatabaseInstance
- วิธีการ:
google.firebase.database.v1beta.RealtimeDatabaseService.CreateDatabaseInstance
- ประเภทบันทึกการตรวจสอบ: กิจกรรมของผู้ดูแลระบบ
- สิทธิ์:
firebasedatabase.instances.create - ADMIN_WRITE
- เมธอดเป็นการดำเนินการที่ใช้เวลานานหรือสตรีม:
ฉบับที่
- กรองวิธีนี้:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.CreateDatabaseInstance"
DeleteDatabaseInstance
- วิธีการ:
google.firebase.database.v1beta.RealtimeDatabaseService.DeleteDatabaseInstance
- ประเภทบันทึกการตรวจสอบ: กิจกรรมของผู้ดูแลระบบ
- สิทธิ์:
firebasedatabase.instances.delete - ADMIN_WRITE
- เมธอดเป็นการดำเนินการที่ใช้เวลานานหรือสตรีม:
ฉบับที่
- กรองวิธีนี้:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.DeleteDatabaseInstance"
DisableDatabaseInstance
- วิธีการ:
google.firebase.database.v1beta.RealtimeDatabaseService.DisableDatabaseInstance
- ประเภทบันทึกการตรวจสอบ: กิจกรรมของผู้ดูแลระบบ
- สิทธิ์:
firebasedatabase.instances.disable - ADMIN_WRITE
- เมธอดเป็นการดำเนินการที่ใช้เวลานานหรือสตรีม:
ฉบับที่
- กรองวิธีนี้:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.DisableDatabaseInstance"
GetDatabaseInstance
- วิธีการ:
google.firebase.database.v1beta.RealtimeDatabaseService.GetDatabaseInstance
- ประเภทบันทึกการตรวจสอบ: การเข้าถึงข้อมูล
- สิทธิ์:
firebasedatabase.instances.get - ADMIN_READ
- เมธอดเป็นการดำเนินการที่ใช้เวลานานหรือสตรีม:
ฉบับที่
- กรองวิธีนี้:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.GetDatabaseInstance"
ListDatabaseInstances
- วิธีการ:
google.firebase.database.v1beta.RealtimeDatabaseService.ListDatabaseInstances
- ประเภทบันทึกการตรวจสอบ: การเข้าถึงข้อมูล
- สิทธิ์:
firebasedatabase.instances.list - ADMIN_READ
- เมธอดเป็นการดำเนินการที่ใช้เวลานานหรือสตรีม:
ฉบับที่
- กรองวิธีนี้:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.ListDatabaseInstances"
ReenableDatabaseInstance
- วิธีการ:
google.firebase.database.v1beta.RealtimeDatabaseService.ReenableDatabaseInstance
- ประเภทบันทึกการตรวจสอบ: กิจกรรมของผู้ดูแลระบบ
- สิทธิ์:
firebasedatabase.instances.reenable - ADMIN_WRITE
- เมธอดเป็นการดำเนินการที่ใช้เวลานานหรือสตรีม:
ฉบับที่
- กรองวิธีนี้:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.ReenableDatabaseInstance"
UndeleteDatabaseInstance
- วิธีการ:
google.firebase.database.v1beta.RealtimeDatabaseService.UndeleteDatabaseInstance
- ประเภทบันทึกการตรวจสอบ: กิจกรรมของผู้ดูแลระบบ
- สิทธิ์:
firebasedatabase.instances.undelete - ADMIN_WRITE
- เมธอดเป็นการดำเนินการที่ใช้เวลานานหรือสตรีม:
ฉบับที่
- กรองวิธีนี้:
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.UndeleteDatabaseInstance"
ข้อมูลการตรวจสอบสิทธิ์การตรวจสอบ
รายการบันทึกการตรวจสอบมีข้อมูล เกี่ยวกับข้อมูลระบุตัวตนที่ทำการดำเนินการที่บันทึกไว้ วิธีระบุคำขอ Caller โปรดดูช่องต่อไปนี้ภายในออบเจ็กต์ AuditLog
สร้างการเชื่อมต่อแบบเรียลไทม์ การดำเนินการของ
Connect
Realtime Database คือ ไม่บันทึกข้อมูลการตรวจสอบสิทธิ์เนื่องจาก Realtime Database จะตรวจสอบสิทธิ์หลังจาก สร้างการเชื่อมต่อแล้ว ดังนั้นConnect
จึงไม่มีข้อมูลการตรวจสอบสิทธิ์ ออบเจ็กต์AuthenticationInfo
มีตัวยึดตำแหน่งprincipalEmail
ของaudit-pending-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
การตรวจสอบสิทธิ์ของ Google การดำเนินการของ Realtime Database ที่ใช้ Google แบบมาตรฐาน การตรวจสอบสิทธิ์ เช่น การเข้าชมจาก Firebase Admin SDK หรือคำขอ REST ตรวจสอบสิทธิ์ด้วยโทเค็น OAuth มาตรฐานแล้ว มีออบเจ็กต์
AuthenticationInfo
ที่มีข้อมูลเข้าสู่ระบบจริง อีเมลการตรวจสอบสิทธิ์ของ Firebase การดำเนินการของ Realtime Database ที่ใช้การตรวจสอบสิทธิ์ Firebase ออบเจ็กต์
AuthenticationInfo
ที่มีค่าprincipalEmail
ของaudit-third-party-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
กระบวนการเดียวกันคือในกรณีที่คุณใช้โซลูชันการตรวจสอบสิทธิ์ของคุณเองด้วยการสร้าง JWT ที่กำหนดเอง- หากใช้ JSON Web Token (JWT) สำหรับการตรวจสอบสิทธิ์ของบุคคลที่สาม
ช่อง
thirdPartyPrincipal
มีส่วนหัวและเพย์โหลดของโทเค็น สำหรับ เช่น บันทึกการตรวจสอบสำหรับคำขอที่ตรวจสอบสิทธิ์ด้วยการตรวจสอบสิทธิ์ Firebase รวมโทเค็นการตรวจสอบสิทธิ์ Firebase ของคำขอนั้นด้วย
- หากใช้ JSON Web Token (JWT) สำหรับการตรวจสอบสิทธิ์ของบุคคลที่สาม
ช่อง
ไม่มีการตรวจสอบสิทธิ์ การดำเนินการของ Realtime Database ที่ไม่ได้ใช้ การตรวจสอบสิทธิ์มีออบเจ็กต์
AuthenticationInfo
ที่มี ค่าprincipalEmail
ของaudit-no-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
อินสแตนซ์ Realtime Database ที่มีกฎความปลอดภัยแบบเปิดอาจอนุมัติคำขอดังกล่าว พ ขอแนะนำให้ผู้ใช้ทุกคนรักษาความปลอดภัยของฐานข้อมูลอย่างเหมาะสมโทเค็นข้อมูลลับแบบเดิม การดำเนินการของ Realtime Database ที่ใช้โทเค็นเดิม มีออบเจ็กต์
AuthenticationInfo
ที่มีตัวยึดตำแหน่งprincipalEmail
จากaudit-secret-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.com
สำหรับ JWT ที่ลงนามด้วยข้อมูลลับthirdPartyPrincipal
จะมีส่วนหัว JWT และ เพย์โหลด
ตรวจสอบการประเมินกฎการรักษาความปลอดภัยของ Firebase
คุณใช้บันทึก Cloud Audit เพื่อระบุคำขอที่อาจ ได้รับผลกระทบจากการเปลี่ยนแปลงกฎ
ในออบเจ็กต์ AuthorizationInfo อาจให้ authorization.permission
เป็นอย่างใดอย่างหนึ่งต่อไปนี้
firebasedatabase.data.get
: ได้รับสิทธิ์อ่านตามเส้นทางที่ระบุไว้ในresource
.firebasedatabase.data.update
: ให้สิทธิ์เขียนตามเส้นทางที่ระบุในresource
.firebasedatabase.data.connect
: ตัวยึดตำแหน่งสำหรับConnect
และDisconnect
ไม่ต้องได้รับสิทธิ์เพื่อเชื่อมต่อกับอินสแตนซ์ Realtime Databasefirebasedatabase.data.cancel
: ใช้สำหรับUnlisten
และOnDisconnectCancel
ไม่จำเป็นต้องเพิกถอนหรือยกเลิกการดำเนินการที่ได้รับอนุญาตก่อนหน้านี้ การกันวงเงิน
เชื่อมโยงบันทึก Cloud Audit กับผลลัพธ์เครื่องมือสร้างโปรไฟล์ Realtime Database
คุณสามารถวิเคราะห์ประสิทธิภาพในเชิงลึกใน Realtime Database ได้โดยใช้ เครื่องมือสร้างโปรไฟล์ Realtime Database ร่วมกับ การบันทึกการตรวจสอบของ Realtime Database เครื่องมือแต่ละอย่างมีจุดแข็งของตัวเอง
Cloud Audit Logging | เครื่องมือสร้างโปรไฟล์ Realtime Database |
---|---|
|
|
เนื้อหาบันทึกการตรวจสอบจะสอดคล้องกับเมตริกเครื่องมือสร้างโปรไฟล์ดังที่แสดงด้านล่าง
ชื่อการดำเนินการบันทึกการตรวจสอบ | ค่าพิเศษในRealtimeDatabaseAuditMetadata |
ชื่อการดำเนินการของเครื่องมือสร้างโปรไฟล์ |
---|---|---|
เชื่อมต่อ | RequestType คือ REALTIME |
การเชื่อมต่อพร้อมกัน |
ยกเลิกการเชื่อมต่อ | RequestType คือ REALTIME |
ยกเลิกการเชื่อมต่อพร้อมกัน |
อ่าน | RequestType คือ REALTIME |
อ่านแบบเรียลไทม์ |
อ่าน | RequestType คือ REST |
อ่านค้างไว้ |
เขียน | RequestType คือ REALTIME |
เขียนแบบเรียลไทม์ |
เขียน | RequestType คือ REST |
เขียนส่วนที่เหลือ |
อัปเดต | RequestType ถือว่า REALTIME
ลองดู PreconditionType |
การอัปเดตแบบเรียลไทม์ ธุรกรรมแบบเรียลไทม์ |
อัปเดต | RequestType ถือว่า REST
ลองดู PreconditionType |
การอัปเดตส่วนที่เหลือ ธุรกรรมส่วนที่เหลือ |
Listener | RequestType คือ REALTIME |
ผู้ฟัง |
เลิกฟัง Listener | RequestType คือ REALTIME |
ผู้ฟังเลิกฟัง |
เมื่อตัดการเชื่อมต่อใส่ | RequestType คือ REALTIME |
เมื่อยกเลิกการเชื่อมต่อ |
เมื่อยกเลิกการเชื่อมต่อการอัปเดต | RequestType คือ REALTIME |
การอัปเดตเมื่อยกเลิกการเชื่อมต่อ |
เมื่อยกเลิกการเชื่อมต่อยกเลิก | RequestType คือ REALTIME |
เมื่อยกเลิกการเชื่อมต่อ-ยกเลิก |
ยกเลิกการเชื่อมต่อ RunOn | RequestType คือ REALTIME |
เรียกใช้เมื่อยกเลิกการเชื่อมต่อ |