감사 로깅

이 페이지에서는 Cloud Search가 Cloud 감사 로그의 일부로 만드는 감사 로그를 설명합니다.

개요

Google Cloud 서비스는 감사 로그를 작성하여 리소스 내에서 '누가, 언제, 어디서, 무엇을 했는지' 파악할 수 있도록 지원합니다. Cloud 프로젝트에는 프로젝트 내에 있는 리소스에 대한 감사 로그만 포함됩니다. 폴더, 조직, Cloud Billing 계정과 같은 다른 항목에는 항목 자체의 감사 로그가 포함됩니다.

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

Cloud 감사 로그는 각 Cloud 프로젝트, 폴더, 조직에 대해 다음 감사 로그를 제공합니다.

  • 관리자 쓰기 작업을 수행하는 메서드에 해당하는 항목이 포함된 관리자 활동 감사 로그 관리자 활동:관리자 쓰기 작업에 해당하는 메서드는 향후 감사 대상 작업 섹션에서 다룹니다.
  • 관리자 읽기, 데이터 쓰기, 데이터 읽기 작업을 수행하는 메서드에 해당하는 항목이 포함된 데이터 액세스 감사 로그입니다. 데이터 액세스:관리자 읽기, 데이터 액세스:데이터 쓰기, 데이터 액세스:데이터 읽기 작업에 해당하는 메서드는 향후 감사 대상 작업 섹션에서 다룹니다.
  • 시스템 이벤트 감사 로그
  • 정책 거부 감사 로그

Cloud Search는 리소스의 구성 또는 메타데이터를 수정하는 작업을 기록하는 관리자 활동 감사 로그를 작성합니다. 관리자 활동 감사 로그는 사용 중지할 수 없습니다.

Cloud Search는 명시적으로 사용 설정된 경우에만 데이터 액세스 감사 로그를 작성합니다. 데이터 액세스 감사 로그에는 리소스의 구성 또는 메타데이터를 읽는 API 호출뿐만 아니라 사용자가 제공한 리소스 데이터를 생성, 수정 또는 읽는 사용자 주도 API 호출도 포함됩니다.

Cloud Search는 시스템 이벤트 감사 로그를 작성하지 않습니다.

Cloud Search는 정책 거부 감사 로그를 작성하지 않습니다.

감사 대상 작업

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

감사 로그 범주 Cloud Search 작업
관리자 활동: 관리자 쓰기 Indexing.datasources.updateSchema
indexing.datasources.deleteSchema
settings.datasources.create
settings.datasources.delete
settings.datasources.update
settings.searchapplications.create
settings.searchapplications.delete
settings.searchapplications.reset
settings.searchapplications.update
settings.updateCustomer
cloudsearch.IdentitySourceService.create
cloudsearch.IdentitySourceService.update
cloudsearch.delete
데이터 액세스: 관리자 읽기 indexing.datasources.getSchema
settings.datasources.get
settings.datasources.list
settings.searchapplications.get
settings.searchapplications.list
settings.getCustomer
cloudsearch.IdentitySourceService.get
cloudsearch.IdentitySourceService.list
데이터 액세스: 데이터 쓰기 indexing.datasources.items.delete
indexing.datasources.items.deleteQueueItems
indexing.datasources.items.index
indexing.datasources.items.poll
indexing.datasources.items.push
indexing.datasources.items.unreserve
indexing.datasources.items.upload
media.upload
데이터 액세스: 데이터 읽기 색인 생성.datasources.items.get
indexing.datasources.items.list
operations.get
operations.list
debug.datasources.items.checkAccess
debug.datasources.items.searchByViewUrl
stats.getIndex
stats.getQuery
stats.getSession
stats.getUser
stats.index.datasources.get
stats.query.searchapplications.get
services.session.session.







감사 로그 형식

로그 탐색기, Cloud Logging API 또는 gcloud 명령줄 도구를 사용하여 Cloud Logging에서 볼 수 있는 감사 로그 항목에는 다음과 같은 객체가 포함됩니다.

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

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

선택적 서비스별 감사 정보로, 서비스별 객체입니다. 이전 통합에서 이 객체는 AuditLog 객체의 serviceData 필드에 보관되고, 이후 통합에서는 metadata 필드를 사용합니다.

이러한 객체의 다른 필드와 필드 해석 방법은 감사 로그 이해를 참조하세요.

로그 이름

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

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

서비스 이름

Cloud Search 감사 로그는 서비스 이름 cloudsearch.googleapis.com을 사용합니다.

리소스 유형

Cloud Search 감사 로그는 모든 감사 로그에 audited_resource 리소스 유형을 사용합니다.

다른 리소스 유형 목록은 모니터링 리소스 유형을 참조하세요.

감사 로깅 사용 설정

기본적으로 Cloud Search API에는 감사 로깅이 사용 중지되어 있습니다. Google Cloud Search에 감사 로깅을 사용 설정하려면 다음 안내를 따르세요.

  1. (선택사항) 로그를 저장할 Google Cloud Platform 프로젝트를 만들지 않은 경우 Google Cloud Search API에 대한 액세스 구성을 참조하세요.

  2. 로그를 저장할 Google Cloud의 프로젝트 ID를 가져옵니다. 프로젝트 ID를 얻는 방법을 알아보려면 프로젝트 식별을 참조하세요.

  3. 특정 API에 감사 로깅을 사용 설정하려면 사용 설정할 로그 카테고리를 결정해야 합니다. API 및 해당 카테고리는 이 문서 앞부분의 감사 대상 작업을 참조하세요.

  4. updateCustomer() REST API 메서드를 사용하여 사용 설정할 로그 카테고리로 감사 로그 설정을 업데이트합니다.

    1. Google 승인 서버에서 OAuth 2.0 액세스 토큰을 가져옵니다. 토큰을 얻는 방법에 대한 자세한 내용은 OAuth 2.0을 사용하여 Google API에 액세스의 2단계를 참조하세요. 액세스 토큰을 가져올 때 다음 OAuth 범위 중 하나를 사용합니다.

      • https://www.googleapis.com/auth/cloud_search.settings.indexing
      • https://www.googleapis.com/auth/cloud_search.settings
      • https://www.googleapis.com/auth/cloud_search
    2. 다음 curl 명령을 실행합니다.

    curl --request PATCH \
    'https://cloudsearch.googleapis.com/v1/settings/customer?updateMask=auditLoggingSettings&key=[YOUR_API_KEY]' \
    --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
    --header 'Content-Type: application/json' \
    --data '{"auditLoggingSettings": { "project": "projects/PROJECT_ID", "CATEGORY1": "true", "CATEGORY2": "true" } }'
    

    각 항목의 의미는 다음과 같습니다.

    • YOUR_ACCESS_TOKEN은 4a단계에서 얻은 OAuth 2.0 액세스 토큰입니다.
    • PROJECT_ID는 2단계에서 가져온 프로젝트 ID입니다.
    • CATEGORY1, CATEGORY2, 은 3단계에서 사용 설정한 카테고리입니다. 유효한 값은 logAdminReadActions, logDataWriteActions, logDataReadActions입니다. 관리자 쓰기 작업은 기본적으로 사용 설정되어 있으며 사용 중지할 수 없습니다. 쿼리 메서드에 대해 감사 로깅을 사용하려면 데이터 읽기 카테고리를 사용 설정해야 합니다.

    AuditLoggingSettings를 업데이트한 후 Cloud Search API에 대한 추가 요청에서는 AuditLoggingSettings에 지정된 프로젝트 ID로 감사 로그를 생성합니다.

  5. 쿼리 메서드에 대한 감사 로깅을 사용하려면 데이터 읽기 카테고리를 사용 설정해야 합니다(4단계에서 수행). 쿼리 메서드(query.sources.list, query.suggest, query.search)에 감사 로깅을 사용 설정하려면 다음 추가 단계를 따르세요.

    1. 감사 로깅을 사용 설정할 각 검색 애플리케이션에 대해 이름을 검색합니다. 이름은 searchapplications/<search_application_id> 형식이어야 합니다.

    2. enableAuditLogtrue로 설정하여 settings.searchapplications.update을 호출하려면 이름을 사용합니다.

  6. cloudsearch.google.com의 호출에 감사 로깅을 사용 설정하려면 데이터 읽기 카테고리가 사용 설정되어 있는지 확인합니다 (4단계). 또한 namesearchapplications/default인 5b 단계를 실행합니다 .

사용 설정하면 Google Cloud 콘솔의 로그 탐색기 섹션에서 로그를 볼 수 있습니다. Cloud Search 감사 로그만 보려면 다음 필터를 사용합니다.

protoPayload.serviceName="cloudsearch.googleapis.com"

로그를 보는 방법에 대한 자세한 내용은 로그 탐색기 개요를 참조하세요.

감사 로그 권한

Identity and Access Management 권한과 역할에 따라 개발자가 보거나 내보낼 수 있는 감사 로그가 결정됩니다. 로그는 Cloud 프로젝트 내에 있거나 조직, 폴더, Cloud Billing 계정과 같은 기타 항목 안에 있습니다. 자세한 내용은 역할 이해를 참조하세요.

관리자 활동 감사 로그를 보려면 감사 로그가 포함된 프로젝트에 다음 IAM 역할 중 하나가 있어야 합니다.

  • 프로젝트 소유자, 프로젝트 편집자 또는 프로젝트 뷰어
  • Logging 로그 뷰어 역할
  • logging.logEntries.list IAM 권한이 있는 커스텀 IAM 역할

데이터 액세스 감사 로그를 보려면 감사 로그가 있는 프로젝트에 다음 역할 중 하나가 있어야 합니다.

프로젝트가 아닌 항목(예: 조직)의 감사 로그를 사용할 경우 Cloud 프로젝트 역할을 적합한 조직 역할로 변경합니다.

로그 보기

감사 로그를 찾아서 보려면 감사 로깅 정보를 보려는 Cloud 프로젝트, 폴더 또는 조직의 식별자를 알아야 합니다. resource.type과 같이 색인이 생성된 다른 LogEntry 필드를 더 구체적으로 지정할 수 있습니다. 자세한 내용은 로그 탐색기에서 쿼리 빌드를 참조하세요.

다음은 Cloud 프로젝트, 폴더 또는 조직 식별자에 대한 변수가 포함된 감사 로그 이름입니다.

   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

여러 가지 방법으로 감사 로그 항목을 볼 수 있습니다.

콘솔

Cloud Console의 로그 탐색기를 사용하여 Cloud 프로젝트의 감사 로그 항목을 검색할 수 있습니다.

  1. Cloud Console에서 Logging > 로그 탐색기 페이지로 이동합니다.

    로그 탐색기 페이지로 이동

  2. 로그 탐색기 페이지에서 기존 Cloud 프로젝트를 선택합니다.

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

    • 리소스에서 감사 로그를 확인할 Google Cloud 리소스 유형을 선택합니다.

    • 로그 이름에서 확인할 감사 로그 유형을 선택합니다.

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

    이러한 옵션이 표시되지 않으면 Cloud 프로젝트에 해당 유형의 감사 로그가 없다는 의미입니다.

    새로운 로그 탐색기를 사용하여 쿼리하는 방법에 대한 자세한 내용은 로그 탐색기에서 쿼리 빌드를 참조하세요.

gcloud

gcloud는 Logging API에 명령줄 인터페이스를 제공합니다. 각 로그 이름에 유효한 PROJECT_ID, FOLDER_ID 또는 ORGANIZATION_ID를 입력합니다.

Google Cloud 프로젝트 수준의 감사 로그 항목을 읽으려면 다음 명령어를 실행합니다.

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 도구 사용에 대한 자세한 내용은 gcloud logging read를 참조하세요.

API

쿼리를 빌드할 때 변수를 유효한 값으로 바꾸고 감사 로그 이름에 나열된 적절한 프로젝트 수준, 폴더 수준 또는 조직 수준의 감사 로그 이름 또는 식별자를 대체합니다. 예를 들어 쿼리에 PROJECT_ID가 포함된 경우 제공하는 프로젝트 식별자가 현재 선택된 Cloud 프로젝트를 참조해야 합니다.

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. 실행을 클릭합니다.

쿼리에 대한 자세한 내용은 Logging 쿼리 언어를 참조하세요.

샘플 감사 로그 항목과 이 항목에서 가장 중요한 정보를 찾는 방법은 감사 로그 이해를 참조하세요.

감사 로그 내보내기

다른 종류의 로그를 내보낼 때와 같은 방법으로 감사 로그를 내보낼 수 있습니다. 로그를 내보내는 방법에 대한 자세한 내용은 로그 내보내기를 참조하세요. 다음은 감사 로그를 내보내는 몇 가지 응용 방법입니다.

  • 감사 로그를 장기간 보관하거나 보다 강력한 검색 기능을 사용하려면 감사 로그 사본을 Cloud Storage, BigQuery 또는 Pub/Sub로 내보내면 됩니다. Pub/Sub를 사용하면 다른 애플리케이션, 다른 저장소, 서드 파티로 내보낼 수 있습니다.

  • 조직 전체의 감사 로그를 관리하려면 조직의 일부 또는 모든 Cloud 프로젝트에서 로그를 내보낼 수 있는 집계 싱크를 만들면 됩니다.

  • 사용 설정한 데이터 액세스 감사 로그가 로그 할당량을 초과하여 Cloud 프로젝트를 푸시하는 경우 데이터 액세스 감사 로그를 내보내고 Logging에서 제외할 수 있습니다. 자세한 내용은 로그 제외를 참조하세요.

가격 및 보관

Cloud Logging은 모든 관리자 활동 감사 로그를 비롯하여 사용 중지할 수 없는 감사 로그에 대해 비용을 청구하지 않습니다. Cloud Logging은 사용자가 명시적으로 요청하는 데이터 액세스 감사 로그에 요금을 청구합니다.

감사 로그 가격에 대한 자세한 내용은 Google Cloud 운영 제품군 가격 책정을 참조하세요.

Cloud Search 감사 로그와 연결된 저장 기간은 다음과 같습니다.

  • 관리자 활동 로그 (또는 관리자 쓰기) - 이 로그는 400일 동안 보관됩니다.
  • 데이터 액세스 로그 (관리자 읽기, 데이터 쓰기, 데이터 읽기) - 이 로그는 30일 동안 보관됩니다.

저장 기간에 대한 자세한 내용은 로그 보관 기간을 참조하세요.

현재 제한사항

Cloud Search 감사 로깅에는 현재 다음과 같은 제한사항이 있습니다.

  • 로그 항목의 크기는 512KB 미만이어야 합니다. 크기가 512KB를 초과하면 응답이 로그 항목에서 삭제됩니다. 그래도 크기가 512KB 이하로 줄어들지 않으면 요청이 삭제됩니다. 마지막으로 크기가 여전히 512KB를 초과하면 로그 항목이 삭제됩니다.

  • list(), get(), suggest() 메서드의 경우 응답 본문이 로깅되지 않습니다. 하지만 응답 상태는 확인할 수 있습니다.

  • cloudsearch.google.com에서의 Query API 호출 (사용 설정된 경우) 및 고객 검색 애플리케이션만 로깅됩니다.

  • search() 호출의 경우 Query, RequestOptions, DataSourceRestriction만 요청에 로깅됩니다. 응답에서 각 SearchResult의 URL과 메타데이터 (소스 및 objectType)만 감사됩니다.

  • Cloud Search 백엔드로 전송되었으며 데이터 내보내기에 해당하는 호출은 감사되지 않습니다.