6.4. Custom File Integrity Operator 구성
6.4.1. FileIntegrity 오브젝트 특성 보기
모든 Kubernetes 사용자 정의 리소스(CR)와 마찬가지로 oc explain fileintegrity
를 실행하면 다음을 사용하여 개별 특성을 볼 수 있습니다.
$ oc explain fileintegrity.spec
$ oc explain fileintegrity.spec.config
6.4.2. 중요한 특성
속성 | 설명 |
---|---|
|
해당 노드에 AIDE Pod를 예약하기 위해서는 노드의 레이블과 일치해야 하는 키-값 쌍에 대한 맵입니다. 일반적인 사용은 |
|
부울 특성입니다. |
| 사용자 정의 테인트가 있는 노드에 예약할 허용 오차를 지정합니다. 지정하지 않으면 기본 허용 오차가 적용되어 컨트롤 플레인 노드 (마스터 노드라고도 함)에서 허용 오차가 실행될 수 있습니다. |
|
AIDE 무결성 검사 사이에 일시 중지하는 시간(초)입니다. 노드에 대한 빈번한 AIDE 검사는 리소스 집약적일 수 있으므로 간격을 길게 지정하는 것이 유용할 수 있습니다. 기본값은 |
|
노드를 유지하기 위해 |
| 사용자 지정 AIDE 구성이 포함된 configMap의 이름입니다. 생략하면 기본 구성이 생성됩니다. |
| 사용자 지정 AIDE 구성이 포함된 configMap의 네임스페이스입니다. 설정되지 않은 경우 FIO는 RHCOS 시스템에 적합한 기본 구성을 생성합니다. |
|
|
6.4.3. 기본 구성 검사
기본 File Integrity Operator 구성은 FileIntegrity
CR과 동일한 이름으로 구성 맵에 저장됩니다.
프로세스
기본 구성을 검토하려면 다음을 실행합니다.
$ oc describe cm/worker-fileintegrity
6.4.4. 기본 File Integrity Operator 구성 이해
다음은 구성 맵의 aide.conf
키에서 발췌한 것입니다.
@@define DBDIR /hostroot/etc/kubernetes @@define LOGDIR /hostroot/etc/kubernetes database=file:@@{DBDIR}/aide.db.gz database_out=file:@@{DBDIR}/aide.db.gz gzip_dbout=yes verbose=5 report_url=file:@@{LOGDIR}/aide.log report_url=stdout PERMS = p+u+g+acl+selinux+xattrs CONTENT_EX = sha512+ftype+p+u+g+n+acl+selinux+xattrs /hostroot/boot/ CONTENT_EX /hostroot/root/\..* PERMS /hostroot/root/ CONTENT_EX
FileIntegrity
인스턴스의 기본 구성은 다음 디렉터리의 파일에 대한 적용 범위를 제공합니다.
-
/root
-
/boot
-
/usr
-
/etc
다음 디렉터리에는 적용되지 않습니다.
-
/var
-
/opt
-
/etc/
아래의 일부 OpenShift 관련 디렉터리는 제외됩니다.
6.4.5. 사용자 정의 AIDE 구성 제공
DBDIR
, LOGDIR
, database
, database_out
과 같은 AIDE 내부 동작을 구성하는 모든 항목을 Operator에서 덮어씁니다. Operator는 무결성 변경을 확인할 모든 경로 앞에 /hostroot/
접두사를 추가합니다. 그러면 대부분 컨테이너화된 환경에 맞게 조정되지 않고 루트 디렉터리에서 더 쉽게 시작할 수 있는 기존 AIDE 구성이 재사용됩니다.
/hostroot
는 AIDE를 실행하는 Pod에서 호스트의 파일 시스템을 마운트하는 디렉터리입니다. 구성을 변경하면 데이터베이스가 다시 초기화됩니다.
6.4.6. 사용자 정의 File Integrity Operator 구성 정의
이 예제에서는 worker-fileintegrity
CR에 제공된 기본 구성을 기반으로 컨트롤 플레인 노드 (마스터 노드라고도 함)에서 실행되는 스캐너의 사용자 정의 구성을 정의하는 데 중점을 둡니다. 이 워크플로는 데몬 세트로 실행되는 사용자 정의 소프트웨어를 배포하고 컨트롤 플레인 노드의 /opt/mydaemon
에 데이터를 저장하려는 경우 유용할 수 있습니다.
프로세스
- 기본 구성을 복사합니다.
- 확인 또는 제외해야 하는 파일을 사용하여 기본 구성을 편집합니다.
- 편집한 내용을 새 구성 맵에 저장합니다.
-
spec.config
의 특성을 통해FileIntegrity
오브젝트를 새 구성 맵으로 지정합니다. 기본 구성을 추출합니다.
$ oc extract cm/worker-fileintegrity --keys=aide.conf
그러면 편집할 수 있는
aide.conf
라는 파일이 생성됩니다. Operator에서 경로를 후처리하는 방법을 설명하기 위해 이 예제에서는 접두사 없이 제외 디렉터리를 추가합니다.$ vim aide.conf
출력 예
/hostroot/etc/kubernetes/static-pod-resources !/hostroot/etc/kubernetes/aide.* !/hostroot/etc/kubernetes/manifests !/hostroot/etc/docker/certs.d !/hostroot/etc/selinux/targeted !/hostroot/etc/openvswitch/conf.db
컨트롤 플레인 노드 관련 경로를 제외합니다.
!/opt/mydaemon/
다른 내용은
/etc
에 저장합니다./hostroot/etc/ CONTENT_EX
이 파일을 기반으로 구성 맵을 생성합니다.
$ oc create cm master-aide-conf --from-file=aide.conf
구성 맵을 참조하는
FileIntegrity
CR 매니페스트를 정의합니다.apiVersion: fileintegrity.openshift.io/v1alpha1 kind: FileIntegrity metadata: name: master-fileintegrity namespace: openshift-file-integrity spec: nodeSelector: node-role.kubernetes.io/master: "" config: name: master-aide-conf namespace: openshift-file-integrity
Operator는 제공된 구성 맵 파일을 처리하고 결과를
FileIntegrity
오브젝트와 동일한 이름의 구성 맵에 저장합니다.$ oc describe cm/master-fileintegrity | grep /opt/mydaemon
출력 예
!/hostroot/opt/mydaemon
6.4.7. 사용자 정의 파일 무결성 구성 변경
파일 무결성 구성을 변경하려면 생성된 구성 맵을 변경하지 마십시오. 대신 spec.name
, namespace
, key
특성을 통해 FileIntegrity
오브젝트에 연결된 구성 맵을 변경하십시오.