Ghi nhật ký kiểm tra cho tính năng Kiểm tra ứng dụng Firebase

Trang này mô tả nhật ký kiểm tra do Firebase tạo trong Cloud Audit Logs.

Tổng quan

Các dịch vụ Firebase ghi nhật ký kiểm tra để giúp bạn trả lời các câu hỏi "Ai đã làm gì, ở đâu và khi nào?". Đây là Cloud Audit Logs, được cung cấp trong dự án Google Cloud kết nối với dự án Firebase của bạn.

Mỗi dự án Firebase chỉ chứa nhật ký kiểm tra cho các tài nguyên nằm trực tiếp trong dự án đó.

Để xem thông tin tổng quan chung về Cloud Audit Logs, hãy xem bài viết Tổng quan về Cloud Audit Logs. Để hiểu rõ hơn về định dạng nhật ký kiểm tra, hãy xem bài viết Tìm hiểu về nhật ký kiểm tra.

Nhật ký kiểm tra hiện có

Các loại nhật ký kiểm tra sau đây hiện có cho tính năng Kiểm tra ứng dụng Firebase:

  • Nhật ký kiểm tra Hoạt động của quản trị viên

    Bao gồm các thao tác "ghi của quản trị viên" để ghi siêu dữ liệu hoặc thông tin cấu hình thông tin.

    Bạn không thể tắt nhật ký kiểm tra Hoạt động của quản trị viên.

  • Nhật ký kiểm tra Quyền truy cập dữ liệu

    Bao gồm các thao tác "đọc của quản trị viên" để đọc siêu dữ liệu hoặc thông tin cấu hình thông tin. Cũng bao gồm các thao tác "đọc dữ liệu" và "ghi dữ liệu" để đọc hoặc ghi dữ liệu do người dùng cung cấp.

    Để nhận nhật ký kiểm tra Quyền truy cập dữ liệu, bạn phải bật nhật ký này một cách rõ ràng.

Để biết nội dung mô tả đầy đủ hơn về các loại nhật ký kiểm tra, hãy xem bài viết Các loại nhật ký kiểm tra.

Các thao tác được kiểm tra

Sau đây là tóm tắt về các thao tác API tương ứng với từng loại nhật ký kiểm tra trong tính năng Kiểm tra ứng dụng Firebase:

Loại quyền Phương thức
ADMIN_READ google.firebase.appcheck.v1.ConfigService.BatchGetAppAttestConfigs
google.firebase.appcheck.v1.ConfigService.BatchGetDeviceCheckConfigs
google.firebase.appcheck.v1.ConfigService.BatchGetPlayIntegrityConfigs
google.firebase.appcheck.v1.ConfigService.BatchGetRecaptchaEnterpriseConfigs
google.firebase.appcheck.v1.ConfigService.BatchGetRecaptchaV3Configs
google.firebase.appcheck.v1.ConfigService.BatchGetSafetyNetConfigs
google.firebase.appcheck.v1.ConfigService.GetAppAttestConfig
google.firebase.appcheck.v1.ConfigService.GetDebugToken
google.firebase.appcheck.v1.ConfigService.GetDeviceCheckConfig
google.firebase.appcheck.v1.ConfigService.GetPlayIntegrityConfig
google.firebase.appcheck.v1.ConfigService.GetRecaptchaEnterpriseConfig
google.firebase.appcheck.v1.ConfigService.GetRecaptchaV3Config
google.firebase.appcheck.v1.ConfigService.GetSafetyNetConfig
google.firebase.appcheck.v1.ConfigService.GetService
google.firebase.appcheck.v1.ConfigService.ListDebugTokens
google.firebase.appcheck.v1.ConfigService.ListServices
google.firebase.appcheck.v1beta.ConfigService.BatchGetAppAttestConfigs
google.firebase.appcheck.v1beta.ConfigService.BatchGetDeviceCheckConfigs
google.firebase.appcheck.v1beta.ConfigService.BatchGetPlayIntegrityConfigs
google.firebase.appcheck.v1beta.ConfigService.BatchGetRecaptchaConfigs
google.firebase.appcheck.v1beta.ConfigService.BatchGetRecaptchaEnterpriseConfigs
google.firebase.appcheck.v1beta.ConfigService.BatchGetRecaptchaV3Configs
google.firebase.appcheck.v1beta.ConfigService.BatchGetSafetyNetConfigs
google.firebase.appcheck.v1beta.ConfigService.GetAppAttestConfig
google.firebase.appcheck.v1beta.ConfigService.GetDebugToken
google.firebase.appcheck.v1beta.ConfigService.GetDeviceCheckConfig
google.firebase.appcheck.v1beta.ConfigService.GetPlayIntegrityConfig
google.firebase.appcheck.v1beta.ConfigService.GetRecaptchaConfig
google.firebase.appcheck.v1beta.ConfigService.GetRecaptchaEnterpriseConfig
google.firebase.appcheck.v1beta.ConfigService.GetRecaptchaV3Config
google.firebase.appcheck.v1beta.ConfigService.GetResourcePolicy
google.firebase.appcheck.v1beta.ConfigService.GetSafetyNetConfig
google.firebase.appcheck.v1beta.ConfigService.GetService
google.firebase.appcheck.v1beta.ConfigService.ListDebugTokens
google.firebase.appcheck.v1beta.ConfigService.ListResourcePolicies
google.firebase.appcheck.v1beta.ConfigService.ListServices
ADMIN_WRITE google.firebase.appcheck.v1.ConfigService.BatchUpdateServices
google.firebase.appcheck.v1.ConfigService.CreateDebugToken
google.firebase.appcheck.v1.ConfigService.DeleteDebugToken
google.firebase.appcheck.v1.ConfigService.UpdateAppAttestConfig
google.firebase.appcheck.v1.ConfigService.UpdateDebugToken
google.firebase.appcheck.v1.ConfigService.UpdateDeviceCheckConfig
google.firebase.appcheck.v1.ConfigService.UpdatePlayIntegrityConfig
google.firebase.appcheck.v1.ConfigService.UpdateRecaptchaEnterpriseConfig
google.firebase.appcheck.v1.ConfigService.UpdateRecaptchaV3Config
google.firebase.appcheck.v1.ConfigService.UpdateSafetyNetConfig
google.firebase.appcheck.v1.ConfigService.UpdateService
google.firebase.appcheck.v1beta.ConfigService.BatchUpdateResourcePolicies
google.firebase.appcheck.v1beta.ConfigService.BatchUpdateServices
google.firebase.appcheck.v1beta.ConfigService.CreateDebugToken
google.firebase.appcheck.v1beta.ConfigService.CreateResourcePolicy
google.firebase.appcheck.v1beta.ConfigService.DeleteDebugToken
google.firebase.appcheck.v1beta.ConfigService.DeleteResourcePolicy
google.firebase.appcheck.v1beta.ConfigService.UpdateAppAttestConfig
google.firebase.appcheck.v1beta.ConfigService.UpdateDebugToken
google.firebase.appcheck.v1beta.ConfigService.UpdateDeviceCheckConfig
google.firebase.appcheck.v1beta.ConfigService.UpdatePlayIntegrityConfig
google.firebase.appcheck.v1beta.ConfigService.UpdateRecaptchaConfig
google.firebase.appcheck.v1beta.ConfigService.UpdateRecaptchaEnterpriseConfig
google.firebase.appcheck.v1beta.ConfigService.UpdateRecaptchaV3Config
google.firebase.appcheck.v1beta.ConfigService.UpdateResourcePolicy
google.firebase.appcheck.v1beta.ConfigService.UpdateSafetyNetConfig
google.firebase.appcheck.v1beta.ConfigService.UpdateService
google.firebase.appcheck.v1beta.TokenVerificationService.VerifyAppCheckToken

Định dạng nhật ký kiểm tra

Các mục trong nhật ký kiểm tra bao gồm các đối tượng sau:

  • Chính mục nhập nhật ký, là một đối tượng thuộc loại LogEntry. Các trường hữu ích bao gồm:

    • logName chứa mã nhận dạng tài nguyên và loại nhật ký kiểm tra.
    • resource chứa mục tiêu của thao tác được kiểm tra.
    • timestamp chứa thời gian của thao tác được kiểm tra.
    • protoPayload chứa thông tin được kiểm tra.
  • Dữ liệu ghi nhật ký kiểm tra, là một đối tượng AuditLog được lưu giữ trong trường protoPayload của mục nhập nhật ký.

  • Thông tin kiểm tra không bắt buộc dành riêng cho dịch vụ, là một đối tượng dành riêng cho dịch vụ. Đối với các bản tích hợp cũ, đối tượng này được lưu giữ trong trường serviceData của đối tượng AuditLog; các bản tích hợp mới hơn sử dụng trường metadata.

Để biết các trường khác trong các đối tượng này và cách diễn giải các trường đó, hãy xem bài viết Tìm hiểu về nhật ký kiểm tra.

Tên nhật ký

Tên tài nguyên Cloud Audit Logs cho biết dự án Firebase hoặc thực thể khác Google Cloud sở hữu nhật ký kiểm tra, cũng như nhật nhật ký đó có chứa Hoạt động của quản trị viên, Quyền truy cập dữ liệu, Chính sách bị từ chối hay Sự kiện hệ thống dữ liệu ghi nhật ký kiểm tra hay không. Ví dụ: sau đây cho thấy tên nhật ký cho nhật ký kiểm tra Hoạt động của quản trị viên ở cấp dự án và nhật ký kiểm tra Quyền truy cập dữ liệu của một tổ chức. Các biến biểu thị mã nhận dạng dự án Firebase và tổ chức.

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

Tên dịch vụ

Nhật ký kiểm tra của tính năng Kiểm tra ứng dụng Firebase sử dụng tên dịch vụ firebaseappcheck.googleapis.com.

Để xem danh sách đầy đủ tất cả tên dịch vụ API Cloud Logging và loại tài nguyên được theo dõi tương ứng, hãy xem bài viết Liên kết dịch vụ với tài nguyên.

Loại tài nguyên

Nhật ký kiểm tra của tính năng Kiểm tra ứng dụng Firebase sử dụng loại tài nguyên audited_resource cho tất cả nhật ký kiểm tra.

Để xem danh sách tất cả các loại tài nguyên được theo dõi của Cloud Logging và thông tin mô tả, hãy xem bài viết Các loại tài nguyên được theo dõi.

Bật tính năng ghi nhật ký kiểm tra

Nhật ký kiểm tra Hoạt động của quản trị viên luôn được bật; bạn không thể tắt nhật ký này.

Nhật ký kiểm tra Quyền truy cập dữ liệu bị tắt theo mặc định và không được ghi trừ phi bạn bật nhật ký này một cách rõ ràng (ngoại lệ là nhật ký kiểm tra Quyền truy cập dữ liệu cho BigQuery, không thể tắt nhật ký này).

Để biết hướng dẫn về cách bật một số hoặc tất cả nhật ký kiểm tra Quyền truy cập dữ liệu, hãy xem bài viết Định cấu hình nhật ký Quyền truy cập dữ liệu.

Quyền và vai trò

Quyền và vai trò trong Cloud IAM xác định khả năng truy cập vào dữ liệu nhật ký kiểm tra trong tài nguyên Google Cloud.

Khi quyết định quyền và vai trò dành riêng cho Nhật ký nào áp dụng cho trường hợp sử dụng của bạn, hãy cân nhắc những điều sau:

  • Vai trò Người xem nhật ký (roles/logging.viewer) cho phép bạn chỉ có quyền đọc nhật ký kiểm tra Hoạt động của quản trị viên, Chính sách bị từ chối và Sự kiện hệ thống. Nếu chỉ có vai trò này, bạn không thể xem nhật ký kiểm tra Quyền truy cập dữ liệu trong bộ chứa _Default.

  • Vai trò Người xem nhật ký riêng tư(roles/logging.privateLogViewer) bao gồm các quyền có trong roles/logging.viewer, cộng với khả năng đọc nhật ký kiểm tra Quyền truy cập dữ liệu trong bộ chứa _Default.

    Xin lưu ý rằng nếu các nhật ký riêng tư này được lưu trữ trong các bộ chứa do người dùng xác định, thì bất kỳ người dùng nào có quyền đọc nhật ký trong các bộ chứa đó đều có thể đọc nhật ký riêng tư. Để biết thêm thông tin về bộ chứa nhật ký, hãy xem bài viết Tổng quan về việc định tuyến và lưu trữ.

Để biết thêm thông tin về các quyền và vai trò trong Cloud IAM áp dụng cho dữ liệu nhật ký kiểm tra, hãy xem bài viết Kiểm soát quyền truy cập.

Xem nhật ký

Để tìm và xem nhật ký kiểm tra, bạn cần biết mã nhận dạng của dự án, thư mục hoặc tổ chức Firebase mà bạn muốn xem thông tin ghi nhật ký kiểm tra. Bạn có thể chỉ định thêm các trường được lập chỉ mục LogEntry khác, chẳng hạn như resource.type; để biết chi tiết, hãy xem bài viết Nhanh chóng tìm mục nhật ký.

Sau đây là tên nhật ký kiểm tra; chúng bao gồm các biến cho mã nhận dạng của dự án Firebase, thư mục hoặc tổ chức:

   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

Bạn có thể xem nhật ký kiểm tra trong Cloud Logging bằng bảng điều khiển Cloud, công cụ dòng lệnh gcloud hoặc API Logging.

Bảng điều khiển

Bạn có thể sử dụng Trình khám phá nhật ký trong bảng điều khiển Google Cloud để truy xuất các mục trong nhật ký kiểm tra cho dự án, thư mục hoặc tổ chức Firebase của mình:

  1. Trong bảng điều khiển Cloud, hãy chuyển đến trang Logging > Logs Explorer (Ghi nhật ký > Trình khám phá nhật ký).

    Chuyển đến trang Trình khám phá nhật ký

  2. Trên trang Logs Explorer (Trình khám phá nhật ký), hãy chọn một dự án Firebase, thư mục hoặc tổ chức hiện có.

  3. Trong ngăn Query builder (Trình tạo truy vấn), hãy làm như sau:

    • Trong Resource type (Loại tài nguyên), hãy chọn tài nguyên Google Cloud mà bạn muốn xem nhật ký kiểm tra.

    • Trong Log name (Tên nhật ký), hãy chọn loại nhật ký kiểm tra mà bạn muốn xem:

      • Đối với nhật ký kiểm tra Hoạt động của quản trị viên, hãy chọn activity (hoạt động).
      • Đối với nhật ký kiểm tra Quyền truy cập dữ liệu, hãy chọn data_access (quyền truy cập dữ liệu).
      • Đối với nhật ký kiểm tra Sự kiện hệ thống, hãy chọn system_event (sự kiện hệ thống).
      • Đối với nhật ký kiểm tra Chính sách bị từ chối, hãy chọn policy (chính sách).

    Nếu bạn không thấy các lựa chọn này, thì không có nhật ký kiểm tra nào thuộc loại đó trong dự án Firebase, thư mục hoặc tổ chức.

    Để biết thêm thông tin chi tiết về cách truy vấn bằng Trình khám phá nhật ký, hãy xem bài viết Tạo truy vấn nhật ký.

gcloud

Công cụ dòng lệnh gcloud cung cấp giao diện dòng lệnh cho API Cloud Logging. Hãy cung cấp PROJECT_ID, FOLDER_ID hoặc ORGANIZATION_ID hợp lệ trong mỗi tên nhật ký.

Để đọc các mục trong nhật ký kiểm tra ở cấp dự án Firebase, hãy chạy lệnh sau:

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

Để đọc các mục trong nhật ký kiểm tra ở cấp thư mục, hãy chạy lệnh sau:

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

Để đọc các mục trong nhật ký kiểm tra ở cấp tổ chức, hãy chạy lệnh sau:

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

Để biết thêm thông tin về cách sử dụng công cụ gcloud, hãy xem bài viết Đọc các mục nhật ký.

API

Khi tạo truy vấn, hãy thay thế các biến bằng các giá trị hợp lệ, thay thế tên hoặc mã nhận dạng nhật ký kiểm tra thích hợp ở cấp dự án, cấp thư mục hoặc cấp tổ chức như trong tên nhật ký kiểm tra. Ví dụ: nếu truy vấn của bạn bao gồm PROJECT_ID, thì mã nhận dạng dự án mà bạn cung cấp phải tham chiếu đến dự án Firebase hiện được chọn.

Để sử dụng API Logging nhằm xem các mục trong nhật ký kiểm tra, hãy làm như sau:

  1. Chuyển đến phần Try this API trong tài liệu về phương thức entries.list.

  2. Đặt nội dung sau vào phần Request body (Nội dung yêu cầu) của biểu mẫu Try this API (Dùng thử API này). Khi nhấp vào biểu mẫu được điền sẵn này, hệ thống sẽ tự động điền nội dung yêu cầu, nhưng bạn cần cung cấp PROJECT_ID hợp lệ trong mỗi tên nhật ký.

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
  3. Nhấp vào Execute (Thực thi).

Để biết thêm thông tin chi tiết về cách truy vấn, hãy xem bài viết Ngôn ngữ truy vấn nhật ký.

Để xem ví dụ về một mục nhập nhật ký kiểm tra và cách tìm thông tin quan trọng nhất trong đó, hãy xem bài viết Ví dụ về mục nhập nhật ký kiểm tra.

Định tuyến nhật ký kiểm tra

Bạn có thể định tuyến nhật ký kiểm tra đến các đích đến được hỗ trợ theo cách tương tự như cách bạn có thể định tuyến các loại nhật ký khác. Dưới đây là một số lý do khiến bạn muốn định tuyến nhật ký kiểm tra:

  • Để lưu giữ nhật ký kiểm tra trong một khoảng thời gian dài hơn hoặc sử dụng các chức năng tìm kiếm mạnh mẽ hơn, bạn có thể định tuyến bản sao nhật ký kiểm tra đến Google Cloud Storage, BigQuery hoặc Google Cloud Pub/Sub. Khi sử dụng Cloud Pub/Sub, bạn có thể định tuyến đến các ứng dụng khác, kho lưu trữ khác và đến bên thứ ba.

  • Để quản lý nhật ký kiểm tra trên toàn bộ tổ chức, bạn có thể tạo các đích tổng hợp có thể định tuyến nhật ký từ bất kỳ hoặc tất cả dự án Firebase trong tổ chức.

  • Nếu nhật ký kiểm tra Quyền truy cập dữ liệu đã bật đang đẩy các dự án Firebase của bạn vượt quá hạn mức nhật ký, bạn có thể tạo các đích loại trừ nhật ký kiểm tra Quyền truy cập dữ liệu khỏi Logging.

Để biết hướng dẫn về cách định tuyến nhật ký, hãy xem bài viết Định cấu hình đích.

Giá

Nhật ký kiểm tra Hoạt động của quản trị viênnhật ký kiểm tra Sự kiện hệ thống không mất phí.

Nhật ký kiểm tra Quyền truy cập dữ liệunhật ký kiểm tra Chính sách bị từ chối có tính phí.

Để biết thêm thông tin về giá của Cloud Logging, hãy xem bài viết Giá của bộ hoạt động của Google Cloud: Cloud Logging.