Request Audit
Overview
조직에서 관리하는 쿠버네티스 클러스터의 API 서버 호출 내역을 쿼리파이 프록시에서 각 호출 별로 모니터링하고 감사 로그를 기록합니다.
Request Audit 조회하기
- Administrator > Audit > Kubernetes > Request Audit 메뉴로 이동합니다.
- Executed At 당일 00:00~23:59기준으로 로그가 내림차순으로 조회됩니다.
- 테이블 좌측 상단의 검색란을 통해 이하의 조건으로 검색이 가능합니다.
- Name : 사용자 이름
- Cluster Name : 쿼리파이 상에 등록된 클러스터 이름
- 검색 필드 우측 필터 버튼을 클릭하여 AND/OR 조건으로 이하의 필터링이 가능합니다.
- Verb : 호출된 특정 쿠버네티스 API 액션
get
,list
,watch
,create
,update
,patch
,delete
,deletecollection
- Resource : 호출된 특정 쿠버네티스 리소스
pods
,pods/exec
,pods/log
,pods/portforward
,services
,ingresses
,deployments
,replicasets
,statefulsets
,daemonsets
,configmaps
,secrets
,namespaces
,nodes
,persistentvolumes
,persistentvolumeclaims
,jobs
,cronjobs
,serviceaccounts
,endpoints
,roles
,rolebindings
,clusterroles
,clusterrolebindings
,others
others
는 이외 커스텀리소스 등 해당하지 않은 항목을 필터링할 때 이용합니다.
- Executed At : 쿠버네티스 API 호출 발생 일시 범위
- 테이블 우측 상단의 새로고침 버튼을 통해 로그 목록을 최신화할 수 있습니다.
- 테이블에서 이하의 컬럼 정보를 제공합니다:
- No : 이벤트 식별 번호
- Executed At : 쿠버네티스 API 호출 발생 일시
- Result : API 호출 성공/실패 여부
- :check_mark: Success
- :cross_mark: Failure
- Name : 대상 사용자 이름
- Email : 대상 사용자 이메일
- Client IP : 사용자 클라이언트 IP 주소
- Cluster Name : 대상 쿠버네티스 클러스터명
- Role : 액션을 행사할 수 있었던 Role명
- Namespace : 대상 네임스페이스
- Verb : 호출된 특정 쿠버네티스 API 액션
- Resource : 호출된 특정 쿠버네티스 리소스
- Resource Name : 호출된 특정 쿠버네티스 리소스의 이름
- Message : API 호출 시 반환된 메시지를 기록
- 쿼리파이에서는 pods/exec와 같은 세션 로그에 대해 세션 시작과 끝 각 시간에 맞춰 총 2회 기록하고 있습니다. 이에 대한 구분은 해당 메시지를 통해 함께 구분이 가능합니다.
- Cluster Endpoint : 호출된 타겟 API 엔드포인트
- Kubernetes Groups : API 호출 시 QueryPie Proxy가 impersonate한 쿠버네티스 그룹 계정명
- Client Name : 사용자 클라이언트명/버전 (예. kubectl/v1.27.3)
Request Audit 상세 내역 조회하기
- 각 행을 클릭하면 세부 정보 조회가 가능합니다.
- 최상단에는 기본 이벤트에 따른 정보를 노출합니다:
- Result : API 호출 성공/실패 여부
- :check_mark: Success
- :cross_mark: Failure
- Executed At : 쿠버네티스 API 호출 발생 일시
- Message : API 호출 시 반환된 메시지를 기록
- Name : 대상 사용자 이름
- Email : 대상 사용자 이메일
- Client IP : 사용자 클라이언트 IP 주소
- Client Name : 사용자 클라이언트명/버전
- Cluster Name : 대상 쿠버네티스 클러스터명
- Role : 액션을 행사할 수 있었던 Role명
- Cluster Endpoint : 호출된 타겟 API 엔드포인트
- Reverse Tunnel Agent Name : Reverse Tunnel을 통해 접속된 경우, 통신에 사용된 Reverse Tunnel Agent 명
- Tag : Reverse Tunnel을 통해 접속된 경우, 통신에 사용된 Reverse Tunnel Agent를 선택하는데 사용된 Tag
- Pod Session Recording : Pod exec API로 실행 시 해당 세션에 대한 레코딩
- 세션 레코딩이 발생된 로그에 한해 해당 필드가 상세 페이지에서 조회 가능합니다.
- Pod exec API로 실행 시 해당 세션에 대한 레코딩이 진행되며, 해당 “Session Recording” 문구에 하이퍼링크가 포함됩니다.
- 링크 클릭 시 관련 세션 레코딩이 플레이됩니다.
- 중간 단에는 API 호출 내역에 따른 정보를 노출합니다:
- Verb : 호출된 특정 쿠버네티스 API 액션
- Namespace : 대상 네임스페이스
- Resource : 호출된 특정 쿠버네티스 리소스
- Resource Name : 호출된 특정 쿠버네티스 리소스의 이름
- Kubernetes Impersonated User : API 호출 시 impersonate한 쿠버네티스 사용자 계정명 (—as 정보를 표현)
- Kubernetes Impersonated Group : API 호출 시 impersonate한 쿠버네티스 그룹 계정명 (—as-group 정보를 표현)
- 하단의 Request Body 영역에는 어떠한 YAML의 컨텐츠가 API로 요청되었는지 명시하고자 합니다.
- 주로 Create, Update, Patch 내역에서 내용을 기록합니다.
- Request Body에 대한 Max Size는 최대 4KB까지만 기록하고 보관합니다.
- 4KB가 초과하는 상황이 발생했을 때, 해당 kubernetes API 호출을 그대로 처리는 지원하고, 기록은 그대로 4KB까지만 남깁니다.
- Result : API 호출 성공/실패 여부
Last updated on