Ghi nhật ký kiểm tra cho tính năng Lưu trữ ứ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ụ của 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à Nhật ký kiểm tra trên đám mây, được cung cấp trong dự án Google Cloud được 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 những tài nguyên nằm ngay trong dự án.

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

Các nhật ký kiểm tra hiện có

Firebase App Hosting cung cấp các loại nhật ký kiểm tra sau:

  • 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.

    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 vào 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. 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à thông tin tóm tắt về những thao tác API tương ứng với từng loại nhật ký kiểm tra trong Firebase App Hosting:

Loại quyền Phương thức
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

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

Các mục nhập 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. Sau đây là một số trường hữu ích:

    • 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 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ật ký.

  • Thông tin kiểm tra không bắt buộc theo từng dịch vụ, đây là một đối tượng theo từng dịch vụ. Đối với các tiện ích tích hợp cũ, đối tượng này nằm trong trường serviceData của đối tượng AuditLog; các tiện ích tích hợp mới hơn sử dụng trường metadata.

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

Tên nhật ký

Tên tài nguyên Nhật ký kiểm tra trên đám mây cho biết dự án Firebase hoặc thực thể Google Cloud khác sở hữu nhật ký kiểm tra, cũng như nhật ký đó có chứa dữ liệu nhật ký kiểm tra Hoạt động của Quản trị viên, Truy cập dữ liệu, Từ chối theo chính sách hay Sự kiện hệ thống 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 này biểu thị giá trị nhận dạng dự án và tổ chức Firebase.

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 dịch vụ Lưu trữ ứng dụng Firebase sử dụng tên dịch vụ firebaseapphosting.googleapis.com.

Để xem danh sách đầy đủ tất cả tên dịch vụ Cloud Logging API và loại tài nguyên được giám sát tương ứng, hãy xem phần Ánh xạ dịch vụ với tài nguyên.

Loại tài nguyên

Nhật ký kiểm tra của dịch vụ Lưu trữ ứ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 giám sát của Cloud Logging và thông tin mô tả, hãy xem phần Các loại tài nguyên được giám sát.

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 và 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à sẽ không được ghi trừ phi bạn bật 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 phần Định cấu hình nhật ký truy cập dữ liệu.

Quyền và vai trò

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

Khi quyết định áp dụng các quyền và vai trò dành riêng cho hoạt động ghi nhật ký 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ò Trình xem nhật ký (roles/logging.viewer) cho phép bạn chỉ đọc Nhật ký kiểm tra về Hoạt động của quản trị viên, Từ chối theo chính sách 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 nhóm _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 vào dữ liệu trong nhóm _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 vùng chứa do người dùng xác định, thì mọi người dùng có quyền đọc nhật ký trong các vùng chứa đó đều có thể đọc nhật ký riêng tư. Để biết thêm thông tin về các vùng 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ò Cloud IAM áp dụng cho dữ liệu nhật ký kiểm tra, hãy xem phần 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 giá trị 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 nhật ký kiểm tra. Bạn có thể chỉ định thêm các trường LogEntry được lập chỉ mục khác, chẳng hạn như resource.type; để biết thông tin chi tiết, hãy xem phần Nhanh chóng tìm thấy các mục nhập nhật ký.

Sau đây là tên nhật ký kiểm tra; chúng bao gồm các biến cho giá trị nhận dạng của dự án, thư mục hoặc tổ chức 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

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

Bảng điều khiển

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

  1. Trong Google Cloud Console, 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 Logs Explorer

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

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

    • Trong 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 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 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.
      • Đối với Nhật ký kiểm tra sự kiện hệ thống, hãy chọn system_event.
      • Đối với nhật ký kiểm tra Bị từ chối theo chính sách, hãy chọn chính sách.

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

    Để biết thêm thông tin chi tiết về cách truy vấn bằng Logs Explorer, hãy xem phần 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 Cloud Logging API. 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 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 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 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ư được liệt kê trong tên nhật ký kiểm tra. Ví dụ: nếu truy vấn của bạn có chứa một PROJECT_ID, thì mã nhận dạng dự án mà bạn cung cấp phải đề cập đến dự án Firebase hiện được chọn.

Để sử dụng Logging API 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 Dùng thử API này trong tài liệu về phương thức entries.list.

  2. Đặt nội dung sau vào phần Nội dung yêu cầu của biểu mẫu Dùng thử API này. Khi nhấp vào biểu mẫu được điền sẵn này, nội dung yêu cầu sẽ tự động được điền, nhưng bạn cần cung cấp một 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 Thực thi.

Để biết thêm thông tin về cách truy vấn, hãy xem phần Ngôn ngữ truy vấn ghi nhật ký.

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

Nhật ký kiểm tra tuyến đường

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. Sau đây là một số lý do khiến bạn có thể muốn định tuyến nhật ký kiểm tra:

  • Để lưu giữ nhật ký kiểm tra trong 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 của 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, cá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ý, thì bạn có thể tạo các đích nhận loại trừ nhật ký kiểm tra quyền truy cập dữ liệu khỏi tính năng Ghi nhật ký.

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

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 bị từ chối theo chính sách là những nhật ký có tính phí.

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