3.7. 감사 로그 수집
개별 사용자, 관리자 또는 시스템의 기타 구성 요소가 시스템에 영향을 준 활동 순서를 문서화하는 보안 관련 레코드 세트인 감사 로그를 수집할 수 있습니다.
예를 들어, 감사 로그는 자동 확장 요청이 어디에서 오는지 파악하는 데 도움이 될 수 있습니다. 이는 사용자 애플리케이션에서 보낸 자동 확장 요청으로 백엔드가 과부하될 때 중요한 정보이며, 어느 애플리케이션이 문제가 있는지 확인해야 합니다.
3.7.1. 감사 로깅 구성 링크 복사링크가 클립보드에 복사되었습니다!
KedaController
사용자 정의 리소스를 편집하여 사용자 정의 메트릭 자동 확장기 연산자에 대한 감사를 구성할 수 있습니다. 로그는 KedaController
CR의 영구 볼륨 클레임을 사용하여 보안된 볼륨의 감사 로그 파일에 전송됩니다.
사전 요구 사항
- Custom Metrics Autoscaler Operator를 설치해야 합니다.
프로세스
KedaController
사용자 정의 리소스를 편집하여auditConfig
스탠자를 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 감사 로그의 출력 형식을
레거시
또는JSON으로
지정합니다. - 2
- 로그 데이터를 저장하기 위한 기존 영구 볼륨 클레임을 지정합니다. API 서버로 들어오는 모든 요청은 이 영구 볼륨 클레임에 기록됩니다. 이 필드를 비워두면 로그 데이터가 stdout으로 전송됩니다.
- 3
- 어떤 이벤트를 기록해야 하는지, 어떤 데이터를 포함해야 하는지 지정합니다.
-
None
: 이벤트를 기록하지 마십시오. -
Metadata
: 사용자, 타임스탬프 등과 같은 요청에 대한 메타데이터만 기록합니다. 요청 텍스트와 응답 텍스트를 기록하지 마십시오. 이는 기본값입니다. -
Request
: 메타데이터와 요청 텍스트만 기록하지만 응답 텍스트는 기록하지 않습니다. 이 옵션은 리소스가 아닌 요청에는 적용되지 않습니다. -
RequestResponse
: 이벤트 메타데이터, 요청 텍스트 및 응답 텍스트입니다. 이 옵션은 리소스가 아닌 요청에는 적용되지 않습니다.
-
- 4
- 이벤트가 생성되지 않는 단계를 지정합니다.
- 5
- 요청 및 응답 본문의 관리되는 필드를 API 감사 로그에 기록하지 않을지 여부를 지정합니다.
true
로 설정하면 필드를 생략하고false로
설정하면 필드를 포함합니다. - 6
- 감사 로그의 크기와 수명을 지정합니다.
-
maxAge
: 파일 이름에 인코딩된 타임스탬프를 기준으로 감사 로그 파일을 보관하는 최대 일수입니다. -
maxBackup
: 보관할 감사 로그 파일의 최대 수. 모든 감사 로그 파일을 보존하려면0
으로 설정합니다. -
maxSize
: 감사 로그 파일이 순환되기 전의 최대 크기(MB)입니다.
-
검증
감사 로그 파일을 직접 확인하세요.
keda-metrics-apiserver-*
pod의 이름을 얻습니다.oc get pod -n openshift-keda
oc get pod -n openshift-keda
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE custom-metrics-autoscaler-operator-5cb44cd75d-9v4lv 1/1 Running 0 8m20s keda-metrics-apiserver-65c7cc44fd-rrl4r 1/1 Running 0 2m55s keda-operator-776cbb6768-zpj5b 1/1 Running 0 2m55s
NAME READY STATUS RESTARTS AGE custom-metrics-autoscaler-operator-5cb44cd75d-9v4lv 1/1 Running 0 8m20s keda-metrics-apiserver-65c7cc44fd-rrl4r 1/1 Running 0 2m55s keda-operator-776cbb6768-zpj5b 1/1 Running 0 2m55s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 유사한 명령을 사용하여 로그 데이터를 확인하세요.
oc logs keda-metrics-apiserver-<hash>|grep -i metadata
$ oc logs keda-metrics-apiserver-<hash>|grep -i metadata
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 선택 사항:
grep
명령을 사용하여 표시할 로그 수준을 지정할 수 있습니다:Metadata
,Request
,RequestResponse
.
예를 들면 다음과 같습니다.
oc logs keda-metrics-apiserver-65c7cc44fd-rrl4r|grep -i metadata
$ oc logs keda-metrics-apiserver-65c7cc44fd-rrl4r|grep -i metadata
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
... {"kind":"Event","apiVersion":"audit.k8s.io/v1","level":"Metadata","auditID":"4c81d41b-3dab-4675-90ce-20b87ce24013","stage":"ResponseComplete","requestURI":"/healthz","verb":"get","user":{"username":"system:anonymous","groups":["system:unauthenticated"]},"sourceIPs":["10.131.0.1"],"userAgent":"kube-probe/1.28","responseStatus":{"metadata":{},"code":200},"requestReceivedTimestamp":"2023-02-16T13:00:03.554567Z","stageTimestamp":"2023-02-16T13:00:03.555032Z","annotations":{"authorization.k8s.io/decision":"allow","authorization.k8s.io/reason":""}} ...
... {"kind":"Event","apiVersion":"audit.k8s.io/v1","level":"Metadata","auditID":"4c81d41b-3dab-4675-90ce-20b87ce24013","stage":"ResponseComplete","requestURI":"/healthz","verb":"get","user":{"username":"system:anonymous","groups":["system:unauthenticated"]},"sourceIPs":["10.131.0.1"],"userAgent":"kube-probe/1.28","responseStatus":{"metadata":{},"code":200},"requestReceivedTimestamp":"2023-02-16T13:00:03.554567Z","stageTimestamp":"2023-02-16T13:00:03.555032Z","annotations":{"authorization.k8s.io/decision":"allow","authorization.k8s.io/reason":""}} ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
또는 특정 로그를 볼 수 있습니다.
다음과 유사한 명령을 사용하여
keda-metrics-apiserver-*
포드에 로그인합니다.oc rsh pod/keda-metrics-apiserver-<hash> -n openshift-keda
$ oc rsh pod/keda-metrics-apiserver-<hash> -n openshift-keda
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들면 다음과 같습니다.
oc rsh pod/keda-metrics-apiserver-65c7cc44fd-rrl4r -n openshift-keda
$ oc rsh pod/keda-metrics-apiserver-65c7cc44fd-rrl4r -n openshift-keda
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /var/audit-policy/
디렉토리로 변경:cd /var/audit-policy/
sh-4.4$ cd /var/audit-policy/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용 가능한 로그를 나열하세요.
ls
sh-4.4$ ls
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
log-2023.02.17-14:50 policy.yaml
log-2023.02.17-14:50 policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 필요에 따라 로그를 확인하세요.
cat <log_name>/<pvc_name>|grep -i <log_level>
sh-4.4$ cat <log_name>/<pvc_name>|grep -i <log_level>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 선택 사항:
grep
명령을 사용하여 표시할 로그 수준을 지정할 수 있습니다:Metadata
,Request
,RequestResponse
.
예를 들면 다음과 같습니다.
cat log-2023.02.17-14:50/pvc-audit-log|grep -i Request
sh-4.4$ cat log-2023.02.17-14:50/pvc-audit-log|grep -i Request
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
... {"kind":"Event","apiVersion":"audit.k8s.io/v1","level":"Request","auditID":"63e7f68c-04ec-4f4d-8749-bf1656572a41","stage":"ResponseComplete","requestURI":"/openapi/v2","verb":"get","user":{"username":"system:aggregator","groups":["system:authenticated"]},"sourceIPs":["10.128.0.1"],"responseStatus":{"metadata":{},"code":304},"requestReceivedTimestamp":"2023-02-17T13:12:55.035478Z","stageTimestamp":"2023-02-17T13:12:55.038346Z","annotations":{"authorization.k8s.io/decision":"allow","authorization.k8s.io/reason":"RBAC: allowed by ClusterRoleBinding \"system:discovery\" of ClusterRole \"system:discovery\" to Group \"system:authenticated\""}} ...
... {"kind":"Event","apiVersion":"audit.k8s.io/v1","level":"Request","auditID":"63e7f68c-04ec-4f4d-8749-bf1656572a41","stage":"ResponseComplete","requestURI":"/openapi/v2","verb":"get","user":{"username":"system:aggregator","groups":["system:authenticated"]},"sourceIPs":["10.128.0.1"],"responseStatus":{"metadata":{},"code":304},"requestReceivedTimestamp":"2023-02-17T13:12:55.035478Z","stageTimestamp":"2023-02-17T13:12:55.038346Z","annotations":{"authorization.k8s.io/decision":"allow","authorization.k8s.io/reason":"RBAC: allowed by ClusterRoleBinding \"system:discovery\" of ClusterRole \"system:discovery\" to Group \"system:authenticated\""}} ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow