tencent cloud

Tencent Kubernetes Engine

소식 및 공지 사항
릴리스 노트
제품 릴리스 기록
제품 소개
제품 장점
제품 아키텍처
시나리오
제품 기능
리전 및 가용존
빠른 시작
신규 사용자 가이드
표준 클러스터를 빠르게 생성
Demo
클라우드에서 컨테이너화된 애플리케이션 배포 Check List
TKE 표준 클러스터 가이드
Tencent Kubernetes Engine(TKE)
클러스터 관리
네트워크 관리
스토리지 관리
Worker 노드 소개
Kubernetes Object Management
워크로드
클라우드 네이티브 서비스 가이드
Tencent Managed Service for Prometheus
TKE Serverless 클러스터 가이드
TKE 클러스터 등록 가이드
실습 튜토리얼
Serverless 클러스터
네트워크
로그
모니터링
유지보수
DevOps
탄력적 스케일링
자주 묻는 질문
클러스터
TKE Serverless 클러스터
유지보수
서비스
이미지 레지스트리
원격 터미널

클러스터 감사

PDF
포커스 모드
폰트 크기
마지막 업데이트 시간: 2023-04-28 15:30:11
설명:
2021년 12월 31일까지 TKE Serverless 클러스터에서 생성된 감사 로그 및 이벤트 데이터는 무료입니다. 로그셋 자동 생성을 선택하거나 기존 로그셋에서 로그 토픽 자동 생성을 선택합니다.

개요

클러스터 감사는 Kubernetes Audit 기반의 기능으로 kube-apiserver에서 생성된 구성 가능한 정책으로 JSON 로그의 기록을 저장하고 검색할 수 있습니다. kube-apiserver의 액세스 이벤트와 클러스터에 영향을 미치는 각 사용자, 관리자, 시스템 애드온의 이벤트를 순차적으로 기록합니다.

기능 장점

클러스터 감사는 metrics 이외의 클러스터 모니터링 차원을 제공합니다. 활성화되면 Kubernetes는 클러스터에서 작업의 모든 감사 로그를 기록할 수 있습니다. 감사 로그는 JSON 형식의 구조화된 기록이며 metadata, requestObject 및 responseObject를 포함합니다. 메타데이터(요청을 시작한 사람, 시작된 위치 및 액세스된 URI와 같은 요청 컨텍스트 포함)는 필수이며 requestObject 및 responseObject는 감사 수준에 따라 선택 사항입니다. 로그에서 다음 정보에 대해 알아볼 수 있습니다.
클러스터에서 발생하는 이벤트.
이벤트의 발생 시간 및 객체.
이벤트 트리거 시간, 트리거 위치 및 관찰 지점.
이벤트 결과 및 후속 처리.

감사 로그 읽는 방법의 예시

{
"kind":"Event",
"apiVersion":"audit.k8s.io/v1",
"level":"RequestResponse",
"auditID":0a4376d5-307a-4e16-a049-24e017******,
"stage":"ResponseComplete",
// 무슨 일인지
"requestURI":"/apis/apps/v1/namespaces/default/deployments",
"verb":"create",
// 누가 요청을 시작했는지
"user":{
"username":"admin",
"uid":"admin",
"groups":[
"system:masters",
"system:authenticated"
]
},
// 어디에서 시작되었는지
"sourceIPs":[
"10.0.6.68"
],
"userAgent":"kubectl/v1.16.3 (linux/amd64) kubernetes/ald64d8",
// 무슨 일인지
"objectRef":{
"resource":"deployments",
"namespace":"default",
"name":"nginx-deployment",
"apiGroup":"apps",
"apiVersion":"v1"
},
// 결과는 무엇인지
"responseStatus":{
"metadata":{
},
"code":201
},
// 요청 및 응답 세부 정보
"requestObject":Object{...},
"responseObject":Object{...},
// 언제 시작 또는 종료되었는지
"requestReceivedTimestamp":"2020-04-10T10:47:34.315746Z",
"stageTimestamp":"2020-04-10T10:47:34.328942Z",
// 요청이 수락/거부되는 이유
"annotations":{
"authorization.k8s.io/decision":"allow",
"authorization.k8s.io/reason":""
}
}

TKE Serverless 클러스터 감사 정책

감사 수준(level)

일반 로그와 달리 Kubernetes 감사 로그는 일종의 verbose 구성에 가까운 수준을 가지며 기록된 정보의 세부 정도를 나타내는 데 사용됩니다. 아래와 같이 네 가지 수준이 있습니다.
매개변수
설명
None
아무것도 기록되지 않습니다.
Metadata
요청 및 응답의 메시지 본문을 제외하고 요청의 메타데이터(예: 사용자, 시간, 리소스 및 작업)가 기록됩니다.
Request
응답 메시지 본문을 제외한 메타데이터 및 요청 메시지 본문이 기록됩니다.
RequestResponse
메타데이터와 요청 및 응답의 메시지 본문을 포함하여 모든 정보가 기록됩니다.

심사 단계(stage)

로그는 아래와 같이 여러 단계에서 발생할 수 있습니다.
매개변수
설명
RequestReceived
요청이 수신되면 로그가 생성됩니다.
ResponseStarted
응답의 메시지 헤더가 전송된 후 로그가 생성됩니다. 이 매개변수는 watch와 같은 영구 연결 요청에만 적용됩니다.
ResponseComplete
응답이 완전히 전송된 후 로그가 생성됩니다.
Panic
내부 서버 오류로 인해 요청이 완료되지 않았습니다.

감사 정책

기본적으로 TKE Serverless는 요청을 받을 때 감사 로그를 생성합니다. 대부분의 작업에서 다음과 같은 경우를 제외하고 RequestResponse 수준의 감사 로그가 생성됩니다.
get, list 및 watch 요청은 Request 수준에서 기록됩니다.
secrets, configmaps 또는 tokenreviews에 대한 요청은 Metadata 수준에서 기록됩니다.
다음 요청은 기록되지 않습니다.
endpoints, services 또는 services/status를 모니터링하기 위해 system:kube-proxy에서 보낸 요청.
kube-system 네임스페이스의 configmaps에 대해 system:unsecured에서 보낸 get 요청.
nodes 또는 nodes/status에 대해 kubelet에서 보낸 get 요청.
kube-system 네임스페이스의 endpoints에 대해 system:kube-controller-manager, system:kube-scheduler 또는 system:serviceaccount:endpoint-controller에서 보낸 get 및 update 요청.
namespaces, namespaces/status 또는 namespaces/finalize 리소스에 대해 system:apiserver에서 보낸 get 요청.
/healthz* , /version 또는 /swagger*와 일치하는 URL로 전송된 요청.

작업 단계

클러스터 감사 활성화

주의사항
클러스터 감사를 활성화하려면 kube-apiserver를 다시 시작해야 합니다. 자주 활성화 및 비활성화하지 않는 것이 좋습니다.
1. TKE 콘솔에 로그인합니다.
2. 왼쪽 사이드바에서 Ops 기능 관리를 선택하고 ‘기능 관리’ 페이지로 이동합니다.
3. ‘기능 관리’ 페이지 상단에서 리전 및 ‘Serverless 클러스터’ 유형을 선택합니다.
4. 하단의 클러스터 목록에서 대상 클러스터 오른쪽의 작업 열에서 설정을 클릭합니다.
5. ‘기능 구성’ 팝업 창에서 아래와 같이 ‘클러스터 감사’ 오른쪽에 있는 편집을 클릭합니다.

6. 클러스터 감사 활성화를 선택하고 감사 로그를 저장하기 위한 로그셋 및 로그 토픽을 선택합니다. 아래와 같이 로그셋 자동 생성을 선택하는 것이 좋습니다.

7. 확인을 클릭합니다.

도움말 및 지원

문제 해결에 도움이 되었나요?

피드백