10.3. 사용자 정의 규칙을 사용하여 감사 로그 정책 구성

사용자 정의 규칙을 정의하는 감사 로그 정책을 구성할 수 있습니다. 여러 그룹을 지정하고 해당 그룹에 사용할 프로필을 정의할 수 있습니다.

이러한 사용자 정의 규칙은 최상위 프로필 필드보다 우선합니다. 사용자 지정 규칙은 위에서 아래로 평가되고 일치하는 첫 번째 규칙이 적용됩니다.

사전 요구 사항

  • cluster-admin 역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.

프로세스

  1. APIServer 리소스를 편집합니다.

    $ oc edit apiserver cluster
  2. spec.audit.customRules 필드를 추가합니다.

    apiVersion: config.openshift.io/v1
    kind: APIServer
    metadata:
    ...
    spec:
      audit:
        customRules:                        1
        - group: system:authenticated:oauth
          profile: WriteRequestBodies
        - group: system:authenticated
          profile: AllRequestBodies
        profile: Default                    2
    1
    하나 이상의 그룹을 추가하고 해당 그룹에 사용할 프로필을 지정합니다. 이러한 사용자 정의 규칙은 최상위 프로필 필드보다 우선합니다. 사용자 지정 규칙은 위에서 아래로 평가되고 일치하는 첫 번째 규칙이 적용됩니다.
    2
    Default,WriteRequestBodies,AllRequestBodies 또는 None으로 설정합니다. 이 최상위 수준의 audit.profile 필드를 설정하지 않으면 기본값은 Default 프로필이 됩니다.
    주의

    문제를 해결할 때 유용할 수 있는 데이터를 로깅하지 않는 한 None 프로필을 사용하여 감사 로깅을 비활성화하지 않는 것이 좋습니다. 감사 로깅을 비활성화하고 지원 상황이 발생하는 경우 적절하게 해결하려면 감사 로깅을 활성화하고 문제를 재현해야 할 수 있습니다.

  3. 파일을 저장하여 변경 사항을 적용합니다.

검증

  • Kubernetes API 서버 Pod의 새 버전이 출시되었는지 확인합니다. 모든 노드가 새 버전으로 업데이트되는 데 몇 분이 걸릴 수 있습니다.

    $ oc get kubeapiserver -o=jsonpath='{range .items[0].status.conditions[?(@.type=="NodeInstallerProgressing")]}{.reason}{"\n"}{.message}{"\n"}'

    Kubernetes API 서버의 NodeInstallerProgressing 상태 조건을 검토하여 모든 노드가 최신 버전인지 확인합니다. 업데이트가 성공적으로 실행되면 출력에 AllNodesAtLatestRevision이 표시됩니다.

    AllNodesAtLatestRevision
    3 nodes are at revision 12 1
    1
    이 예에서 최신 버전 번호는 12 입니다.

    출력에 다음 메시지 중 하나와 유사한 메시지가 표시되면 업데이트가 계속 진행 중입니다. 몇 분 기다린 후 다시 시도합니다.

    • 3 nodes are at revision 11; 0 nodes have achieved new revision 12
    • 2 nodes are at revision 11; 1 nodes are at revision 12