이 페이지에서는 Cloud Search에서 Cloud 감사 로그의 일부로 만드는 감사 로그를 설명합니다.
개요
Google Cloud 서비스는 리소스 내에서 '누가, 언제, 어디서, 무엇을 했는지'라는 질문에 답하는 데 도움이 되는 감사 로그를 작성합니다. Cloud 프로젝트에는 프로젝트 내에 있는 리소스의 감사 로그만 있습니다. 폴더, 조직, Cloud Billing 계정과 같은 다른 항목에는 자체 감사 로그가 있습니다.
일반적인 개요는 Cloud 감사 로그를 참고하세요. 자세한 내용은 감사 로그 이해를 참고하세요.
Cloud 감사 로그는 각 Cloud 프로젝트, 폴더, 조직에 대해 다음 로그를 제공합니다.
- 관리자 활동 감사 로그: 관리자 쓰기 작업을 실행하는 메서드의 항목입니다.
- 데이터 액세스 감사 로그: 관리자 읽기, 데이터 쓰기, 데이터 읽기 작업을 실행하는 메서드의 항목입니다.
- 시스템 이벤트 감사 로그
- 정책 거부 감사 로그
Cloud Search는 리소스 구성 또는 메타데이터를 수정하는 작업을 기록하는 관리자 활동 감사 로그를 작성합니다. 관리자 활동 감사 로그는 사용 중지할 수 없습니다.
Cloud Search는 명시적으로 사용 설정한 경우에만 데이터 액세스 감사 로그를 작성합니다. 이 로그에는 리소스 구성 또는 메타데이터를 읽는 API 호출과 사용자가 제공한 리소스 데이터를 생성, 수정 또는 읽는 사용자 주도 API 호출이 포함됩니다.
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.IdentitySourceService.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 |
| 데이터 액세스: 데이터 읽기 | indexing.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 stats.session.searchapplications.get stats.user.search applications.get debug.identitysources.items.listForunmappedidentity debug.identitysources.unmappedids.list debug.datasources.items.unmappedids.list query.sources.list query.suggest query.search stats.getSearchapplication |
감사 로그 형식
감사 로그 항목에는 다음 객체가 포함됩니다. 로그 탐색기, Cloud Logging API 또는 gcloud 명령줄 도구를 사용하여 Cloud Logging에서 볼 수 있습니다.
로그 항목 자체는 LogEntry 객체입니다. 유용한 필드는 다음과 같습니다.
logName: 리소스 ID와 감사 로그 유형resource: 감사된 작업의 타겟입니다.timeStamp: 감사된 작업의 시간입니다.protoPayload: 감사된 정보입니다.
감사 로깅 데이터는 protoPayload 필드의 AuditLog 객체입니다.
선택적 서비스별 감사 정보는 서비스별 객체입니다. 이전 통합에서 이 객체는 AuditLog 객체의 serviceData 필드에 보관하고 최신 통합은 metadata 필드를 사용합니다.
자세한 내용은 감사 로그 이해를 참고하세요.
로그 이름
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의 감사 로깅은 사용 중지되어 있습니다. Cloud Search의 감사 로깅을 사용 설정하려면 다음 단계를 따르세요.
- (선택사항) 로그를 저장할 Google Cloud 프로젝트를 만들지 않은 경우 Cloud Search API 액세스 구성을 참고하세요.
- 로그를 저장할 Google Cloud 프로젝트의 프로젝트 ID를 가져옵니다. 프로젝트 식별을 참고하세요.
- 특정 API에 대해 사용 설정할 로그 카테고리를 확인합니다. 감사 대상 작업을 참고하세요.
updateCustomer()REST API 메서드를 사용하여 카테고리로auditLogSettings를 업데이트합니다.- OAuth 2.0 액세스 토큰을 가져옵니다. OAuth 2.0을 사용하여 Google API에 액세스를 참고하세요.
다음 범위 중 하나를 사용합니다.
https://www.googleapis.com/auth/cloud_search.settings.indexinghttps://www.googleapis.com/auth/cloud_search.settingshttps://www.googleapis.com/auth/cloud_search
다음 curl 명령어를 실행합니다.
bash 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,PROJECT_ID, 카테고리(logAdminReadActions,logDataWriteActions또는logDataReadActions)를 바꿉니다. 관리자 쓰기 작업은 기본적으로 사용 설정되어 있습니다. 쿼리 메서드를 로깅하려면 데이터 읽기 카테고리를 사용 설정하세요.Cloud Search API에 대한 후속 요청은 지정된 프로젝트에 로그를 생성합니다.
- OAuth 2.0 액세스 토큰을 가져옵니다. OAuth 2.0을 사용하여 Google API에 액세스를 참고하세요.
다음 범위 중 하나를 사용합니다.
쿼리 메서드의 감사 로깅에는 데이터 읽기 카테고리가 필요합니다.
query.sources.list,query.suggest,query.search의 로깅을 사용 설정하려면 다음을 실행합니다.- 각 검색 애플리케이션의 이름을
searchapplications/<search_application_id>형식으로 가져옵니다. enableAuditLog을true로 설정하여settings.searchapplications.update를 호출합니다.
- 각 검색 애플리케이션의 이름을
cloudsearch.google.com의 호출에 감사 로깅을 사용 설정하려면 데이터 읽기 카테고리가 사용 설정되어 있는지 확인하고searchapplications/default를 업데이트합니다.
Google Cloud 콘솔의 로그 탐색기에서 로그를 확인합니다. Cloud Search 감사 로그에 다음 필터를 사용하세요.
protoPayload.serviceName="cloudsearch.googleapis.com"
자세한 내용은 로그 탐색기 개요를 참고하세요.
감사 로그 권한
Identity and Access Management (IAM) 권한에 따라 사용자가 보거나 내보낼 수 있는 로그가 결정됩니다. 자세한 내용은 역할 이해하기를 참조하세요.
관리자 활동 감사 로그를 보려면 다음 IAM 역할 중 하나가 있어야 합니다.
- 프로젝트 소유자, 편집자 또는 뷰어
- Logging 로그 뷰어 역할
logging.logEntries.list권한이 있는 커스텀 IAM 역할
데이터 액세스 감사 로그를 보려면 다음 역할 중 하나가 있어야 합니다.
- 프로젝트 소유자
- Logging의 비공개 로그 뷰어 역할
logging.privateLogEntries.listIAM 권한이 있는 커스텀 IAM 역할
프로젝트가 아닌 항목(예: 조직)의 감사 로그를 사용할 경우 Cloud 프로젝트 역할을 적합한 조직 역할로 변경합니다.
로그 보기
로그를 보려면 Cloud 프로젝트, 폴더 또는 조직의 식별자가 필요합니다. resource.type과 같은 다른 LogEntry 필드를 지정할 수 있습니다. 로그 탐색기에서 쿼리 빌드를 참고하세요.
감사 로그 이름은 다음 형식을 따릅니다.
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%2Fpolicyfolders/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
여러 가지 방법으로 감사 로그 항목을 볼 수 있습니다.
콘솔
- Google Cloud 콘솔에서 로깅 > 로그 탐색기 페이지로 이동합니다. 로그 탐색기로 이동
- 프로젝트를 선택합니다.
- 쿼리 빌더 창에서 리소스와 로그 유형을 선택합니다. 새로운 로그 탐색기를 사용하여 쿼리하는 방법에 대한 자세한 내용은 로그 탐색기에서 쿼리 빌드를 참고하세요.
gcloud
프로젝트 수준 로그의 경우 다음 명령어를 실행합니다.
gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
--project=PROJECT_ID
API
entries.list메서드의 API 사용해 보기 섹션으로 이동합니다.- 이 요청 본문을 사용하여
PROJECT_ID를 선택한 프로젝트 ID로 바꿉니다.{ "resourceNames": ["projects/PROJECT_ID"], "pageSize": 5, "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" } - 실행을 클릭합니다.
쿼리에 대한 자세한 내용은 Logging 쿼리 언어를 참조하세요.
샘플 감사 로그 항목과 이 항목에서 가장 중요한 정보를 찾는 방법은 감사 로그 이해를 참조하세요.
감사 로그 내보내기
다른 로그와 마찬가지로 감사 로그를 내보낼 수 있습니다. 로그 내보내기를 참고하세요.
- 장기 보관 또는 고급 검색을 위해 Cloud Storage, BigQuery 또는 Pub/Sub로 내보냅니다.
- 집계된 싱크를 사용하여 조직 전체의 로그를 관리합니다.
- 로그 할당량을 관리하기 위해 데이터 액세스 로그를 제외합니다. 로그 제외를 참고하세요.
가격 책정 및 유지
Cloud Logging은 관리자 활동 감사 로그에 대해 비용을 청구하지 않습니다. Cloud Logging은 데이터 액세스 감사 로그에 요금을 부과합니다. Google Cloud 운영 제품군 가격 책정을 참고하세요.
Cloud Search 감사 로그의 보관 기간:
- 관리자 활동 로그: 400일
- 데이터 액세스 로그: 30일
현재 제한사항
Cloud Search 감사 로깅 제한사항:
- 로그 항목 크기는 512KB 미만이어야 합니다. 항목이 512KB를 초과하면
response필드가 삭제됩니다. 그래도 512KB를 초과하면request필드가 삭제됩니다. 여전히 512KB를 초과하면 항목 전체가 삭제됩니다. list(),get(),suggest()메서드의 경우 응답 본문이 로깅되지 않습니다.cloudsearch.google.com및 고객 검색 애플리케이션의 쿼리 호출만 로깅됩니다.search()호출의 경우Query,RequestOptions,DataSourceRestriction만 요청에 로깅됩니다. 응답은 URL과 메타데이터만 감사합니다.- 데이터 내보내기를 위한 백엔드 호출은 감사되지 않습니다.