조직의 로그를 로그 버킷에 저장

이 페이지에서는 로그를 단일 로그 버킷에 저장하는 방법을 설명합니다. 로그를 관리하는 일반적인 방법은 조직 전체에서 단일 로그 버킷으로 집계하는 것입니다. 이 가이드에서는 모든 감사 로그를 집계하는 예시를 사용하여 프로세스를 안내합니다.

이 프로세스는 다음과 같은 단계로 진행됩니다.

  1. 집계된 로그를 저장하기 위한 로그 버킷 만들기

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

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

  4. 로그 탐색기 페이지에서 로그 검색

시작하기 전에

이 가이드의 단계를 완료하려면 다음 사항을 알아야 합니다.

  • 로그를 어떤 프로젝트에 집계하나요? 이 예에서는 logs-test-project라는 프로젝트를 사용합니다.

  • 로그를 집계할 로그 버킷의 이름과 위치는 무엇인가요? 이 예에서 버킷 이름은 all-audit-logs-bucket이고 위치는 global입니다.

  • 어떤 로그를 포함하나요? 이 예에서는 모든 감사 로그인 logName:cloudaudit.googleapis.com을 포함합니다.

  • 이 로그를 수집하는 싱크의 이름은 무엇인가요? 이 예에서 싱크 이름은 all-audit-logs-sink입니다.

  • 조직 번호는 무엇인가요? 이 예에서 조직 번호는 12345입니다.

로그 버킷 만들기

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

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

  1. 로그를 집계하는 데 사용하는 프로젝트에서 Google Cloud Console을 엽니다.

    Google Cloud Console로 이동

  2. Cloud Shell 터미널에서 다음 명령어를 실행하여 버킷을 만듭니다. 굵게 표시된 부분은 자체 정보로 바꿉니다.

     gcloud beta logging buckets create all-audit-logs-bucket \
       --location=global \
       --project=logs-test-project
    
  3. 버킷이 생성되었는지 확인합니다.

    gcloud beta logging buckets list --project=logs-test-project
    
  4. 필요한 경우 버킷에 있는 로그의 보관 기간을 설정합니다. 이 예에서는 버킷에 저장된 로그 보관을 365일로 확장합니다.

    gcloud beta logging buckets update all-audit-logs-bucket --location=global --project=logs-test-project --retention-days=365
    

로그 싱크 만들기

로그 싱크를 만들어 로그를 로그 버킷으로 라우팅할 수 있습니다. 싱크에는 로그 필터, 즉 이 싱크를 통해 내보낼 로그 항목 및 대상을 선택합니다. 이 가이드에서 내보내기 대상은 버킷인 all-audit-logs-bucket입니다.

조직 수준의 싱크 설정

싱크를 만들려면 다음 단계를 완료합니다.

  1. 다음 명령어를 실행하여 굵게 표시된 부분을 자체 정보로 바꿉니다.

    gcloud beta logging sinks create all-audit-logs-sink \
    logging.googleapis.com/projects/logs-test-project/locations/global/buckets/all-audit-logs-bucket \
      --log-filter='logName:cloudaudit.googleapis.com' \
      --description="All audit logs from my org log sink" \
      --organization=12345 \
      --include-children
    

    --include-children 플래그는 중요하므로 조직 내 모든 프로젝트의 로그도 포함됩니다. 자세한 내용은 집계 싱크 가이드를 참조하세요.

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

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

    gcloud logging sinks describe all-audit-logs-sink --organization=12345
    

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

    writerIdentity: serviceAccount:p1234567890-12345@gcp-sa-logging.iam.gserviceaccount.com
    
  4. serviceAccount:로 시작하는 writerIdentity의 전체 문자열을 복사합니다.

싱크 권한 설정

싱크를 만든 후에는 싱크에 버킷에 쓸 수 있는 액세스 권한을 부여해야 합니다. Cloud Console을 통해 또는 로그 버킷 관리에 설명된 대로 ID 및 액세스 관리(IAM) 정책을 수동으로 수정하면 됩니다.

이 가이드에서는 다음 단계에 따라 Cloud Console을 통해 권한을 설정합니다.

  1. Cloud Console에서 IAM 페이지로 이동합니다.

    IAM 페이지로 이동

  2. 추가를 클릭합니다.

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

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

  5. 저장을 클릭합니다.

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

싱크가 감사 로그를 사용하는 경우 싱크가 올바르게 라우팅되는지 검증하는 한 가지 방법은 다른 프로젝트에서 VM을 시작한 다음 VM을 사용 중지하여 이 이벤트가 로그에 나타나는지 확인하는 것입니다.

조직에 프로젝트가 이미 많은 경우 이 단계가 필요하지 않은 감사 로그 트래픽이 충분히 있는 것일 수 있습니다.

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

이제 전체 조직에서 버킷으로 라우팅되는 로그가 있으므로 이러한 모든 로그를 검색할 수 있습니다. 새 버킷의 보기를 보려면 특히 logs views accessor 롤을 포함하여 읽기 액세스 권한을 부여해야 합니다.

이 가이드에서는 다음 단계에 따라 Cloud Console을 통해 권한을 설정합니다.

  1. 로그 집계에 사용 중인 프로젝트의 Cloud Console에서 IAM 페이지로 이동합니다.

    IAM 페이지로 이동

  2. 추가를 클릭합니다.

  3. 새 구성원 필드에 이메일 계정을 추가합니다.

  4. 역할 선택 드롭다운 메뉴에서 로그 뷰 접근자를 선택합니다.

    이 역할은 사용자에게 모든 보기에 대한 읽기 액세스 권한을 제공합니다. 특정 버킷에 대한 사용자 액세스를 제한하려면 리소스 이름을 기준으로 조건을 추가합니다.

    1. 조건 추가를 클릭합니다.

    2. 조건의 제목설명을 입력합니다.

    3. 조건 유형 드롭다운 메뉴에서 리소스 > 이름을 선택합니다.

    4. 연산자 드롭다운 메뉴에서 다음으로 종료를 선택합니다.

    5. 필드에 버킷 ID의 위치 및 버킷 이름 부분을 입력합니다.

      예를 들면 다음과 같습니다.

      locations/global/buckets/all-audit-logs-bucket
      
    6. 저장을 클릭하여 조건을 추가합니다.

  5. 저장을 클릭하여 권한을 설정합니다.

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

이전 섹션에서 권한을 설정한 후 Cloud Console로 이동하여 다음 단계를 완료합니다.

  1. 로그를 집계하는 데 사용하는 프로젝트의 Logging 메뉴에서 로그 탐색기를 선택합니다.

    로그 탐색기로 이동

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

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

  1. all-audit-logs-bucket을 선택합니다.

  2. 적용을 클릭합니다.

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

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