Cloud 감사 로그 권장사항

이 문서에서는 조직이 보안을 유지하고 위험을 최소화하는 데 도움이 되는 감사 로깅 태스크 순서를 권장합니다.

이 문서에는 권장사항이 모두 포함되어 있지 않습니다. 이 문서의 목적은 감사 로깅 활동 범위를 이해하고 그에 따라 적절히 계획하는 데 도움을 주기 위함입니다.

각 섹션은 주요 활동 및 자세한 내용을 볼 수 있는 링크를 제공합니다.

Cloud 감사 로그 이해

대부분의 Google Cloud 서비스에서 감사 로그를 사용할 수 있습니다. Cloud 감사 로그는 각 Google Cloud 프로젝트, 폴더, 조직에 다음 유형의 감사 로그를 제공합니다.

감사 로그 유형 구성 가능 청구 가능
관리 활동 감사 로그 아니요. 항상 기록됨 아니요
데이터 액세스 감사 로그
정책 거부 감사 로그 예. 이러한 로그가 로그 버킷에 기록되지 않도록 제외할 수 있습니다.
시스템 이벤트 감사 로그 아니요. 항상 기록됨 아니요

BigQuery를 제외한 데이터 액세스 감사 로그는 기본적으로 사용 중지되어 있습니다. Google Cloud 서비스에 데이터 액세스 감사 로그를 작성하려면 명시적으로 사용 설정해야 합니다. 자세한 내용은 이 페이지의 데이터 액세스 감사 로그 구성을 참조하세요.

Google Cloud에서 감사 로깅의 전체 환경에 대한 자세한 내용은 Cloud 감사 로그 개요를 참조하세요.

로그 액세스 제어

감사 로깅 데이터 민감도로 인해 조직 사용자에게 적합한 액세스 제어를 구성하는 것이 특히 중요합니다.

규정 준수와 사용 요구사항에 따라 다음과 같이 액세스 제어를 설정합니다.

IAM 권한 설정

IAM 권한역할에 따라 사용자가 Logging API, 로그 탐색기, Google Cloud CLI의 감사 로그 데이터에 액세스할 수 있는지 여부가 결정됩니다. IAM을 사용하여 특정 Google Cloud 버킷에 대한 세분화된 액세스 권한을 부여하고 다른 리소스에 대한 무단 액세스를 방지합니다.

사용자에게 부여하는 권한 기반 역할은 조직 내 감사 관련 기능에 따라 다릅니다. 예를 들어 CTO에 광범위한 관리 권한을 부여하는 반면 개발자팀 구성원은 로그 보기 권한을 요구할 수 있습니다. 조직 사용자에게 부여할 역할에 대한 안내는 감사 로깅에 대한 역할 구성을 참조하세요.

IAM 권한을 설정할 때 사용자에게 리소스에 대한 필수 액세스 권한만 부여하도록 최소 권한의 보안 원칙을 적용합니다.

  • 중요하지 않은 모든 사용자를 삭제합니다.
  • 필수 사용자에게 정확하고 최소한의 권한을 부여합니다.

IAM 권한 설정 방법은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

로그 뷰 구성

감사 로그를 비롯한 모든 로그는 로그 버킷이라는 스토리지 컨테이너에 기록됩니다. 로그 뷰를 사용하면 로그 버킷 내 로그에 액세스할 수 있는 사용자를 제어할 수 있습니다.

로그 버킷에는 여러 Google Cloud 프로젝트의 로그가 포함될 수 있으므로 다른 사용자가 로그를 볼 수 있는 Google Cloud 프로젝트를 제어하려 할 수 있습니다. 해당 버킷에 대한 더욱 세분화된 액세스 제어를 제공하는 커스텀 로그 뷰를 만듭니다.

로그 뷰를 만들고 관리하는 방법은 로그 버킷에서 로그 뷰 구성을 참조하세요.

로그 필드 수준 액세스 제어 설정

필드 수준 액세스 제어를 사용하면 개별 LogEntry 필드가 Google Cloud 프로젝트 사용자에게 표시되지 않으므로 더욱 세분화된 방법으로 사용자가 액세스할 수 있는 로그 데이터를 제어할 수 있습니다. 전체 LogEntry를 숨기는 로그 뷰와 달리 필드 수준 액세스 제어는 LogEntry의 개별 필드를 숨깁니다. 예를 들어 로그 항목 페이로드에 포함된 이메일 주소와 같은 외부 사용자 개인 식별 정보를 대부분의 조직 사용자로부터 수정할 수 있습니다.

필드 수준 액세스 제어 구성 방법은 필드 수준 액세스 구성을 참조하세요.

데이터 액세스 감사 로그 구성

새 Google Cloud 서비스를 사용 설정할 때 데이터 액세스 감사 로그를 사용 설정할지 여부를 평가합니다.

데이터 액세스 감사 로그는 Google 지원팀에서 계정 문제 해결을 돕기 위해 사용됩니다. 따라서 가능하면 데이터 액세스 감사 로그를 사용 설정하는 것이 좋습니다.

모든 서비스에 모든 감사 로그를 사용 설정하려면 감사 정책에 나와 있는 구성으로 Identity and Access Management (IAM) 정책 업데이트 안내를 수행합니다.

조직 수준의 데이터 액세스 정책을 정의하고 데이터 액세스 감사 로그를 사용 설정한 후에는 조직에 개발자 및 프로덕션 Google Cloud 프로젝트를 만들기 전에 테스트 Google Cloud 프로젝트를 사용하여 감사 로그 수집 구성을 검증합니다.

데이터 액세스 감사 로그를 사용 설정하는 방법은 데이터 액세스 감사 로그 사용 설정을 참조하세요.

로그 저장 방법 제어

조직의 버킷 측면을 구성할 수 있으며 사용자 정의 버킷을 만들어 로그 스토리지를 중앙화하거나 세분화할 수도 있습니다. 규정 준수 및 사용 요구사항에 따라 다음과 같이 로그 스토리지를 맞춤설정할 수 있습니다.

  • 로그 저장 위치를 선택합니다.
  • 데이터 보관 기간을 정의합니다.
  • 고객 관리 암호화 키(CMEK)로 로그를 보호합니다.

로그 저장 위치 선택

Logging에서 버킷은 리전별 리소스입니다. 로그를 저장하고 색인을 생성하고 검색하는 인프라는 특정 지리적 위치에 있습니다.

조직에서 로그 데이터를 특정 리전에 저장해야 할 수 있습니다. 로그가 저장되는 리전을 선택하는 기본 요소에는 조직의 지연 시간, 가용성, 규정 준수 요구사항 충족이 포함됩니다.

특정 스토리지 리전을 조직에서 만든 새 _Default_Required 버킷에 자동으로 적용하려면 기본 리소스 위치를 구성하면 됩니다.

기본 리소스 위치를 구성하는 방법은 조직의 기본 설정 구성을 참조하세요.

데이터 보관 기간 정의

Cloud Logging은 로그가 보관되는 로그 버킷 유형에 적용되는 보관 규칙에 따라 로그를 보관합니다.

규정 준수 요구사항을 충족하려면 1~3650일 동안 로그를 보관하도록 Cloud Logging을 구성합니다. 커스텀 보관 규칙은 로그 유형 또는 로그가 다른 위치에서 복사되었는지 여부와 관계없이 버킷의 모든 로그에 적용됩니다.

로그 버킷에 보관 규칙을 설정하는 방법은 커스텀 보관 구성을 참조하세요.

고객 관리 암호화 키로 감사 로그 보호

기본적으로 Cloud Logging은 저장된 미사용 고객 콘텐츠를 암호화합니다. 조직에는 기본 저장 데이터 암호화가 제공하지 않는 고급 암호화 요구사항이 있을 수 있습니다. Google에서 데이터를 보호하는 키 암호화 키를 관리하는 대신 조직의 요구사항이 충족되도록 고객 관리 암호화 키(CMEK)를 구성하여 자체 암호화를 제어하고 관리할 수 있습니다.

CMEK 구성 방법은 로그 스토리지에 CMEK 구성을 참조하세요.

가격 책정

Cloud Logging은 로그를 지원되는 대상으로 라우팅하는 데 비용을 청구하지 않지만 대상에 요금이 부과될 수 있습니다. _Required 로그 버킷을 제외하고 Cloud Logging은 로그를 로그 버킷으로 스트리밍하고 로그 버킷의 기본 보관 기간보다 긴 스토리지에 대해 요금을 청구합니다.

Cloud Logging은 로그 복사 또는 로그 탐색기 페이지나 로그 애널리틱스 페이지를 통해 실행된 쿼리에 대해서는 요금을 청구하지 않습니다.

자세한 내용은 다음 문서를 참조하세요.

감사 로그를 구성하고 사용할 때 다음과 같은 가격 책정 관련 권장사항을 따르는 것이 좋습니다.

  • 사용량 데이터를 보고 알림을 설정하여 청구액을 예상합니다.

  • 데이터 액세스 감사 로그가 대용량일 수 있으며 추가 스토리지 비용이 발생할 수 있습니다.

  • 유용하지 않은 감사 로그를 제외하여 비용을 관리합니다. 예를 들어 개발 프로젝트에서 데이터 액세스 감사 로그를 제외할 수 있습니다.

감사 로그 쿼리 및 보기

문제를 해결하려면 로그를 빠르게 확인해야 합니다. Google Cloud 콘솔에서 로그 탐색기를 사용하여 조직의 감사 로그 항목을 검색합니다.

  1. Google Cloud 콘솔의 탐색 패널에서 Logging을 선택한 후 로그 탐색기를 선택합니다.

    로그 탐색기로 이동

  2. 조직을 선택합니다.

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

    • 리소스 유형에서 감사 로그를 확인할 Google Cloud 리소스를 선택하세요.

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

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

      이러한 옵션이 표시되지 않으면 이는 조직에서 사용할 수 있는 해당 유형의 감사 로그가 없다는 의미입니다.

    • 쿼리 편집기에서 확인할 감사 로그 항목을 추가로 지정합니다. 일반적인 쿼리의 예시는 로그 탐색기를 사용하는 샘플 쿼리를 참조하세요.

  4. 쿼리 실행을 클릭합니다.

로그 탐색기를 사용한 쿼리에 대한 상세 설명은 로그 탐색기에서 쿼리 빌드를 참조하세요.

감사 로그 모니터링

Cloud Monitoring을 사용하면 설명한 조건이 발생할 때 알림을 받을 수 있습니다. Cloud Monitoring에서 로그의 데이터를 제공하도록 Logging은 특정 이벤트가 로그에 나타날 때마다 알려주는 로그 기반 알림을 제공합니다.

즉각적인 조사가 필요한 이벤트와 우선순위가 낮은 이벤트를 구분하도록 알림을 구성합니다. 예를 들어 감사 로그에서 특정 데이터 액세스 메시지를 기록하는 시기를 확인하려면 메시지와 일치하고 표시되면 알려주는 로그 기반 알림을 만들 수 있습니다.

로그 기반 알림 구성 방법은 로그 기반 알림 관리를 참조하세요.

지원되는 대상으로 로그 라우팅

조직에 감사 로그를 만들고 보존하는 요구사항이 있을 수 있습니다. 싱크를 사용하면 로그의 일부 또는 전체를 지원되는 대상으로 라우팅할 수 있습니다.

폴더 수준 싱크나 조직 수준 싱크가 필요한지 여부를 결정하고 집계 싱크를 사용하여 조직이나 폴더 내 모든 Google Cloud 프로젝트에서 로그를 라우팅합니다. 예를 들어 다음과 같은 라우팅 사용 사례를 고려할 수 있습니다.

  • 조직 수준 싱크: 조직에서 SIEM을 사용하여 감사 로그를 여러 개 관리하는 경우 조직의 모든 감사 로그를 라우팅할 수 있습니다. 따라서 조직 수준 싱크가 적합합니다.

  • 폴더 수준 싱크: 경우에 따라 부서별 감사 로그만 라우팅할 수 있습니다. 예를 들어 'Finance' 폴더와 'IT' 폴더가 있는 경우 'Finance' 폴더에 속한 감사 로그만 라우팅하거나 그 반대 경우에서 값을 찾을 수 있습니다.

    폴더 및 조직에 대한 자세한 내용은 리소스 계층 구조를 참조하세요.

로그 탐색기에 적용한 액세스 정책과 액세스 정책을 로그를 라우팅하는 데 사용하는 Google Cloud 대상에 적용합니다.

집계 싱크를 만들고 관리하는 방법은 조직 수준 로그를 수집하여 지원되는 대상으로 라우팅을 참조하세요.

싱크 대상의 데이터 형식 이해

감사 로그를 Cloud Logging 외부의 대상으로 라우팅하는 경우 전송된 데이터의 형식을 이해합니다.

예를 들어 로그를 BigQuery로 라우팅하는 경우 Cloud Logging은 규칙을 적용하여 감사 로그 및 특정 구조화된 페이로드 필드의 BigQuery 스키마 필드 이름을 줄입니다.

Cloud Logging에서 지원되는 대상으로 라우팅한 로그 항목을 이해하고 찾으려면 싱크 대상에서 로그 보기를 참조하세요.

로그 항목 복사

조직의 규정 준수 요구사항에 따라 감사 로그 항목을 Logging 외부의 감사관과 공유해야 할 수 있습니다. 이미 Cloud Logging 버킷에 저장된 로그 항목을 공유해야 하는 경우 Cloud Storage 버킷에 수동으로 복사하면 됩니다.

로그 항목을 Cloud Storage에 복사하면 로그 항목은 복사된 로그 버킷에 그대로 유지됩니다.

복사 작업은 Cloud Storage를 포함하여 미리 선택한 지원되는 스토리지 대상으로 모든 수신 로그 항목을 자동으로 전송하는 싱크를 대체하지 않습니다.

로그를 Cloud Storage로 소급 라우팅하는 방법은 로그 항목 복사를 참조하세요.