조직의 로그 집계 및 저장

이 문서에서는 비 가로채기 집계 싱크를 사용하여 Google Cloud 조직에 포함된 리소스로 생성된 로그를 관리하는 방법을 설명합니다.

쿼리할 수 있는 로그를 제어할지 또는 하위 리소스의 싱크를 통해 라우팅할지 여부에 따라 집계 싱크를 가로채기 또는 비 가로채기로 구성할 수 있습니다. 이 튜토리얼에서는 조직의 감사 로그를 로그 버킷으로 라우팅하는 집계 싱크를 만듭니다. 싱크의 필터를 구성하여 다른 유형의 로그 항목을 라우팅할 수 있습니다. 집계 싱크에 대한 자세한 내용은 조직 및 폴더 수준 로그를 취합하여 지원되는 목적지로 라우팅을 참조하세요.

이 튜토리얼에서는 다음 단계를 수행합니다.

  1. 집계된 로그를 저장할 Cloud Logging 버킷 만들기

  2. 조직 수준에서 비 가로채기 집계 싱크를 만들어 로그를 새 로그 버킷으로 라우팅합니다.

  3. 새 로그 버킷에 대한 읽기 액세스 구성하기

  4. 로그 탐색기 페이지에서 로그 쿼리 및 보기

시작하기 전에

다음을 확인합니다.

  • 주 구성원 역할을 부여하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트의 소유자(roles/owner) IAM 역할을 부여해 달라고 요청하세요.

  • VPC 서비스 제어를 사용하는 경우 인그레스 규칙을 서비스 경계에 추가해야 합니다. VPC 서비스 제어 제한사항에 대한 자세한 내용은 집계 싱크 및 VPC 서비스 제어 제한사항을 참조하세요.

로그 버킷 만들기

로그 버킷은 다른 Google Cloud 프로젝트, 폴더, 조직에서 라우팅된 로그를 저장합니다. 자세한 내용은 로그 버킷 구성을 참조하세요.

로그를 집계하려는 Google Cloud 프로젝트에서 로그 버킷을 만들려면 다음 단계를 완료하세요.

  1. Google Cloud 콘솔로 이동하거나 다음 버튼을 클릭합니다.

    Google Cloud 콘솔로 이동

  2. Cloud Shell 터미널에서 gcloud logging buckets create 명령어를 실행합니다.

    다음 명령어를 실행하기 전에 다음을 바꿉니다.

    • BUCKET_NAME: 로그 버킷의 이름
    • LOCATION: 로그 버킷의 위치
    • PROJECT_ID: 로그 버킷을 만들 프로젝트의 식별자

    gcloud logging buckets create 명령어를 실행합니다.

     gcloud logging buckets create BUCKET_NAME \
       --location=LOCATION --project=PROJECT_ID
    
  3. 로그 버킷이 생성되었는지 확인합니다.

    gcloud logging buckets list --project=PROJECT_ID
    
  4. (선택사항) 버킷에 있는 로그의 보관 기간을 설정합니다. 이 예시에서는 버킷에 저장된 로그 보관을 365일로 확장합니다.

    gcloud logging buckets update BUCKET_NAME \
      --location=LOCATION --project=PROJECT_ID \
      --retention-days=365
    

집계 싱크 만들기

싱크를 만들어 로그를 로그 버킷으로 라우팅할 수 있습니다. 싱크에는 포함 필터, 선택적 제외 필터, 목적지가 포함됩니다. 이 튜토리얼에서 대상은 새 로그 버킷입니다. 싱크에 대한 자세한 내용은 지원되는 대상으로 로그 라우팅을 참조하세요.

조직 수준의 싱크 설정

집계 싱크를 만들려면 다음 단계를 완료하세요.

  1. gcloud logging sinks create 명령어를 실행합니다.

    다음 명령어를 실행하기 전에 다음을 바꿉니다.

    • SINK_NAME: 로그 싱크의 이름
    • PROJECT_ID: 로그 버킷을 저장하는 프로젝트의 식별자
    • LOCATION: 로그 버킷의 위치
    • BUCKET_NAME: 로그 버킷의 이름
    • ORGANIZATION_ID: 조직의 식별자

    gcloud logging sinks create 명령어를 실행합니다.

    gcloud logging sinks create SINK_NAME \
    logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME  \
      --log-filter='logName:cloudaudit.googleapis.com' \
      --description="Audit logs from my organization" \
      --organization=ORGANIZATION_ID \
      --include-children
    

    --include-children 플래그는 중요하므로 조직 내 모든 Google Cloud 프로젝트의 로그도 포함됩니다. 자세한 내용은 조직 수준 로그를 취합하여 지원되는 목적지로 라우팅을 참조하세요.

  2. 싱크가 만들어졌는지 확인합니다.

    gcloud logging sinks list --organization=ORGANIZATION_ID
    
  3. 서비스 계정의 이름을 가져옵니다.

    gcloud logging sinks describe SINK_NAME --organization=ORGANIZATION_ID
    

    결과는 다음과 유사합니다.

    writerIdentity: serviceAccount:o1234567890-ORGANIZATION_ID@gcp-sa-logging.iam.gserviceaccount.com
    
  4. serviceAccount 필드 값을 클립보드에 복사합니다.

싱크에 액세스 권한 부여

싱크를 만든 후에는 싱크에 로그 버킷에 쓸 수 있는 권한을 부여해야 합니다. Google Cloud 콘솔을 사용하거나 대상 권한 설정에 설명된 대로 Identity and Access Management(IAM) 정책을 수정하여 권한을 부여할 수 있습니다.

싱크에 로그 작성 권한을 부여하려면 다음을 수행합니다.

  1. Google Cloud 콘솔의 탐색 패널에서 IAM을 선택합니다.

    IAM으로 이동합니다.

  2. 로그 버킷이 포함된 Google Cloud 프로젝트를 선택합니다.

  3. 액세스 권한 부여를 클릭합니다.

  4. 새 주 구성원 필드에 serviceAccount: 프리픽스 없이 서비스 계정을 추가합니다.

  5. 역할 선택 메뉴에서 로그 버킷 작성자를 선택합니다.

  6. 저장을 클릭합니다.

싱크 확인에 도움이 되는 로그 생성

집계 싱크가 올바르게 구성되었는지 확인하려면 다음을 시도합니다.

  1. 로그 버킷으로 라우팅되어야 하는 감사 로그를 생성합니다.

    • 조직에 Google Cloud 프로젝트가 많은 경우 감사 로그 트래픽이 충분히 있으므로 검증 목적으로 만들 필요가 없습니다. 다음 단계로 이동합니다.

    • 그렇지 않으면 다른 프로젝트로 이동하여 Compute Engine VM 인스턴스를 만든 다음 만든 인스턴스를 삭제합니다. 감사 로그는 VM이 생성, 시작, 삭제될 때 기록됩니다.

  2. 로그 탐색기 페이지에서 로그 보기 섹션의 절차를 따라 감사 로그를 확인합니다. _AllLogs 뷰를 선택해야 합니다.

로그 버킷에 대한 읽기 액세스 구성

로그 버킷을 만들면 Cloud Logging이 _AllLogs라는 로그 뷰를 자동으로 만듭니다. 이 뷰에는 로그 버킷에 저장된 모든 로그 항목이 포함됩니다.

다음 단계에서는 _AllLogs라는 뷰로 부여를 제한하는 IAM 조건과 함께 roles/logging.viewAccessor 역할을 주 구성원에 부여합니다.

  1. Google Cloud 콘솔의 탐색 패널에서 IAM을 선택합니다.

    IAM으로 이동합니다.

    로그 집계에 사용할 Google Cloud 프로젝트를 선택했는지 확인합니다.

  2. 추가를 클릭합니다.

  3. 새 주 구성원 필드에 주 구성원을 추가합니다.

  4. 역할 선택 메뉴에서 로그 보기 접근자를 선택합니다.

  5. 바인딩에 IAM 조건을 추가합니다.

    1. 조건 추가를 클릭하고 제목과 설명을 입력합니다.
    2. 조건 유형 메뉴에서 리소스로 스크롤한 후 이름을 선택합니다.
    3. 연산자 메뉴에서 다음으로 종료를 선택합니다.
    4. 필드에 로그 뷰의 전체 이름을 입력합니다.

      locations/LOCATION/buckets/BUCKET_NAME/views/_AllLogs
      
    5. 저장을 클릭하여 조건을 저장합니다.

  6. 저장을 클릭하여 결합을 저장합니다.

로그 탐색기 페이지에서 로그 보기

로그 버킷의 로그를 보려면 다음을 수행합니다.

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

    로그 탐색기로 이동

  2. 범위 상세검색을 선택합니다.

  3. 범위 상세검색 패널에서 스토리지별 범위를 선택합니다.

  4. 확인할 로그 항목의 로그 뷰 또는 로그 뷰를 선택합니다. 예를 들어 모든 로그를 보려면 _AllLogs라는 뷰를 선택합니다.

  5. 적용을 클릭합니다.

    로그 탐색기가 새로고침되어 로그 버킷의 로그가 표시됩니다.

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