Cloud Logging의 기본 리소스 설정 구성

이 문서에서는 Cloud Logging에 대해 기본 리소스 설정을 구성하는 방법을 설명합니다. 이러한 설정을 사용하면 새로 시스템에서 생성된 로그 버킷이 생성되는 위치, 로그 버킷에 CMEK가 필요한지 여부, _Default 로그 싱크의 구성을 제어할 수 있습니다. 조직 및 폴더에 이러한 설정을 구성할 수 있으며, 설정은 하위 리소스에 상속됩니다. Google Cloud CLI를 사용하여 Cloud Logging의 기본 리소스 설정을 구성합니다.

개요

조직 리소스는 Google Cloud 리소스 계층 구조에서 최상위 수준에 있습니다. 조직 리소스는Google Cloud 프로젝트, 폴더, 결제 계정, 관련 Logging, 로그 버킷과 같은 하위 리소스의 상위 항목입니다.

조직 및 폴더의 경우 Cloud Logging의 기본 리소스 설정을 구성할 수 있습니다. 이러한 설정을 사용하면 로그 버킷의 위치, 암호화 모델, 기본 로그 싱크의 구성을 지정할 수 있습니다. 하위 리소스는 상위 리소스의 기본 리소스 설정을 상속합니다.

Cloud Logging의 기본 리소스 설정을 사용하여 다음을 구성할 수 있습니다.

  • 리소스의 새 로그 버킷을 고객 관리 키로 암호화할지 여부 및 암호화하는 경우 암호화에 사용할 Cloud KMS 키입니다.

  • 하위 리소스에서 만든 새 _Default_Required 로그 버킷의 스토리지 위치와 로그 탐색기 또는 로그 애널리틱스 페이지에서 저장한 쿼리의 스토리지 위치입니다. 스토리지 위치를 설정하면 로그 저장 위치를 제어할 수 있습니다.

    리소스에 스토리지 위치를 지정하지만 CMEK 설정이 없는 Cloud Logging의 기본 리소스 설정이 있는 경우 리소스의 새 로그 버킷에는 CMEK가 필요하지 않습니다.

  • 리소스 내 새 프로젝트의 _Default 로그 싱크 사용 설정 여부입니다.

  • 하위 리소스 내 모든 새 _Default 싱크에 적용되는 포함 필터 또는 제외 필터입니다.

구성 예시:

  • 조직의 경우 Cloud Logging의 기본 리소스 설정에 스토리지 위치가 지정됩니다. 조직의 새 프로젝트의 경우 _Default_Required 로그 버킷이 지정된 위치에 생성됩니다. 또한 로그 탐색기 또는 로그 애널리틱스 페이지에서 저장한 쿼리도 지정된 위치에 저장됩니다. 이러한 쿼리에는 실행 후 자동으로 저장된 최근 쿼리와Google Cloud 프로젝트 구성원이 저장한 쿼리가 포함됩니다.
  • 조직의 경우 Cloud Logging의 기본 리소스 설정에 스토리지 위치가 지정됩니다. 또한 조직의 폴더에 대해 Cloud Logging의 기본 리소스 설정은 다른 스토리지 위치를 지정합니다. 폴더에 있는 새 프로젝트의 경우 _Default_Required 버킷은 폴더 설정에서 지정된 위치에 생성됩니다. 폴더에 없는 프로젝트의 경우 _Default_Required 버킷은 조직 설정에서 지정된 위치에 생성됩니다.

  • 조직의 경우 Cloud Logging의 기본 리소스 설정을 구성하여 위치와 CMEK를 지정합니다. 이름이 Non-CMEK인 폴더의 경우 Cloud Logging의 기본 리소스 설정을 구성하여 위치만 지정합니다. Non-CMEK 폴더에 없는 프로젝트를 만들면 _Default_Required 버킷은 Cloud Key Management Service 키와 동일한 위치에 생성되며 이러한 로그 버킷은 이 키로 암호화됩니다. 그러나 Non-CMEK 폴더에 새 프로젝트를 만들면 해당 폴더 설정에 지정된 위치에 로그 버킷이 생성되며 이러한 로그 버킷은 CMEK로 암호화되지 않습니다.

  • 조직의 경우 Cloud Logging의 기본 리소스 설정을 구성하여 새 _Default 싱크에 적용되는 제외 필터를 적용합니다. 필터는 데이터 액세스 감사 로그가 모든 하위 리소스의 _Default 싱크를 통해 라우팅되지 못하도록 제외하여 _Default 버킷에 데이터 액세스 감사 로그가 저장되지 않도록 합니다.

시작하기 전에

이 문서에는 Cloud Logging의 기본 리소스 설정을 CMEK 설정으로 구성하는 방법에 대한 정보가 포함되어 있지 않습니다. 해당 주제에 대한 자세한 내용은 Logging용 CMEK 구성을 참조하세요.

다음 단계를 따르세요.

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 조직 또는 폴더에 대한 Identity and Access Management 역할에 다음 Cloud Logging 권한이 포함되어 있는지 확인합니다.

    • logging.settings.get
    • logging.settings.update
  3. 로그와 쿼리를 저장할 위치를 식별합니다. 지원되는 스토리지 위치 목록은 지원되는 리전을 참조하세요.

  4. Cloud Logging의 기본 리소스 설정 보기

    Cloud Logging의 기본 리소스 설정을 보려면 gcloud logging settings describe 명령어를 사용합니다.

    폴더

     gcloud logging settings describe --folder=FOLDER_ID
    

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

    • FOLDER_ID: 폴더의 고유 숫자 식별자. 폴더 사용 방법에 대한 자세한 내용은 폴더 만들기 및 관리를 참조하세요.

    조직

    gcloud logging settings describe --organization=ORGANIZATION_ID
    

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

    • ORGANIZATION_ID: 조직의 고유한 숫자 식별자. 이 식별자를 가져오는 방법에 대한 자세한 내용은 조직 ID 가져오기를 참조하세요.

    이전 명령어는 Cloud Logging의 기본 리소스 설정에 대한 정보를 반환합니다. 다음은 응답 예시입니다.

    name: organizations/ORGANIZATION_ID/settings
    kmsKeyName: KMS_KEY_NAME
    kmsServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
    storageLocation: europe-west1
    disableDefaultSink: false
    

    SERVICE_ACCT_NAME 값은 cmek-12345 또는 service-12345@... 형식일 수 있습니다. Google Cloud CLI를 사용할 수 없으면 Cloud Logging API 메서드 getSettings를 실행하세요.

    스토리지 위치 설정

    로그 버킷은 로그 데이터를 저장하고 정리하는Google Cloud 프로젝트, 결제 계정, 폴더, 조직의 컨테이너입니다. 각 Google Cloud 프로젝트, 결제 계정, 폴더, 조직마다 Logging은 자동으로 로그 버킷 2개(_Required_Default)를 만들며 이 버킷은 global 위치에 자동으로 저장됩니다.

    조직 및 폴더의 경우 Cloud Logging의 기본 리소스 설정은 새 _Required_Default 로그 버킷이 생성되는 위치와 로그 탐색기로그 애널리틱스 페이지에서 실행되는 쿼리가 저장되는 위치를 제어합니다. 기존 쿼리 및 로그 버킷의 위치는 변경되지 않습니다.

    조직 및 폴더의 경우 Cloud Logging의 기본 리소스 설정을 구성하여 위치를 지정하면 다음이 발생합니다.

    • 조직 또는 폴더에서 생성된 새 하위 리소스의 경우 _Required_Default 버킷이 상위 항목의 기본 리소스 설정을 상속합니다.
    • 로그 탐색기 또는 로그 애널리틱스 페이지에서 실행되는 새 쿼리 및 최근 쿼리의 스토리지 위치를 지정합니다.

    Cloud Logging의 기본 리소스 설정에서 위치를 지정하는 경우 해당 위치는 사용자 정의 로그 버킷 또는 Logging API를 사용하여 저장한 쿼리에는 적용되지 않습니다.

    조직 정책 구성

    Logging은 데이터 저장 위치를 제한할 수 있는 조직 정책을 지원합니다. 이러한 정책이 조직에 존재하는 경우 정책에서 허용하는 위치에만 로그 버킷을 만들 수 있습니다.

    위치 제약조건을 지정하는 조직 정책이 있는 경우 제약조건의 정책 값에 Cloud Logging의 기본 리소스 설정에 지정된 위치가 포함되어야 합니다. Cloud Logging의 기본 리소스 설정을 업데이트하기 전에 조직 정책을 검토하고 필요한 경우 업데이트합니다.

    조직 정책을 보거나 업데이트하려면 다음을 수행하세요.

    1. Google Cloud 콘솔에서 조직 정책 페이지로 이동합니다.

      조직 정책으로 이동

      검색창을 사용하여 이 페이지를 찾은 경우 부제목이 IAM 및 관리자인 결과를 선택합니다.

    2. 조직을 선택합니다.

    3. ID가 constraints/gcp.resourceLocations인 제약조건을 확인하고 필요한 경우 업데이트합니다. 이 제약조건이 구성되지 않은 경우 업데이트가 필요하지 않습니다.

      특정 제약조건을 보고 해당 제약조건을 수정하는 방법에 대한 자세한 내용은 정책 만들기 및 수정을 참조하세요.

    새 시스템 생성 로그 버킷의 스토리지 위치 설정

    위치 설정을 지정하도록 Cloud Logging의 기본 리소스 설정을 구성하려면 gcloud logging settings update 명령어를 실행하고 --storage-location 플래그를 포함합니다.

    폴더

    gcloud logging settings update --folder=FOLDER_ID--storage-location=LOCATION
    

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

    • FOLDER_ID: 폴더의 고유 숫자 식별자. 폴더 사용 방법에 대한 자세한 내용은 폴더 만들기 및 관리를 참조하세요.
    • LOCATION: 새 _Default_Required 로그 버킷이 생성되고 쿼리가 저장되는 위치. 지원되는 위치 목록은 지원되는 리전을 참조하세요.

    조직

    gcloud logging settings update --organization=ORGANIZATION_ID --storage-location=LOCATION
    

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

    • ORGANIZATION_ID: 조직의 고유한 숫자 식별자. 이 식별자를 가져오는 방법에 대한 자세한 내용은 조직 ID 가져오기를 참조하세요.
    • LOCATION: 새 _Default_Required 로그 버킷이 생성되고 쿼리가 저장되는 위치. 지원되는 위치 목록은 지원되는 리전을 참조하세요.

    Google Cloud CLI를 사용할 수 없으면 Cloud Logging API 메서드 updateSettings를 실행하세요.

    오류 해결에 대한 자세한 내용은 새 시스템 생성 로그 버킷의 위치 설정 문제 해결을 참고하세요.

    _Default 싱크 구성

    Logging은 각Google Cloud 프로젝트, 결제 계정, 폴더, 조직 리소스에 대해 사전 정의된 _Default 싱크를 제공합니다. 포함 필터와 일치하고 제외되지 않은 리소스에서 생성되는 모든 로그는 리소스의 사전 정의된 해당 _Default 버킷으로 라우팅됩니다.

    조직 및 폴더의 경우 Cloud Logging의 기본 리소스 설정을 사용하면 _Default 싱크의 다음 동작을 구성할 수 있습니다.

    • 새 하위 리소스에 대한 _Default 싱크 생성을 중지할 수 있습니다.

    • 새 프로젝트의 _Default 싱크에 적용되는 하나의 포함 필터 또는 여러 제외 필터를 구성할 수 있습니다.

    _Default 싱크 중지

    조직 또는 폴더의 모든 새 리소스에 대한 _Default 싱크 생성을 중지할 수 있습니다. _Default 싱크를 중지하면 로그가 리소스의 _Default 버킷에 저장되지 않습니다. 리소스의 _Default 버킷에 로그 저장을 중지하면 로그가 해당 리소스의 다른 사용자 정의된 싱크에 명시적으로 포함되지 않는 한 해당 버킷으로 라우팅되었을 로그는 Logging의 스토리지에서 제외됩니다.

    리소스 및 모든 하위 리소스에 대해 _Default 싱크를 사용 중지하려면 다음 gcloud logging settings update 명령어를 실행합니다.

    폴더

    gcloud logging settings update --folder=FOLDER_ID--disable-default-sink
    

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

    • FOLDER_ID: 폴더의 고유 숫자 식별자. 폴더 사용 방법에 대한 자세한 내용은 폴더 만들기 및 관리를 참조하세요.

    조직

    gcloud logging settings update --organization=ORGANIZATION_ID --disable-default-sink
    

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

    • ORGANIZATION_ID: 조직의 고유한 숫자 식별자. 이 식별자를 가져오는 방법에 대한 자세한 내용은 조직 ID 가져오기를 참조하세요.

    disable-default-sink 플래그는 로그를 _Default 버킷에 라우팅하는 _Default 싱크에만 적용됩니다.

    다음 gcloud logging settings update 명령어를 실행하여 _Default 싱크를 다시 사용 설정할 수 있습니다.

    폴더

    gcloud logging settings update --folder=FOLDER_ID--no-disable-default-sink
    

    조직

    gcloud logging settings update --organization=ORGANIZATION_ID --no-disable-default-sink
    

    _Default 싱크의 필터 구성

    사전 정의된 _Default 싱크는 싱크 기준과 일치하는 모든 로그 항목을 해당 _Default 버킷으로 라우팅합니다. Cloud Logging API 명령어를 전송하여 _Default 싱크의 기본 제공 포함 필터를 재정의하거나 필터를 추가할 수 있습니다. _Default 싱크의 기본 제공 제외 필터가 비어 있습니다. 하지만 API 명령어를 사용하면 제외 필터를 추가할 수도 있습니다.

    조직 또는 폴더에 있는 새 리소스의 모든 _Default 싱크에 적용되는 포함 필터나 제외 필터를 지정하려면 Cloud Logging API 메서드 updateSettings를 실행하고 defaultSinkConfig 객체를 지정합니다.

    updateSettings 메서드의 참조 페이지에서 API 탐색기 위젯을 사용하여 해당 메서드를 실행할 수 있습니다. 다음 예시에서는 샘플 매개변수를 보여줍니다.

    • name(URL): organizations/ORGANIZATION_ID/settings
    • updateMask: "default_sink_config"
    • 요청 본문: Settings의 인스턴스가 포함됨

      "defaultSinkConfig": {
        {
        "filter": "NOT LOG_ID(\"externalaudit.googleapis.com/activity\") "
        "AND NOT LOG_ID(\"cloudaudit.googleapis.com/system_event\") "
        "AND NOT LOG_ID(\"externalaudit.googleapis.com/system_event\") "
        "AND NOT LOG_ID(\"cloudaudit.googleapis.com/access_transparency\") "
        "AND NOT LOG_ID(\"externalaudit.googleapis.com/access_transparency\") ",
        "exclusions": [
           {
              "name": "exclude-data-access",
              "description": "Prevents Data Access audit logs from being routed",
              "filter": "log_id(\"cloudaudit.googleapis.com/data_access\")",
           }
        ],
        "mode": OVERWRITE
        }
      }
      

    _Default 싱크의 기본 제공 포함 필터에는 관리자 활동 감사 로그가 _Default 로그 버킷으로 라우팅되지 않도록 하는 AND NOT LOG_ID("externalaudit.googleapis.com/activity") 문이 포함되어 있습니다. 앞선 예시에서는 관리자 활동 감사 로그가 _Default 로그 버킷으로 라우팅되도록 포함 필터가 변경되었습니다. 이 예시에서는 데이터 액세스 감사 로그가 _Default 버킷으로 라우팅되지 않도록 하는 제외 필터도 추가합니다. 위 예시에서 제외 필터의 이름은 exclude-data-access입니다.

    구성 오류 문제해결

    문제 해결 정보는 Cloud Logging의 CMEK 및 기본 리소스 설정 문제 해결을 참고하세요.