Kubernetes 감사 로그

Kubernetes는 감사 로그를 수집하고 기록합니다. Kubernetes 감사 기능은 클러스터의 작업 순서를 문서화하는 보안 관련 시간순 레코드 집합을 제공합니다.

JSON 표현

{
  "kind": string,
  "apiVersion": string,
  "level": string,
  "auditID": string,
  "stage": string,
  "requestURI": string,
  "verb": string,
  "user": {
    object
  },
  "sourceIPs": [
    string array
  ],
  "userAgent": string,
  "objectRef": {
    object
  },
  "requestReceivedTimestamp": string,
  "stageTimestamp": string,
  "hostname": string
}
필드
kind

string

다른 리소스의 변경사항에 따라 자동으로 생성되는 Kubernetes 객체 유형입니다. 예를 들면 "Event"입니다.

apiVersion

string

참조된 객체를 포함하는 API 그룹의 버전입니다. 예를 들면 "audit.k8s.io/v1"입니다.

level

string

이벤트가 발생한 감사 수준입니다. 예를 들면 "Metadata"입니다.

auditID

string

각 요청에 대해 생성된 고유 감사 식별 값입니다. 예를 들면 "c5f48f91-d4da-4659-97eb-56bdbcd0817c"입니다.

stage

string

이벤트 인스턴스가 생성되었을 때의 요청 처리 단계입니다. 예를 들면 "RequestReceived"입니다.

requestURI

string

클라이언트가 서버에 전송하는 요청 URI입니다. 예를 들면 "/apis/fleet.gpc.gke.io/v1/namespaces/gpc-system/fleets/root?fieldManager=kubectl-edit"입니다.

verb

string

요청과 연결된 Kubernetes 동사입니다. 리소스가 아닌 요청의 경우 이 값은 소문자 HTTP 메서드입니다.

  • "verb": "create"
  • "verb": "delete"
  • "verb": "get"
  • "verb": "list"
  • "verb": "patch"
  • "verb": "update"
  • "verb": "watch"

user

object

인증된 사용자의 사용자 이름 및 그룹에 관한 정보입니다. 예를 들면 다음과 같습니다.

{
  "username": "kubernetes-admin",
  "groups": [
    "system:masters",
    "system:authenticated"
  ]
}

sourceIPs

string array

요청이 시작된 IP와 모든 중간 프록시의 배열입니다. 소스 IP는 다음 순서가 지정된 목록에 표시됩니다.

  1. X-Forwarded-For 요청 헤더 IP
  2. X-Forwarded-For 목록에 없는 경우 X-Real-IP 헤더
  3. 여기까지 목록의 마지막 IP와 일치하지 않는 경우 연결의 원격 주소

마지막 IP를 제외한 모든 IP는 클라이언트가 임의로 설정할 수 있습니다. 예를 들면 ["10.200.0.3"]입니다.

userAgent

string

클라이언트가 보고하는 사용자 에이전트 문자열입니다. 예를 들면 "kubectl/v1.19.4 (linux/amd64) kubernetes/d360454"입니다.

objectRef

object

요청이 타겟팅하는 객체 참조에 관한 정보입니다. 예를 들면 다음과 같습니다.

{
  "resource": "fleets",
  "namespace": "gpc-system",
  "name": "root",
  "apiGroup": "fleet.gpc.gke.io",
  "apiVersion": "v1"
}

requestReceivedTimestamp

string

요청이 Kubernetes apiserver에 도달한 시간입니다. 예를 들면 "2022-05-05T05:38:57.155218Z"입니다.

stageTimestamp

string

요청이 현재 감사 단계에 도달한 시간입니다. 예를 들면 "2022-05-05T05:38:57.155218Z"입니다.

hostname

string

감사 로그 호스트의 이름입니다. 예를 들면 "audit-logs-forwarder-2k4d9"입니다.