조직의 로그 집계 및 저장

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

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

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

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

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

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

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

시작하기 전에

다음을 확인합니다.

  • 로그를 라우팅할 Google Cloud 조직 또는 폴더에 다음 IAM 역할 중 하나가 있어야 합니다.

    • 소유자(roles/owner)
    • Logging 관리자(roles/logging.admin)
    • 로그 구성 작성자(roles/logging.configWriter)

    이러한 역할에 포함된 권한은 싱크를 생성, 삭제 또는 수정할 수 있게 해줍니다. IAM 역할 설정에 대한 자세한 내용은 Logging 액세스 제어 튜토리얼를 참조하세요.

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

로그 버킷 만들기

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

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

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

    Google Cloud 콘솔로 이동

  2. Cloud Shell 터미널에서 다음 명령어를 실행하여 로그 버킷을 만듭니다. 변수는 적절한 값으로 바꾸세요.

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

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

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

싱크 만들기

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

조직 수준의 싱크 설정

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

  1. 다음 명령어를 실행하여 변수를 적합한 값으로 바꿉니다.

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

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

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

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

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

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

싱크에 액세스 권한 부여

싱크를 만든 후에는 싱크에 로그 버킷에 쓸 수 있는 권한을 부여해야 합니다. Google Cloud 콘솔을 통해 또는 목적지 권한 설정에 설명된 대로 Identity and Access Management(IAM) 정책을 수동으로 수정하면 됩니다.

이 튜토리얼에서는 다음 단계에 따라 Google Cloud 콘솔을 통해 권한을 설정합니다.

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

    IAM으로 이동합니다.

  2. 로그 집계에 사용할 조직 수준 버킷이 포함된 목적지 Google Cloud 프로젝트를 선택했는지 확인합니다.

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

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

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

  6. 저장을 클릭합니다.

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

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

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

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

이제 싱크가 전체 조직에서 해당 로그 버킷으로 로그를 라우팅하므로, 이러한 모든 로그에서 검색할 준비가 되었습니다. 로그 뷰를 사용하면 로그 뷰를 만들고 주 구성원에게 roles/logging.viewAccessor IAM 역할을 부여하여 로그 버킷 내의 로그에 액세스할 수 있는 사용자를 제한할 수 있습니다.

이 튜토리얼에서는 다음 단계에 따라 Google Cloud 콘솔을 통해 권한을 설정합니다.

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

    IAM으로 이동합니다.

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

  2. 추가를 클릭합니다.

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

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

    이 역할은 주 구성원에게 Google Cloud 프로젝트의 로그 버킷에 대한 로그 뷰에 대한 읽기 액세스 권한을 제공합니다. 사용자 액세스를 제한하려면 기존 로그 보기에서 항목을 만들거나 선택하고 사용자가 새 로그 버킷에서만 읽기를 수행할 수 있게 하는 조건을 추가합니다.

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

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

    3. 조건 유형 메뉴에서 리소스를 선택한 후 이름를 선택합니다.

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

    5. 필드에 로그 뷰의 이름을 입력합니다. 로그 뷰에 대한 자세한 내용은 로그 버킷에서 로그 뷰 구성을 참조하세요.

      로그 뷰 이름의 형식은 다음과 같습니다.

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

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

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

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

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

    로그 탐색기로 이동

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

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

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

  5. 적용을 클릭합니다.

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

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