4.5. Operator를 사용하여 RHACS의 보안 클러스터 서비스 옵션 구성


Operator를 사용하여 Secured Cluster 서비스를 설치할 때 선택적 설정을 구성할 수 있습니다.

4.5.1. 보안 클러스터 서비스 구성 옵션

Central 인스턴스를 생성할 때 Operator에는 Central 사용자 정의 리소스에 대한 다음 구성 옵션이 나열됩니다.

4.5.1.1. 필수 구성 설정

매개변수설명

centralEndpoint

포트 번호를 포함하여 연결할 중앙 인스턴스의 끝점입니다. 로드 밸런서가 아닌 gRPC를 사용하는 경우 엔드포인트 주소 앞에 wss:// 를 추가하여 WebSocket 프로토콜을 사용합니다. 이 매개변수에 값을 지정하지 않으면 센서는 동일한 네임스페이스에서 실행 중인 중앙 인스턴스에 연결을 시도합니다.

clusterName

RHACS 포털에 표시되는 이 클러스터의 고유한 이름입니다. 이 매개변수를 사용하여 이름을 설정한 후에는 다시 변경할 수 없습니다. 이름을 변경하려면 오브젝트를 삭제하고 다시 생성해야 합니다.

4.5.1.2. 허용 컨트롤러 설정

매개변수설명

admissionControl.listenOnCreates

오브젝트 생성에 대한 예방 정책 시행을 활성화하려면 true 를 지정합니다. 기본값은 true입니다.

admissionControl.listenOnEvents

port-forwardexec 이벤트와 같은 Kubernetes 이벤트에 대한 모니터링 및 적용을 활성화하려면 true 를 지정합니다. Kubernetes API를 통해 리소스에 대한 액세스를 제어하는 데 사용됩니다. 기본값은 true입니다.

admissionControl.listenOnUpdates

오브젝트 업데이트에 대한 예방 정책 시행을 활성화하려면 true 를 지정합니다. Listen On Createstrue 로 설정되어 있지 않으면 효과가 없습니다. 기본값은 true입니다.

admissionControl.nodeSelector

이 구성 요소를 특정 노드에서만 실행하려면 이 매개변수를 사용하여 노드 선택기를 구성할 수 있습니다.

admissionControl.tolerations

노드 선택기가 테인트된 노드를 선택하는 경우 이 매개변수를 사용하여 Admission Control에 테인트 허용 오차 키, 값 및 효과를 지정합니다. 이 매개변수는 주로 인프라 노드에 사용됩니다.

admissionControl.hostAliases

이 매개 변수를 사용하여 호스트 및 IP 주소를 Pod의 hosts 파일에 삽입합니다.

admissionControl.resources.limits

이 매개변수를 사용하여 승인 컨트롤러의 기본 리소스 제한을 덮어씁니다.

admissionControl.resources.requests

이 매개변수를 사용하여 승인 컨트롤러의 기본 리소스 요청을 덮어씁니다.

admissionControl.bypass

다음 값 중 하나를 사용하여 승인 컨트롤러 적용 우회를 구성합니다.

  • BreakGlassAnnotationadmission.stackrox.io/break-glass 주석을 통해 승인 컨트롤러를 우회할 수 있도록 합니다.
  • 보안 클러스터에 대한 승인 컨트롤러 적용을 바이패스하는 기능을 비활성화하도록 비활성화합니다.

기본값은 BreakGlassAnnotation 입니다.

admissionControl.contactImageScanners

다음 값 중 하나를 사용하여 승인 컨트롤러가 이미지 스캐너에 연결해야 하는지 지정합니다.

  • 이미지에 대한 검사 결과가 누락된 경우 ScanIfMissing 입니다.
  • DoNotScanInline 은 승인 요청을 처리할 때 이미지 스캔을 건너뜁니다.

기본값은 DoNotScanInline 입니다.

admissionControl.timeoutSeconds

이 매개변수를 사용하여 RHACS가 실패로 표시되기 전에 승인 검토를 대기해야 하는 최대 시간(초)을 지정합니다. 승인 Webhook에서 시간 초과 기간이 종료되기 전에 요청하는 정보를 수신하지 못하면 실패하지만 열린 상태가 실패하면 작업이 성공할 수 있습니다. 예를 들어 승인 컨트롤러에서 검사가 시간 초과된 경우에도 배포를 생성할 수 있고 RHACS는 배포가 정책을 위반했는지 여부를 결정할 수 없습니다. 릴리스 4.5부터 Red Hat은 RHACS 승인 컨트롤러 Webhook의 기본 시간 초과 설정을 20초에서 10초로 줄였으므로 ValidatingWebhookConfiguration 에서 12초가 효과적으로 시간 초과되었습니다. OpenShift Container Platform은 13초에 시간 초과를 제한하므로 이 변경 사항은 OpenShift Container Platform 사용자에게 부정적인 영향을 미치지 않습니다.

4.5.1.3. 스캐너 구성

스캐너 구성 설정을 사용하여 통합 OpenShift 이미지 레지스트리의 로컬 클러스터 스캐너를 수정합니다.

매개변수설명

scanner.analyzer.nodeSelector

노드 선택기 레이블을 label-key: label-value 로 지정하여 라벨이 지정된 노드에서만 스캐너를 예약하도록 강제 적용합니다.

scanner.analyzer.tolerations

노드 선택기가 테인트된 노드를 선택하는 경우 이 매개변수를 사용하여 스캐너에 테인트 허용 오차 키, 값 및 효과를 지정합니다.

scanner.analyzer.hostAliases

이 매개 변수를 사용하여 호스트 및 IP 주소를 Pod의 hosts 파일에 삽입합니다.

scanner.analyzer.resources.requests.memory

scanner 컨테이너에 대한 메모리 요청입니다. 이 매개변수를 사용하여 기본값을 덮어씁니다.

scanner.analyzer.resources.requests.cpu

scanner 컨테이너에 대한 CPU 요청입니다. 이 매개변수를 사용하여 기본값을 덮어씁니다.

scanner.analyzer.resources.limits.memory

scanner 컨테이너의 메모리 제한입니다. 이 매개변수를 사용하여 기본값을 덮어씁니다.

scanner.analyzer.resources.limits.cpu

scanner 컨테이너의 CPU 제한입니다. 이 매개변수를 사용하여 기본값을 덮어씁니다.

scanner.analyzer.scaling.autoscaling

이 옵션을 Disabled 로 설정하면 Kubernetes의 Red Hat Advanced Cluster Security는 스캐너 배포에서 자동 스케일링을 비활성화합니다. 기본값은 Enabled 입니다.

scanner.analyzer.scaling.minReplicas

자동 스케일링을 위한 최소 복제본 수입니다. 기본값은 2입니다.

scanner.analyzer.scaling.maxReplicas

자동 스케일링을 위한 최대 복제본 수입니다. 기본값은 5 입니다.

scanner.analyzer.scaling.replicas

기본 복제본 수입니다. 기본값은 3입니다.

scanner.analyzer.tolerations

노드 선택기가 테인트된 노드를 선택하는 경우 이 매개변수를 사용하여 스캐너에 테인트 허용 오차 키, 값 및 효과를 지정합니다.

scanner.db.nodeSelector

노드 선택기 레이블을 label-key: label-value 로 지정하여 라벨이 지정된 노드에서만 스캐너 DB를 예약하도록 강제 적용합니다.

scanner.db.hostAliases

이 매개 변수를 사용하여 호스트 및 IP 주소를 Pod의 hosts 파일에 삽입합니다.

scanner.db.resources.requests.memory

scanner DB 컨테이너에 대한 메모리 요청입니다. 이 매개변수를 사용하여 기본값을 덮어씁니다.

scanner.db.resources.requests.cpu

scanner DB 컨테이너에 대한 CPU 요청입니다. 이 매개변수를 사용하여 기본값을 덮어씁니다.

scanner.db.resources.limits.memory

scanner DB 컨테이너의 메모리 제한입니다. 이 매개변수를 사용하여 기본값을 덮어씁니다.

scanner.db.resources.limits.cpu

Scanner DB 컨테이너의 CPU 제한입니다. 이 매개변수를 사용하여 기본값을 덮어씁니다.

scanner.db.tolerations

노드 선택기가 테인트된 노드를 선택하는 경우 이 매개변수를 사용하여 scanner DB에 대한 테인트 허용 오차 키, 값 및 효과를 지정합니다.

scanner.scannerComponent

이 옵션을 Disabled 로 설정하면 Red Hat Advanced Cluster Security for Kubernetes에서 스캐너 배포를 배포하지 않습니다. OpenShift Container Platform 클러스터에서 스캐너를 비활성화하지 마십시오. 기본값은 AutoSense 입니다.

scannerV4.db.nodeSelector

이 구성 요소를 특정 노드에서만 실행하려면 이 매개변수를 사용하여 노드 선택기를 구성할 수 있습니다.

scannerV4.db.tolerations

노드 선택기가 테인트된 노드를 선택하는 경우 이 매개변수를 사용하여 Scanner V4 DB에 테인트 허용 오차 키, 값 및 효과를 지정합니다. 이 매개변수는 주로 인프라 노드에 사용됩니다.

scannerV4.db.resources.limits

scanner V4 DB의 기본 리소스 제한을 덮어쓰려면 이 매개변수를 사용합니다.

scannerV4.db.resources.requests

이 매개변수를 사용하여 scanner V4 DB의 기본 리소스 요청을 덮어씁니다.

scannerV4.db.persistence.persistentVolumeClaim.claimName

scanner V4의 영구 데이터를 관리할 PVC의 이름입니다. 지정된 이름의 PVC가 없으면 생성됩니다. 설정되지 않은 경우 기본값은 scanner-v4-db 입니다. 데이터 손실을 방지하기 위해 중앙을 삭제할 때 PVC가 자동으로 제거되지 않습니다.

scannerV4.indexer.nodeSelector

이 구성 요소를 특정 노드에서만 실행하려면 이 매개변수를 사용하여 노드 선택기를 구성할 수 있습니다.

scannerV4.indexer.tolerations

노드 선택기가 테인트된 노드를 선택하는 경우 이 매개변수를 사용하여 Scanner V4 Indexer에 테인트 허용 오차 키, 값 및 효과를 지정합니다. 이 매개변수는 주로 인프라 노드에 사용됩니다.

scannerV4.indexer.resources.limits

scanner V4 Indexer의 기본 리소스 제한을 덮어쓰려면 이 매개변수를 사용합니다.

scannerV4.indexer.resources.requests

scanner V4 Indexer의 기본 리소스 요청을 덮어쓰려면 이 매개변수를 사용합니다.

scannerV4.indexer.scaling.autoScaling

활성화하면 스캐너 V4 Indexer 복제본 수가 지정된 제한 내에서 부하에 따라 동적으로 관리됩니다.

scannerV4.indexer.scaling.maxReplicas

Scanner V4 Indexer 자동 스케일링 구성에서 사용할 최대 복제본을 지정합니다.

scannerV4.indexer.scaling.minReplicas

Scanner V4 Indexer 자동 스케일링 구성에서 사용할 최소 복제본을 지정합니다.

scannerV4.indexer.scaling.replicas

scanner V4 Indexer에 대해 자동 스케일링을 비활성화하면 복제본 수는 항상 이 값과 일치하도록 구성됩니다.

scannerV4.monitoring.exposeEndpoint

scanner V4에 대한 모니터링 끝점을 구성합니다. 모니터링 끝점을 사용하면 다른 서비스에서 Prometheus 호환 형식으로 제공되는 scanner V4에서 지표를 수집할 수 있습니다. Enabled 를 사용하여 모니터링 끝점을 노출합니다. 모니터링을 활성화하면 RHACS는 포트 9090을 사용하여 새 서비스, 모니터링 및 포트에 대한 인바운드 연결을 허용하는 네트워크 정책을 생성합니다. 기본적으로 활성화되어 있지 않습니다.

scannerV4.scannerComponent

스캐너 V4를 활성화합니다. 기본값 은 disabled입니다. scanner V4를 활성화하려면 이 매개변수를 Enabled 로 설정합니다.

4.5.1.4. 이미지 구성

사용자 정의 레지스트리를 사용하는 경우 이미지 구성 설정을 사용합니다.

매개변수설명

imagePullSecrets.name

이미지 가져오기를 위해 고려해야 할 추가 이미지 풀 시크릿입니다.

4.5.1.5. 노드 설정당

노드 설정마다 클러스터를 보호하기 위해 클러스터의 각 노드에서 실행되는 구성 요소에 대한 구성 설정을 정의합니다. 이러한 구성 요소는 수집기 및 규정 준수입니다.

매개변수설명

perNode.collector.collection

시스템 수준 데이터 수집을 위한 방법입니다. 기본값은 CORE_BPF 입니다. Red Hat은 데이터 수집에 CORE_BPF 를 사용하는 것이 좋습니다. NoCollection 을 선택하면 수집기에서 네트워크 활동 및 프로세스 실행에 대한 정보를 보고하지 않습니다. 사용 가능한 옵션은 NoCollectionCORE_BPF 입니다. Cryo statPF 옵션은 4.4 및 이전 버전에서만 사용할 수 있습니다.

perNode.collector.imageFlavor

수집기에 사용할 이미지 유형입니다. 일반 또는 슬리 미로 지정할 수 있습니다. 이 값은 더 이상 사용되지 않습니다. 일반 이미지와 Slim 이미지는 동일합니다.

perNode.collector.resources.limits

이 매개변수를 사용하여 수집기의 기본 리소스 제한을 덮어씁니다.

perNode.collector.resources.requests

이 매개변수를 사용하여 수집기에 대한 기본 리소스 요청을 덮어씁니다.

perNode.compliance.resources.requests

이 매개변수를 사용하여 Compliance에 대한 기본 리소스 요청을 덮어씁니다.

perNode.compliance.resources.limits

이 매개변수를 사용하여 Compliance의 기본 리소스 제한을 덮어씁니다.

perNode.taintToleration

클러스터 활동을 포괄적으로 모니터링하기 위해 Red Hat Advanced Cluster Security for Kubernetes는 기본적으로 테인트된 노드를 포함하여 클러스터의 모든 노드에서 서비스를 실행합니다. 이 동작을 수행하지 않으려면 이 매개변수에 대해 AvoidTaints 를 지정합니다. 기본값은 TolerateTaints 입니다.

4.5.1.6. 센서 구성

이 구성은 클러스터의 한 노드에서 실행되는 센서 구성 요소의 설정을 정의합니다.

매개변수설명

sensor.nodeSelector

센서를 특정 노드에서만 실행하려면 노드 선택기를 구성할 수 있습니다.

sensor.tolerations

노드 선택기가 테인트된 노드를 선택하는 경우 이 매개변수를 사용하여 센서에 테인트 허용 키, 값 및 효과를 지정합니다. 이 매개변수는 주로 인프라 노드에 사용됩니다.

sensor.hostAliases

이 매개 변수를 사용하여 호스트 및 IP 주소를 Pod의 hosts 파일에 삽입합니다.

sensor.resources.limits

센서의 기본 리소스 제한을 덮어쓰려면 이 매개변수를 사용합니다.

sensor.resources.requests

이 매개변수를 사용하여 센서에 대한 기본 리소스 요청을 덮어씁니다.

4.5.1.7. 일반 및 기타 설정

매개변수설명

customize.annotations

중앙 배포의 사용자 지정 주석을 지정할 수 있습니다.

customize.envVars

환경 변수를 구성하는 고급 설정입니다.

egress.connectivityPolicy

Red Hat Advanced Cluster Security for Kubernetes를 온라인 또는 오프라인 모드에서 실행할지 여부를 설정합니다. 오프라인 모드에서는 취약점 정의 및 커널 모듈의 자동 업데이트가 비활성화됩니다.

misc.createSCCs

Central에 대한 SCC를 생성하려면 true 로 설정합니다. 일부 환경에서는 문제가 발생할 수 있습니다.

network.policies

네트워크 수준에서 보안을 제공하기 위해 RHACS는 보안 클러스터 리소스가 설치된 네임스페이스에 기본 NetworkPolicy 리소스를 생성합니다. 이러한 네트워크 정책을 통해 특정 포트의 특정 구성 요소에 수신할 수 있습니다. RHACS에서 이러한 정책을 생성하지 않으려면 이 매개변수를 Disabled 로 설정합니다. 기본값은 Enabled 입니다.

주의

기본 네트워크 정책 생성을 비활성화하면 RHACS 구성 요소 간 통신이 중단될 수 있습니다. 기본 정책 생성을 비활성화하는 경우 이 통신을 허용하도록 자체 네트워크 정책을 생성해야 합니다.

오버레이

"작업자가 오버레이가 있는 Operator를 사용하여 설치 사용자 지정"을 참조하십시오.

tls.additionalCAs

보안 클러스터에 대한 신뢰할 수 있는 추가 CA 인증서입니다. 이러한 인증서는 개인 인증 기관을 사용하여 서비스와 통합할 때 사용됩니다.

4.5.2. 오버레이와 함께 Operator를 사용하여 설치 사용자 정의

오버레이와 함께 Operator 방법을 사용하여 RHACS 설치를 조정하는 방법을 알아봅니다.

4.5.2.1. 오버레이

Central 또는 SecuredCluster 사용자 정의 리소스가 특정 하위 수준 구성 옵션을 매개변수로 노출하지 않는 경우 조정에 .spec.overlays 필드를 사용할 수 있습니다. 이러한 사용자 정의 리소스에서 생성한 Kubernetes 리소스를 수정하려면 이 필드를 사용합니다.

.spec.overlays 필드는 나열된 순서로 적용된 일련의 패치로 구성됩니다. 이러한 패치는 클러스터에 배포하기 전에 Kubernetes 리소스에서 Operator에서 처리합니다.

주의

CentralSecuredCluster.spec.overlays 필드를 사용하면 임의의 방식으로 하위 수준 Kubernetes 리소스를 수정할 수 있습니다. 이 기능은 SecuredCluster 또는 Central 사용자 지정 리소스를 통해 원하는 사용자 지정을 사용할 수 없는 경우에만 사용합니다.

.spec.overlays 기능에 대한 지원은 주로 구현마다 크게 다를 수 있는 Kubernetes 리소스에 대한 복잡하고 구체적인 수정을 수행할 수 있는 기능을 부여하기 때문에 제한됩니다. 이러한 수준의 사용자 지정으로 인해 표준 사용 시나리오를 벗어나는 복잡성이 있어 광범위한 지원을 제공하기가 어렵습니다. 각 수정은 고유할 수 있으며 제품의 다양한 버전 및 구성에서 예기치 않은 방식으로 Kubernetes 시스템과 상호 작용할 수 있습니다. 이러한 변동성은 이러한 사용자 정의의 안정성을 해결하고 보장하려면 각 개인의 설정에 특정한 수준의 전문 지식 및 이해가 필요하다는 것을 의미합니다. 따라서 이 기능을 사용하면 정확한 요구 사항을 충족하도록 Kubernetes 리소스를 조정할 수 있지만 특히 기본 제품을 업그레이드하거나 변경하는 동안 구성의 호환성과 안정성을 보장하는 것으로 간주해야 합니다.

다음 예제에서는 오버레이 구조를 보여줍니다.

overlays:
- apiVersion: v1     1
  kind: ConfigMap    2
  name: my-configmap 3
  patches:
    - path: .data    4
      value: |       5
        key1: data2
        key2: data2
1
대상 Kubernetes 리소스 ApiVersion (예: apps/v1,v1,networking.k8s.io/v1)
2
리소스 유형(예: 배포, ConfigMap, NetworkPolicy)
3
리소스 이름(예: my-configmap)
4
필드에 대한 JSONPath 표현식 (예: spec.template.spec.containers[name:central].env[-1])
5
새 필드 값에 대한 YAML 문자열
4.5.2.1.1. 오버레이 추가

사용자 정의의 경우 중앙 또는 SecuredCluster 사용자 정의 리소스에 오버레이를 추가할 수 있습니다. 수정을 위해 OpenShift CLI(oc) 또는 OpenShift Container Platform 웹 콘솔을 사용합니다.

오버레이가 예상대로 적용되지 않는 경우 RHACS Operator 로그에서 구문 오류 또는 기록된 문제를 확인합니다.

4.5.2.2. 오버레이 예

4.5.2.2.1. 중앙 서비스 계정의 EKS Pod 역할 ARN 지정

다음 예와 같이 EKS(Amazon Elastic Kubernetes Service) Pod 역할 ARMN(Amazon Resource Name) 주석을 중앙 ServiceAccount에 추가합니다.

apiVersion: platform.stackrox.io
kind: Central
metadata:
  name: central
spec:
  # ...
  overlays:
  - apiVersion: v1
    kind: ServiceAccount
    name: central
    patches:
      - path: metadata.annotations.eks\.amazonaws\.com/role-arn
        value: "\"arn:aws:iam:1234:role\""
4.5.2.2.2. 중앙 배포에 환경 변수 삽입

다음 예와 같이 환경 변수를 중앙 배포에 삽입합니다.

apiVersion: platform.stackrox.io
kind: Central
metadata:
  name: central
spec:
  # ...
  overlays:
  - apiVersion: apps/v1
    kind: Deployment
    name: central
    patches:
    - path: spec.template.spec.containers[name:central].env[-1]
      value: |
        name: MY_ENV_VAR
        value: value
4.5.2.2.3. 수신 규칙을 사용하여 네트워크 정책 확장

다음 예와 같이 포트 999 트래픽에 대한 allow-ext-to-central 네트워크 정책에 Ingress 규칙을 추가합니다.

apiVersion: platform.stackrox.io
kind: Central
metadata:
  name: central
spec:
    # ...
    overlays:
    - apiVersion: networking.k8s.io/v1
      kind: NetworkPolicy
      name: allow-ext-to-central
      patches:
        - path: spec.ingress[-1]
          value: |
            ports:
            - port: 999
              protocol: TCP
4.5.2.2.4. ConfigMap 데이터 수정

다음 예와 같이 central-endpoints ConfigMap 데이터를 수정합니다.

apiVersion: platform.stackrox.io
kind: Central
metadata:
  name: central
spec:
    # ...
    overlays:
    - apiVersion: v1
      kind: ConfigMap
      name: central-endpoints
      patches:
      - path: data
        value: |
          endpoints.yaml: |
            disableDefault: false
4.5.2.2.5. 중앙 배포에 컨테이너 추가

다음 예와 같이 중앙 배포에 새 컨테이너를 추가합니다.

apiVersion: platform.stackrox.io
kind: Central
metadata:
  name: central
spec:
    # ...
    overlays:
    - apiVersion: apps/v1
      kind: Deployment
      name: central
      patches:
        - path: spec.template.spec.containers[-1]
      value: |
        name: nginx
        image: nginx
        ports:
          - containerPort: 8000
            name: http
            protocol: TCP
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.