설명
kube-apiserver에서 --audit-policy-file을 생략하면 감사 이벤트가 기록되지 않습니다. 로그 출력 경로만 지정하는 것으로는 충분하지 않습니다.
운영 환경에서는 어떤 리소스를 어느 수준으로 기록할지 정책으로 관리해야 합니다. 그래야 사고 대응과 감사 추적에 필요한 정보가 일관되게 남습니다.
잠재적 영향
- 중요한 API 요청이 기대한 수준으로 기록되지 않을 수 있습니다.
- 사고 조사에 필요한 사용자·시각·작업 등의 메타데이터가 누락될 수 있습니다.
- 감사 정책이 환경마다 달라져 운영 통제가 어려워질 수 있습니다.
해결 방법
- kube-apiserver에
--audit-policy-file경로를 명시하세요. - 감사 정책 파일 안에 기록 수준과 제외 대상 규칙을 정의하세요. Secret 등 민감한 요청 본문이 불필요하게 로그에 남지 않도록 하세요.
- 감사 정책과 파일 또는 웹훅 출력을 함께 구성하고 배포 후 실제 이벤트를 확인하세요.
예시
API 서버 인자 발췌입니다. 이미지는 실제 클러스터 버전에 맞추고, 예시 경로에 유효한 정책 파일을 마운트하세요. 로그 출력과 나머지 API 서버 설정은 생략했습니다.
변경 전
yaml
apiVersion: v1
kind: Pod
metadata:
name: command-demo
spec:
containers:
- name: command-demo-container
image: registry.k8s.io/kube-apiserver:v1.34.0
command: ["kube-apiserver"]
args: []
변경 후
yaml
apiVersion: v1
kind: Pod
metadata:
name: command-demo
spec:
containers:
- name: command-demo-container
image: registry.k8s.io/kube-apiserver:v1.34.0
command: ["kube-apiserver"]
args: ["--audit-policy-file=/etc/kubernetes/audit-policy.yaml"]
설명:
- 변경 전: 감사 정책 파일을 지정하지 않아 감사 이벤트가 기록되지 않습니다.
- 변경 후: 정책 파일을 지정합니다. 파일 안의 규칙과 출력 설정이 실제로 적용되는지도 확인해야 합니다.