이 페이지에서는 Cloud 감사 로그의 일부로 VM Manager(OS 구성)에서 만든 감사 로그를 설명합니다.
개요
Google Cloud 서비스는 감사 로그를 작성하여 '누가, 언제, 어디서, 무엇을 했는지'라는 질문에 답하는 데 도움을 줍니다. 각 Google Cloud 프로젝트에는 프로젝트 내에 있는 리소스의 감사 로그만 있습니다. 폴더, 조직, 결제 계정과 같은 다른 항목은 각각의 항목에 대한 자체 감사 로그가 따로 있습니다.
Cloud 감사 로그의 일반적인 개요는 Cloud 감사 로그를 참조하세요. Cloud 감사 로그에 대한 자세한 내용은 감사 로그 이해를 참조하세요.
Cloud 감사 로그는 각 Google Cloud 프로젝트, 폴더, 조직당 세 가지 감사 로그를 유지합니다.
- 관리자 활동 감사 로그
- 데이터 액세스 감사 로그
- 시스템 이벤트 감사 로그
VM Manager는 명시적으로 사용 설정된 경우에만 데이터 액세스 감사 로그를 작성합니다. 데이터 액세스 감사 로그에는 리소스의 구성 또는 메타데이터를 읽는 API 호출뿐만 아니라 사용자가 제공한 리소스 데이터를 생성, 수정 또는 읽는 사용자 주도 API 호출도 포함됩니다. 공개적으로 공유(모든 사용자 또는 모든 인증 사용자에게 제공)되거나 Google Cloud에 로그인하지 않고도 액세스할 수 있는 리소스의 데이터 액세스 작업은 데이터 액세스 감사 로그에 기록되지 않습니다.
VM Manager는 관리자 활동 감사 로그를 작성하지 않습니다.
VM Manager는 시스템 이벤트 감사 로그를 작성하지 않습니다.
감사 대상 작업
다음은 VM Manager의 각 감사 로그 유형에 해당되는 API 작업을 요약한 표입니다.
감사 로그 범주 | VM Manager 작업 |
---|---|
관리자 활동 감사 로그 | 해당 없음 |
데이터 액세스 감사 로그 |
|
시스템 이벤트 감사 로그 | 해당 없음 |
감사 로그 형식
로그 뷰어, Cloud Logging API 또는 Google Cloud CLI를 사용하여 Cloud Logging에서 확인할 수 있는 감사 로그 항목에는 다음과 같은 객체가 포함됩니다.
LogEntry
유형의 객체인 로그 항목 자체. 유용한 필드는 다음과 같습니다.logName
에는 프로젝트 ID와 감사 로그 유형이 있습니다.resource
에는 감사 작업 대상이 있습니다.timeStamp
에는 감사 작업 시간이 있습니다.protoPayload
에는 감사 정보가 있습니다.
로그 항목의
protoPayload
필드에AuditLog
객체로 보관되는 감사 로깅 데이터입니다.AuditLog
객체의serviceData
필드에 서비스별 객체로 보관되는 서비스별 감사 정보로, 선택사항입니다. 자세한 내용은 서비스별 감사 데이터를 참조하세요.
이러한 객체의 다른 필드와 필드 해석 방법은 감사 로그 이해를 참조하세요.
로그 이름
Cloud 감사 로그 리소스 이름은 감사 로그를 소유하는 프로젝트나 다른 항목을 나타내며, 관리자 활동, 데이터 액세스 또는 시스템 이벤트 감사 로깅 데이터가 로그에 포함되었는지 여부도 나타냅니다. 예를 들어 다음은 프로젝트의 관리자 활동 감사 로그와 조직의 데이터 액세스 감사 로그 이름을 보여줍니다.
projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity organizations/[ORGANIZATION_ID]/logs/cloudaudit.googleapis.com%2Fdata_access
서비스 이름
VM Manager 감사 로그에서는 osconfig.googleapis.com
이라는 서비스 이름을 사용합니다.
서비스 로깅에 대한 자세한 내용은 리소스에 서비스 매핑을 참조하세요.
리소스 유형
VM Manager 감사 로그에서는 모든 감사 로그에 audited_resource
리소스 유형을 사용합니다.
전체 목록은 모니터링 리소스 유형을 참조하세요.
감사 로깅 사용 설정
데이터 액세스 감사 로그는 기본적으로 중지되어 있으며 명시적으로 사용 설정하지 않으면 작성되지 않습니다. 단, 중지할 수 없는 BigQuery의 데이터 액세스 감사 로그는 예외입니다.
데이터 액세스 감사 로그의 일부 또는 전부를 사용 설정하는 방법은 데이터 액세스 로그 구성을 참조하세요.
개발자가 사용 설정한 데이터 액세스 감사 로그는 Cloud Logging의 로그 가격에 영향을 줄 수 있습니다. 이 페이지의 가격 책정 섹션을 참조하세요.
VM Manager는 관리자 활동 감사 로그를 작성하지 않습니다.
감사 로그 권한
ID 및 액세스 관리 권한과 역할에 따라 사용자가 보거나 내보낼 수 있는 감사 로그가 결정됩니다. 로그는 프로젝트 내에 있거나 조직, 폴더, 결제 계정 등과 같은 기타 항목 안에 있습니다. 자세한 내용은 역할 이해를 참조하세요.
관리자 활동 감사 로그를 확인하려면 감사 로그가 있는 프로젝트에 다음과 같은 IAM 역할 중 하나를 가지고 있어야 합니다.
- 프로젝트 소유자, 프로젝트 편집자, 프로젝트 뷰어.
- Logging의 로그 뷰어 역할
logging.logEntries.list
IAM 권한이 있는 커스텀 IAM 역할
데이터 액세스 감사 로그를 보려면 감사 로그가 있는 프로젝트에 다음 역할 중 하나가 있어야 합니다.
- 프로젝트 소유자
- Logging의 비공개 로그 뷰어 역할
logging.privateLogEntries.list
IAM 권한이 있는 커스텀 IAM 역할
조직과 같이 프로젝트가 아닌 항목의 감사 로그를 사용하는 경우 프로젝트 역할을 적합한 조직 역할로 변경합니다.
로그 보기
모든 감사 로그를 쿼리하거나 감사 로그 이름별로 로그를 쿼리할 수 있습니다. 감사 로그 이름에는 감사 로깅 정보를 보려는 Google Cloud 프로젝트, 폴더, 결제 계정 또는 조직의 리소스 식별자가 포함됩니다.
쿼리에서 색인이 생성된 LogEntry
필드를 지정할 수 있으며 SQL 쿼리를 지원하는 로그 애널리틱스 페이지를 사용하는 경우 쿼리 결과를 차트로 볼 수 있습니다.
로그 쿼리에 대한 자세한 내용은 다음 페이지를 참조하세요.
Google Cloud 콘솔, Google Cloud CLI 또는 Logging API를 사용하여 Cloud Logging에서 감사 로그를 볼 수 있습니다.콘솔
Google Cloud 콘솔에서 로그 탐색기를 사용하여 Google Cloud 프로젝트, 폴더 또는 조직의 감사 로그 항목을 검색할 수 있습니다.
-
Google Cloud 콘솔의 탐색 패널에서 Logging을 선택한 후 로그 탐색기를 선택합니다.
기존 Google Cloud 프로젝트, 폴더 또는 조직을 선택합니다.
모든 감사 로그를 표시하려면 쿼리 편집기 필드에 다음 쿼리 중 하나를 입력한 후 쿼리 실행을 클릭합니다.
logName:"cloudaudit.googleapis.com"
protoPayload."@type"="type.googleapis.com/google.cloud.audit.AuditLog"
특정 리소스 및 감사 로그 유형에 대한 감사 로그를 표시하려면 쿼리 빌더 창에서 다음을 수행합니다.
리소스 유형에서 감사 로그를 확인할 Google Cloud 리소스를 선택하세요.
로그 이름에서 확인할 감사 로그 유형을 선택합니다.
- 관리자 활동 감사 로그의 경우 activity를 선택합니다.
- 데이터 액세스 감사 로그의 경우 data_access를 선택합니다.
- 시스템 이벤트 감사 로그의 경우 system_event를 선택합니다.
- 정책 거부 감사 로그의 경우 정책을 선택합니다.
쿼리 실행을 클릭합니다.
이러한 옵션 중 어느 것도 표시되지 않으면 Google Cloud 프로젝트나 폴더, 조직에 해당 유형의 감사 로그가 없다는 의미입니다.
로그 탐색기에서 로그를 확인하려고 할 때 문제가 발생하는 경우 문제 해결 정보를 참조하세요.
로그 탐색기를 사용한 쿼리에 대한 상세 설명은 로그 탐색기에서 쿼리 빌드를 참조하세요. Duet AI를 사용하여 로그 탐색기의 로그 항목을 요약하는 방법에 대한 자세한 내용은 Duet AI 지원을 사용하여 로그 항목 요약을 참조하세요.
gcloud
Google Cloud CLI는 Logging API에 명령줄 인터페이스를 제공합니다. 각 로그 이름에 유효한 리소스 식별자를 제공합니다. 예를 들어 쿼리에 PROJECT_ID가 포함된 경우 제공한 프로젝트 식별자가 현재 선택된 Google Cloud 프로젝트를 참조해야 합니다.
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
Cloud Billing 계정 수준의 감사 로그 항목을 읽으려면 다음 명령어를 실행합니다.
gcloud logging read "logName : billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com" \ --billing-account=BILLING_ACCOUNT_ID
1일 이상 된 로그를 읽으려면 명령어에 --freshness
플래그를 추가합니다.
gcloud CLI 사용에 대한 상세 설명은 gcloud logging read
를 참조하세요.
API
쿼리를 빌드할 때 각 로그 이름에 유효한 리소스 식별자를 제공합니다. 예를 들어 쿼리에 PROJECT_ID가 포함된 경우 제공한 프로젝트 식별자가 현재 선택된 Google Cloud 프로젝트를 참조해야 합니다.
예를 들어 Logging API를 사용하여 프로젝트 수준의 감사 로그 항목을 보려면 다음을 수행합니다.
entries.list
메서드 문서의 API 사용해 보기 섹션으로 이동합니다.API 사용해 보기 양식의 요청 본문 부분에 다음을 입력합니다. 이 자동 입력된 양식을 클릭하면 요청 본문이 자동으로 입력되지만 각 로그 이름에 유효한 PROJECT_ID를 입력해야 합니다.
{ "resourceNames": [ "projects/PROJECT_ID" ], "pageSize": 5, "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" }
실행을 클릭합니다.
감사 로그 내보내기
다른 종류의 로그를 내보낼 때와 같은 방법으로 감사 로그를 내보낼 수 있습니다. 로그 내보내기 방법에 대한 자세한 내용은 로그 내보내기를 참조하세요. 다음은 감사 로그를 내보내는 몇 가지 응용 방법입니다.
장기간 감사 로그를 보존하거나 더 강력한 검색 기능을 사용하려면 감사 로그의 복사본을 Cloud Storage, BigQuery 또는 Pub/Sub로 내보내면 됩니다. Pub/Sub를 사용하면 다른 애플리케이션이나 저장소, 제3자에게 내보낼 수 있습니다.
조직 전체의 감사 로그를 관리하려면 조직의 프로젝트 일부 또는 전체에서 로그를 내보낼 수 있는 집계 싱크를 만들면 됩니다.
- 사용 설정한 데이터 액세스 감사 로그 때문에 프로젝트가 로그 할당량을 초과하는 경우 데이터 액세스 감사 로그를 내보내고 Logging에서 제외할 수 있습니다. 자세한 내용은 로그 제외를 참조하세요.
가격 책정
Cloud Logging은 사용자가 명시적으로 요청하는 데이터 액세스 감사 로그에 요금을 부과합니다. VM Manager는 관리자 활동 감사 로그나 시스템 이벤트 감사 로그를 작성하지 않습니다.감사 로그 가격에 대한 자세한 내용은 Google Cloud Observability 가격 책정을 참조하세요.