2.4. 고급 Custom File Integrity Operator 작업 수행

2.4.1. 데이터베이스 다시 초기화

File Integrity Operator에서 계획된 변경을 감지하면 데이터베이스를 다시 초기화해야 할 수 있습니다.

프로세스

  • FileIntegrity 사용자 정의 리소스(CR)에 file-integrity.openshift.io/re-init 로 주석을 답니다.

    $ oc annotate fileintegrities/worker-fileintegrity file-integrity.openshift.io/re-init=

    이전 데이터베이스 및 로그 파일이 백업되고 새 데이터베이스가 초기화됩니다. oc debug를 사용하여 생성된 Pod의 다음 출력에서 볼 수 있듯이 이전 데이터베이스 및 로그는 / etc/kubernetes 아래의 노드에 보관됩니다.

    출력 예

     ls -lR /host/etc/kubernetes/aide.*
    -rw-------. 1 root root 1839782 Sep 17 15:08 /host/etc/kubernetes/aide.db.gz
    -rw-------. 1 root root 1839783 Sep 17 14:30 /host/etc/kubernetes/aide.db.gz.backup-20200917T15_07_38
    -rw-------. 1 root root   73728 Sep 17 15:07 /host/etc/kubernetes/aide.db.gz.backup-20200917T15_07_55
    -rw-r--r--. 1 root root       0 Sep 17 15:08 /host/etc/kubernetes/aide.log
    -rw-------. 1 root root     613 Sep 17 15:07 /host/etc/kubernetes/aide.log.backup-20200917T15_07_38
    -rw-r--r--. 1 root root       0 Sep 17 15:07 /host/etc/kubernetes/aide.log.backup-20200917T15_07_55

    일부 레코드 영구성을 제공하기 위해 결과 구성 맵은 FileIntegrity 오브젝트에 속하지 않으므로 수동 정리가 필요합니다. 그 결과 FileIntegrityNodeStatus 오브젝트에 이전의 무결성 실패가 계속 표시됩니다.

2.4.2. 머신 구성 통합

OpenShift Container Platform 4에서 클러스터 노드 구성은 MachineConfig 오브젝트를 통해 제공됩니다. MachineConfig 오브젝트로 인해 파일 변경이 예상되며 이러한 변경으로 파일 무결성 검사가 실패하지 않아야 합니다. MachineConfig 오브젝트 업데이트로 인한 파일 변경을 억제하기 위해 File Integrity Operator에서 노드 오브젝트를 감시합니다. 노드가 업데이트될 때 업데이트 기간 동안 AIDE 검사가 일시 중단됩니다. 업데이트가 완료되면 데이터베이스가 다시 초기화되고 검사가 다시 시작됩니다.

이러한 일시 중지 및 재개 논리는 노드 오브젝트 주석에 반영되므로 MachineConfig API를 통한 업데이트에만 적용됩니다.

2.4.3. 데몬 세트 탐색

FileIntegrity 오브젝트는 여러 노드에 대한 검사를 나타냅니다. 검사 자체는 데몬 세트에서 관리하는 Pod에서 수행합니다.

FileIntegrity 오브젝트를 나타내는 데몬 세트를 찾으려면 다음을 실행하십시오.

$ oc get ds/aide-ds-$file-integrity-object-name

해당 데몬 세트의 Pod를 나열하려면 다음을 실행합니다.

$ oc get pods -lapp=$ds-name

단일 AIDE Pod의 로그를 보려면 Pod 중 하나에서 oc logs를 호출합니다.

출력 예

debug: aide files locked by aideLoop
running aide check
aide check returned status 0
debug: aide files unlocked by aideLoop
debug: Getting FileIntegrity openshift-file-integrity/worker-fileintegrity
Created OK configMap 'aide-ds-worker-fileintegrity-ip-10-0-128-73.eu-north-1.compute.internal'

AIDE 데몬에서 생성한 구성 맵은 보관되지 않으며 File Integrity Operator에서 처리한 후 삭제됩니다. 그러나 실패 및 오류 시에는 이러한 구성 맵의 내용이 FileIntegrityNodeStatus 오브젝트가 가리키는 구성 맵에 복사됩니다.