Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

Firebase App Check에 대한 감사 로깅

이 페이지에서는 Firebase에서 Cloud 감사 로그 의 일부로 생성한 감사 로그에 대해 설명합니다.

개요

Firebase 서비스는 감사 로그를 작성하여 "누가 무엇을, 어디서, 언제 했습니까?"라는 질문에 답하는 데 도움이 됩니다. Firebase 프로젝트에 연결된 Google Cloud 프로젝트 의 일부로 제공되는 Cloud 감사 로그입니다.

Firebase 프로젝트에는 각각 프로젝트 내에 있는 리소스에 대한 감사 로그만 포함되어 있습니다.

Cloud 감사 로그의 일반적인 개요는 Cloud 감사 로그 개요 를 참조하세요. 감사 로그 형식에 대한 자세한 내용은 감사 로그 이해 를 참조하십시오.

사용 가능한 감사 로그

Firebase App Check에 사용할 수 있는 감사 로그 유형은 다음과 같습니다.

  • 관리자 활동 감사 로그

    메타데이터 또는 구성 정보를 작성하는 "관리자 쓰기" 작업이 포함됩니다.

    관리자 활동 감사 로그는 비활성화할 수 없습니다.

  • 데이터 액세스 감사 로그

    메타데이터 또는 구성 정보를 읽는 "관리자 읽기" 작업이 포함됩니다. 사용자가 제공한 데이터를 읽거나 쓰는 "데이터 읽기" 및 "데이터 쓰기" 작업도 포함됩니다.

    데이터 액세스 감사 로그를 수신하려면 명시적으로 활성화 해야 합니다.

감사 로그 유형에 대한 자세한 설명은 감사 로그 유형 을 참조하십시오.

감사 작업

다음은 Firebase App Check의 각 감사 로그 유형에 해당하는 API 작업을 요약한 것입니다.

감사 로그 카테고리 Firebase 앱 확인 작업
프로젝트 운영
관리자 활동 업데이트 서비스
일괄 업데이트 서비스
데이터 액세스(ADMIN_READ) 서비스 받기
목록 서비스
앱 운영
관리자 활동 업데이트 앱 증명 구성
업데이트 장치 확인 구성
UpdatePlayIntegrityConfig
UpdateRecaptchaEnterpriseConfig
UpdateRecaptchaV3Config
UpdateSafetyNetConfig
디버그 토큰 만들기
디버그 토큰 업데이트
디버그 토큰 삭제
데이터 액세스(ADMIN_READ) GetApp 증명 구성
BatchGetAppAttest구성
GetDeviceCheck 구성
BatchGetDeviceCheck 구성
GetPlayIntegrityConfig
BatchGetPlayIntegrityConfigs
GetRecaptchaEnterpriseConfig
BatchGetRecaptchaEnterpriseConfigs
GetRecaptchaV3Config
BatchGetRecaptchaV3구성
GetSafetyNetConfig
BatchGetSafetyNetConfigs
디버그 토큰 가져오기
디버그 토큰 목록

감사 로그 형식

감사 로그 항목에는 다음 개체가 포함됩니다.

  • LogEntry 유형의 개체인 로그 항목 자체입니다. 유용한 필드는 다음과 같습니다.

    • logName 에는 리소스 ID와 감사 로그 유형이 포함됩니다.
    • resource 에 감사된 작업의 대상이 포함되어 있습니다.
    • timeStamp 는 감사된 작업의 시간을 포함합니다.
    • protoPayload 에는 감사된 정보가 포함되어 있습니다.
  • 로그 항목의 protoPayload 필드에 보관된 AuditLog 개체인 감사 로깅 데이터입니다.

  • 서비스별 개체인 선택적 서비스별 감사 정보입니다. 이전 통합의 경우 이 개체는 AuditLog 개체의 serviceData 필드에 보관됩니다. 최신 통합은 metadata 필드를 사용합니다.

이러한 개체의 다른 필드와 이를 해석하는 방법은 감사 로그 이해 를 검토하세요.

로그 이름

Cloud 감사 로그 리소스 이름은 감사 로그를 소유한 Firebase 프로젝트 또는 기타 Google Cloud 항목과 로그에 관리자 활동, 데이터 액세스, 정책 거부 또는 시스템 이벤트 감사 로깅 데이터가 포함되어 있는지 여부를 나타냅니다. 예를 들어 다음은 프로젝트 수준의 관리자 활동 감사 로그 및 조직의 데이터 액세스 감사 로그에 대한 로그 이름을 보여줍니다. 변수는 Firebase 프로젝트 및 조직 식별자를 나타냅니다.

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

작업 명

Firebase 앱 확인 감사 로그는 서비스 이름 firebaseappcheck.googleapis.com 을 사용합니다.

모든 Cloud Logging API 서비스 이름 및 해당 모니터링 리소스 유형의 전체 목록은 리소스 에 서비스 매핑을 참조하세요.

리소스 유형

Firebase App Check 감사 로그는 모든 감사 로그에 대해 audited_resource 리소스 유형을 사용합니다.

모든 Cloud Logging 모니터링 리소스 유형 및 설명 정보 목록은 모니터링 리소스 유형 을 참조하세요.

감사 로깅 사용

관리자 활동 감사 로그는 항상 활성화되어 있습니다. 비활성화할 수 없습니다.

데이터 액세스 감사 로그는 기본적으로 사용 중지되어 있으며 명시적으로 사용 설정하지 않는 한 기록되지 않습니다(사용 중지할 수 없는 BigQuery용 데이터 액세스 감사 로그는 예외).

데이터 액세스 감사 로그의 일부 또는 전체를 활성화하는 방법에 대한 지침은 데이터 액세스 로그 구성 을 참조하십시오.

권한 및 역할

Cloud IAM 권한 및 역할은 GCP 리소스의 감사 로그 데이터에 액세스할 수 있는 능력을 결정합니다.

사용 사례에 적용할 Logging 관련 권한 및 역할을 결정할 때 다음을 고려하세요.

  • 로그 뷰어 역할( roles/logging.viewer )은 관리자 활동, 정책 거부 및 시스템 이벤트 감사 로그에 대한 읽기 전용 액세스 권한을 제공합니다. 이 역할만 있으면 _Default 버킷에 있는 데이터 액세스 감사 로그를 볼 수 없습니다.

  • 비공개 로그 뷰어 역할 (roles/logging.privateLogViewer )에는 roles/logging.viewer /logging.viewer 에 포함된 권한과 _Default 버킷에서 데이터 액세스 감사 로그를 읽는 기능이 포함됩니다.

    이러한 개인 로그가 사용자 정의 버킷에 저장되면 해당 버킷의 로그를 읽을 수 있는 권한이 있는 모든 사용자가 개인 로그를 읽을 수 있습니다. 로그 버킷에 대한 자세한 내용은 라우팅 및 스토리지 개요 를 참조하십시오.

감사 로그 데이터에 적용되는 Cloud IAM 권한 및 역할에 대한 자세한 내용은 액세스 제어 를 참조하십시오.

로그 보기

감사 로그를 찾고 보려면 감사 로깅 정보를 보려는 Firebase 프로젝트, 폴더 또는 조직의 식별자를 알아야 합니다. resource.type 과 같은 다른 인덱싱된 LogEntry 필드를 추가로 지정할 수 있습니다. 자세한 내용은 빠르게 로그 항목 찾기 를 참조하세요.

다음은 감사 로그 이름입니다. 여기에는 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

GCP 콘솔, gcloud 명령줄 도구 또는 Logging API를 사용하여 Cloud Logging에서 감사 로그를 볼 수 있습니다.

콘솔

GCP 콘솔에서 로그 탐색기를 사용하여 Firebase 프로젝트, 폴더 또는 조직에 대한 감사 로그 항목을 검색할 수 있습니다.

  1. GCP 콘솔에서 로깅 > 로그 탐색기 페이지로 이동합니다.

    로그 탐색기 페이지로 이동

  2. 로그 탐색기 페이지에서 기존 Firebase 프로젝트, 폴더 또는 조직을 선택합니다.

  3. 쿼리 빌더 창에서 다음을 수행합니다.

    • 리소스 유형 에서 감사 로그를 보려는 GCP 리소스를 선택합니다.

    • 로그 이름 에서 보려는 감사 로그 유형을 선택합니다.

      • 관리자 활동 감사 로그의 경우 활동 을 선택합니다.
      • 데이터 액세스 감사 로그의 경우 data_access 를 선택하십시오.
      • 시스템 이벤트 감사 로그의 경우 system_event 를 선택합니다.
      • 정책 거부 감사 로그의 경우 정책 을 선택합니다.

    이러한 옵션이 표시되지 않으면 Firebase 프로젝트, 폴더 또는 조직에서 사용할 수 있는 해당 유형의 감사 로그가 없는 것입니다.

    로그 탐색기를 사용한 쿼리에 대한 자세한 내용은 로그 쿼리 작성 을 참조하세요.

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. entries.list 메소드에 대한 문서에서 이 API 시도 섹션으로 이동하십시오.

  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 프로젝트를 로그 할당량 이상으로 푸시하는 경우 Logging에서 데이터 액세스 감사 로그를 제외하는 싱크를 만들 수 있습니다.

로그 라우팅에 대한 지침은 싱크 구성 을 참조하세요.

가격

관리자 활동 감사 로그시스템 이벤트 감사 로그 는 무료입니다.

데이터 액세스 감사 로그정책 거부 감사 로그 는 유료입니다.

Cloud Logging 가격 책정에 대한 자세한 내용은 GCP 운영 제품군 가격 책정: Cloud Logging 을 참조하세요.