감사 로깅 사용 설정

이 문서에서는 Anthos clusters on bare metal에 대해 Cloud 감사 로그를 사용 설정하고 사용하는 방법을 설명합니다. Anthos clusters on bare metal은 클러스터의 Kubernetes API 서버에 대한 호출을 시간순으로 기록하는 Kubernetes 감사 로깅을 사용합니다. 감사 로그는 의심스러운 API 요청을 조사하고 통계를 수집하는 데 유용합니다.

Cloud 감사 로그가 사용 설정되었으면 Google Cloud 프로젝트의 Cloud 감사 로그에 감사 로그가 기록됩니다. Cloud 감사 로그에 작성하면 디스크에 작성하거나 온프레미스 로깅 시스템에서 로그를 캡처하는 것보다 다양한 이점이 있습니다.

  • 모든 Anthos 클러스터의 감사 로그를 중앙화할 수 있습니다.
  • Cloud 감사 로그에 기록된 로그 항목은 변경할 수 없습니다.
  • Cloud 감사 로그 항목은 400일 동안 보관됩니다.
  • Cloud 감사 로그 기능은 Anthos 요금에 포함되어 있습니다.
  • 디스크 또는 Cloud 감사 로그에 로그를 작성하도록 베어메탈용 Anthos 클러스터를 구성할 수 있습니다.

디스크 기반 감사 로깅

기본적으로 Anthos clusters on bare metal의 감사 로그는 영구 디스크에 작성되므로 클러스터가 다시 시작되고 업그레이드되어도 로그가 사라지지 않습니다. Anthos clusters on bare metal은 감사 로그 항목을 최대 1GB까지 보관합니다.

제어 영역 노드에 로그인하여 디스크 기반 감사 로그에 액세스할 수 있습니다. 로그는 /var/log/apiserver/ 디렉터리에 있습니다.

Cloud 감사 로그

Cloud 감사 로그가 사용 설정된 경우 모든 Kubernetes API 서버의 관리자 활동 감사 로그 항목이 Google Cloud로 전송됩니다. 이러한 로그 항목은 클러스터의 프로젝트 이름과 위치에 저장됩니다. 로그 항목을 버퍼링하고 Cloud 감사 로그에 작성하기 위해 Anthos clusters on bare metal이 audit-proxy pod를 관리자 클러스터에 배포합니다. 이 Pod는 사용자 클러스터에서 사이드카 컨테이너로 사용할 수도 있습니다.

제한사항

Anthos clusters on bare metal의 Cloud 감사 로그는 미리보기 기능이며 다음 제한사항을 갖습니다.

  • 데이터 액세스 로깅은 지원되지 않습니다.
  • Kubernetes 감사 정책을 수정할 수 없습니다.
  • Cloud 감사 로그의 복원력은 확장 네트워크 중단에 대해 우수하지 않습니다. 로그 항목을 Google Cloud로 내보낼 수 없으면 10GB 디스크 버퍼에 캐시됩니다. 버퍼가 채워지면 후속 항목이 삭제됩니다.
  • 새 1.8.0 클러스터를 만들 때만 Cloud 감사 로그를 사용 설정할 수 있습니다. 업그레이드를 통해 기존 클러스터에서 Cloud 감사 로그를 사용 설정하는 것은 기능 미리보기에 대해 지원되지 않습니다.

Cloud 감사 로그의 서비스 계정 만들기

Anthos clusters on bare metal로 Cloud Logging 및 Cloud Monitoring을 사용 설정하려면 먼저 다음을 구성해야 합니다.

  1. Google Cloud 프로젝트 내에 Cloud Monitoring 작업공간이 아직 없으면 만듭니다.

    이 작업은 Google Cloud 콘솔에서 수행됩니다. 다음 버튼을 클릭하고 워크플로를 따릅니다.

    모니터링으로 이동

  2. 다음 버튼을 클릭하여 필요한 API를 사용 설정합니다.

    Anthos Audit API 사용 설정

    Stackdriver API 사용 설정

    Monitoring API 사용 설정

    Logging API 사용 설정

  3. 다음 IAM 역할을 Stackdriver 에이전트에 사용되는 서비스 계정에 할당합니다.

    • logging.logWriter
    • monitoring.metricWriter
    • stackdriver.resourceMetadata.writer
    • monitoring.dashboardEditor

클러스터를 만들 때 Cloud 감사 로그 사용 설정

Anthos clusters on bare metal에 Cloud 감사 로그를 사용하려면 일반적인 클러스터 만들기 안내를 따르지만, bmctl create cluster 명령어를 실행하기 전 클러스터 구성 파일을 다음과 같이 수정합니다.

  1. 클러스터 구성 파일에서 disableCloudAuditLogging 필드의 주석 처리를 삭제하고 다음 예시에 표시된 것처럼 false로 설정되었는지 확인합니다.

    ...
    clusterOperations:
        # Cloud project for logs and metrics.
        projectID: `PROJECT_ID`
        # Cloud location for logs and metrics.
        location: us-central1
        # Enable Cloud Audit Logging if uncommented and set to false.
        disableCloudAuditLogging: false
    ...
    

    클러스터 만들기 프로세스의 나머지는 동일합니다. 자세한 내용 및 안내 링크는 클러스터 만들기 개요를 참조하세요.

Cloud 감사 로그 액세스

콘솔

  1. Google Cloud 콘솔의 Logging 메뉴에서 로그 페이지로 이동합니다.

    로그 페이지로 이동

  2. 라벨 또는 텍스트 검색 기준 필터링 상자에서 아래쪽 화살표를 클릭하여 드롭다운 메뉴를 엽니다. 메뉴에서 고급 필터로 전환을 클릭합니다.

  3. 텍스트 상자에 다음 필터를 입력합니다.

    resource.type="k8s_cluster"
    logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity"
    protoPayload.serviceName="anthosgke.googleapis.com"
    

    PROJECT_ID를 프로젝트 ID로 바꿉니다.

  4. 필터 제출을 클릭하여 이 프로젝트에 로그인하도록 구성된 VMware용 Anthos 클러스터의 감사 로그를 모두 표시합니다.

gcloud

프로젝트의 관리자 활동 로그에서 k8s_cluster 리소스 유형에 적용되는 처음 두 로그 항목이 나열됩니다.

gcloud logging read \
    'logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity" \
    AND resource.type="k8s_cluster" \
    AND protoPayload.serviceName="anthosgke.googleapis.com" ' \
    --limit 2 \
    --freshness 300d

PROJECT_ID를 프로젝트 ID로 바꿉니다.

출력에 두 로그 항목이 표시됩니다. 각 로그 항목에서 logName 필드의 값은
projects/<var>PROJECT_ID</var>/logs/externalaudit.googleapis.com%2Factivity이고 protoPayload.serviceNameanthosgke.googleapis.com과 동일합니다.

감사 정책

Cloud 감사 로그 동작은 정적으로 구성된 Kubernetes 감사 로깅 정책에 따라 결정됩니다. 이 정책 변경은 현재 지원되지 않지만 향후 출시 버전에서 지원될 것입니다.