감사 로깅

이 페이지에서는 Kubernetes apiserver 감사 로그에 액세스하는 방법을 설명합니다.

개요

각 GKE On-Prem 클러스터에는 Kubernetes 감사 로그가 있으며 클러스터의 Kubernetes API 서버에 대한 호출을 시간순으로 기록합니다. 감사 로그는 의심스러운 API 요청을 조사하거나 통계를 수집하는 데 유용합니다.

디스크 기반 감사 로깅

기본적으로 각 API 서버의 감사 로그는 영구 디스크에 기록되므로 VM을 다시 시작하거나 업그레이드해도 로그가 사라지지 않습니다. GKE On-Prem은 감사를 최대 10GB까지 보관합니다.

Cloud Audit Logging

Cloud Audit Logging을 사용 설정하면 설치 중에 설정된 프로젝트 및 위치를 사용하여 모든 API 서버의 관리자 활동 감사 로그가 Google Cloud로 전송됩니다.

Kubernetes 감사 로그 액세스

디스크 기반 감사 로깅

관리자 클러스터를 통해서만 감사 로그에 액세스할 수 있습니다.

  1. 클러스터에서 실행 중인 Kubernetes API 서버를 확인합니다.

    kubectl get pods --all-namespaces -l component=kube-apiserver
    
  2. API 서버의 감사 로그를 다운로드합니다.

    kubectl cp -n [NAMESPACE] [APISERVER_POD_NAME]:/var/log/kube-audit/kube-apiserver-audit.log /tmp/kubeaudit.log
    

    이 명령어는 관리자 클러스터에 최대 1GB, 사용자 클러스터에 최대 850GB의 데이터를 포함할 수 있는 최신 로그 파일을 가져옵니다.

    이전 감사 기록은 별도의 파일에 보관됩니다. 이 파일을 보려면 다음을 작성합니다.

    kubectl exec -n [NAMESPACE] [APISERVER_POD_NAME] -- ls /var/log/kube-audit -la
    

    각 감사 로그의 파일 이름에는 파일이 순환된 시점을 나타내는 타임스탬프가 있습니다. 파일에는 해당 시간 및 날짜까지의 감사 로그가 포함되어 있습니다.

Cloud Audit Logging

콘솔

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

    로그 페이지로 이동

  2. 위에서 설명한 드롭다운 메뉴 바로 위의 라벨로 필터링 또는 텍스트 검색창에서 아래쪽 화살표를 클릭하여 드롭다운 메뉴를 엽니다. 메뉴에서 고급 필터로 전환을 클릭합니다.

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

    resource.type="k8s_cluster"
    logName="projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity"
    protoPayload.serviceName="anthosaudit.googleapis.com"
    
  4. 필터 제출을 클릭하여 이 프로젝트에 로그인하도록 구성된 GKE On-Prem 클러스터의 감사 로그를 모두 표시합니다.

gcloud

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

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

여기서 [PROJECT_ID]는 프로젝트 ID입니다.

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

감사 정책

감사 로깅 동작은 정적으로 구성된 Kubernetes 감사 로깅 정책에 따라 결정됩니다. 이 정책 변경은 현재 지원되지 않습니다.