운영 체제
Red Hat Advanced Cluster Security for Kubernetes 운영
초록
1장. 대시보드 보기
RHACS(Red Hat Advanced Cluster Security for Kubernetes) 대시보드를 사용하면 필요한 데이터에 빠르게 액세스할 수 있습니다. 또한 필터링하고 사용자 정의할 수 있는 추가 탐색 바로 가기와 실행 가능한 위젯이 포함되어 있으므로 사용자에게 가장 중요한 데이터에 집중할 수 있습니다. 이미지의 환경 위험 수준, 규정 준수 상태, 정책 위반, 일반적인 취약점 및 노출(CVE)에 대한 정보를 볼 수 있습니다.
RHACS 포털을 처음 열면 대시보드가 비어 있을 수 있습니다. 하나 이상의 클러스터에 센서를 배포하면 대시보드에 환경 상태가 반영됩니다.
다음 섹션에서는 대시보드 구성 요소에 대해 설명합니다.
1.1. 상태 표시줄
상태 표시줄 은 주요 리소스에 대한 at-a-glance 숫자 카운터를 제공합니다. 카운터는 사용자 프로필과 연결된 역할에 의해 정의된 현재 액세스 범위를 사용하여 표시되는 내용을 반영합니다. 이러한 카운터는 클릭할 수 있으므로 다음과 같이 원하는 목록 보기 페이지에 빠르게 액세스할 수 있습니다.
카운터 | 대상 |
---|---|
클러스터 | 플랫폼 구성 → 클러스터 |
노드 | 구성 관리 → 애플리케이션 및 인프라 → 노드 |
위반 | 위반 기본 메뉴 |
배포 | 구성 관리 → 애플리케이션 및 인프라 → 배포 |
이미지 | 취약점 관리 → 대시보드 → 이미지 |
보안 | 구성 관리 → 애플리케이션 및 인프라 → 시크릿 |
1.2. 대시보드 필터
대시보드에는 모든 위젯에 동시에 적용되는 최상위 필터가 포함되어 있습니다. 선택한 클러스터 내에서 하나 이상의 클러스터 및 하나 이상의 네임스페이스를 선택할 수 있습니다. 선택한 클러스터 또는 네임스페이스가 없는 경우 보기가 모두 자동으로 전환됩니다. 필터에 대한 모든 변경은 모든 위젯에 즉시 반영되므로 선택한 범위로 표시되는 데이터를 제한합니다. 대시보드 필터는 상태 표시줄에 영향을 미치지 않습니다.
1.3. 위젯 옵션
일부 위젯은 특정 데이터에 집중할 수 있도록 사용자 지정할 수 있습니다. 위젯은 데이터를 정렬하고, 데이터를 필터링하고, 위젯의 출력을 사용자 지정하는 데 사용할 수 있는 다양한 컨트롤을 제공합니다.
위젯은 다양한 측면을 사용자 지정하는 두 가지 방법을 제공합니다.
- 옵션 메뉴가 있는 경우 해당 위젯에 적용할 수 있는 특정 옵션을 제공합니다.
- 동적 축 범례는 하나 이상의 축 범주를 숨기는 방식으로 데이터를 필터링하는 방법을 제공합니다.A dynamic axis legend, when present, provides a method to filter data by hide one or more of the axis categories. 예를 들어 범주 위젯별 정책 위반 에서 심각도를 클릭하여 데이터에서 선택한 심각도의 위반을 포함하거나 제외할 수 있습니다.
개별 위젯 사용자 지정 설정은 수명이 짧고 대시보드를 종료할 때 기본적으로 시스템으로 재설정됩니다.
1.4. 실행 가능한 위젯
다음 섹션에서는 대시보드에서 사용할 수 있는 실행 가능한 위젯에 대해 설명합니다.
1.4.1. 심각도별 정책 위반
이 위젯은 Dashboard-filtered 범위의 심각도 수준에서 위반되는 것을 보여줍니다. 차트에서 심각도 수준을 클릭하면 해당 심각도 및 범위에 대해 필터링된 Violations 페이지로 이동합니다. 또한 Dashboard 필터에서 정의한 범위 내에 Critical 수준 정책의 최근 세 가지 위반이 나열됩니다. 특정 위반을 클릭하면 해당 위반에 대한 위반 세부 정보 페이지로 직접 이동합니다.
1.4.2. 대부분의 위험이 있는 이미지
이 위젯에는 Dashboard-filtered 범위에서 상위 6개의 취약한 이미지를 나열하고, 계산된 위험 우선 순위에 따라 정렬되고, 포함된 중요 및 중요한 CVE 수를 나열합니다. 이미지 이름을 클릭하여 취약점 관리에서 이미지 찾기 페이지로 직접 이동합니다. 옵션 메뉴를 사용하여 수정 가능한 CVE에 집중하거나 활성 이미지에 중점을 둡니다.
대시보드 필터에서 클러스터 또는 네임스페이스를 선택하면 표시되는 데이터가 이미 활성 이미지 또는 필터링된 범위 내의 배포에서 사용하는 이미지로 필터링됩니다.
1.4.3. 대부분의 위험 배포
이 위젯은 사용자 환경에서 위험할 수 있는 주요 배포에 대한 정보를 제공합니다. 리소스 위치(클러스터 및 네임스페이스) 및 위험 우선 순위 점수와 같은 추가 정보를 표시합니다. 또한 배포를 클릭하여 배포에 대한 위험 정보(예: 정책 위반 및 취약점)를 볼 수 있습니다.
1.4.4. 오래된 이미지
이전 이미지에는 이미 해결된 취약점이 포함될 수 있으므로 보안 위험이 더 높습니다. 이전 이미지가 활성화되어 있는 경우 악용할 배포를 노출할 수 있습니다. 이 위젯을 사용하여 보안 상태를 신속하게 평가하고 잘못된 이미지를 식별할 수 있습니다. 기본 범위를 사용하거나 고유한 값으로 수명 간격을 사용자 지정할 수 있습니다. 비활성 이미지와 활성 이미지를 모두 보거나 대시보드 필터를 사용하여 활성 이미지의 특정 영역에 중점을 둘 수 있습니다. 그런 다음 이 위젯에서 나이 그룹을 클릭하여 취약점 관리 → 이미지 페이지에서 해당 이미지만 볼 수 있습니다.
1.4.5. 카테고리별 정책 위반
이 위젯은 어떤 유형의 정책이 다른 것보다 위반되는지 분석하여 보안 정책을 준수하는 데 직면하는 과제에 대한 통찰력을 얻을 수 있습니다. 위젯은 가장 관심있는 5가지 정책 범주를 보여줍니다. 데이터를 분할하는 다양한 방법은 옵션 메뉴를 살펴봅니다. 데이터를 필터링하여 배포 또는 런타임 위반에만 집중할 수 있습니다.
정렬 모드를 변경할 수도 있습니다. 기본적으로 데이터는 가장 높은 심각도 내의 위반 수에 따라 먼저 정렬됩니다. 따라서 중요한 정책이 포함된 모든 카테고리는 중요한 정책 없이 카테고리 앞에 표시됩니다. 다른 정렬 모드에서는 심각도에 관계없이 총 위반 수를 고려합니다. 일부 카테고리에는 중요한 정책(예: "Docker CIS")이 포함되어 있지 않으므로 두 정렬 모드가 크게 다른 뷰를 제공하여 추가 통찰력을 제공할 수 있습니다.
데이터에서 해당 수준을 포함하거나 제외하려면 그래프 하단에서 심각도 수준을 클릭합니다. 다른 심각도 수준을 선택하면 상위 5개 선택 또는 순위 순서가 다를 수 있습니다. 데이터는 대시보드 필터에서 선택한 범위로 필터링됩니다.
1.4.6. 표준 준수
대시보드 필터와 함께 표준 위젯을 사용하여 가장 중요한 영역에 중점을 둘 수 있습니다. 위젯은 정렬 순서에 따라 상위 또는 아래 6개의 규정 준수 벤치마크를 나열합니다. 적용 범위 백분율로 정렬할 옵션을 선택합니다. 벤치마크 레이블 또는 그래프 중 하나를 클릭하여 대시보드 범위와 선택한 벤치마크로 필터링한 Compliance Controls 페이지로 직접 이동합니다.
규정 준수 위젯은 규정 준수 검사를 실행한 후에만 세부 정보를 표시합니다.
자세한 내용은 인프라의 규정 준수 상태 확인을 참조하십시오.
2장. Red Hat Advanced Cluster Security for Kubernetes에서 Compliance Operator 사용
OpenShift Container Platform 클러스터의 규정 준수 보고 및 수정을 위해 Compliance Operator를 사용하도록 RHACS를 구성할 수 있습니다. Compliance Operator의 결과는 RHACS Compliance Dashboard에서 보고됩니다.
RHACS의 기본 규정 준수 프로필은 사용자 워크로드만 검사합니다. Compliance Operator는 나머지 OpenShift Container Platform 인프라에 적합한 규정 준수 프로필을 추가합니다. 따라서 Compliance Operator를 설치하면 완전한 환경 검사 솔루션이 제공됩니다.
Central이 설치된 클러스터에 Compliance Operator를 설치하고 규정 준수를 위해 검토하려는 각 보안 클러스터에 설치해야 합니다.
Compliance Operator는 다양한 기술 구현을 자동으로 검토하고 업계 표준, 벤치마크 및 기준선의 특정 측면과 비교합니다.
Compliance Operator는 감사자가 아닙니다. 이러한 다양한 표준을 준수하거나 인증하려면 QSA(Qualified Security Assessor), JAB( Joint Authorization Commission) 또는 기타 업계가 인정하는 규제 당국과 같은 승인된 감사인을 고용해야 합니다.
Compliance Operator는 이러한 표준과 관련된 일반적으로 사용 가능한 정보 및 관행을 기반으로 권장 사항을 제시하고 수정을 지원할 수 있지만 실제 규정 준수는 귀하의 책임이 있습니다. 표준을 준수하기 위해 권한 있는 감사자와 협력해야 합니다.
최신 업데이트는 Compliance Operator 릴리스 노트 를 참조하십시오.
2.1. Compliance Operator 설치
Operator Hub를 사용하여 Compliance Operator를 설치합니다.
프로세스
- 웹 콘솔에서 Operator → OperatorHub 페이지로 이동합니다.
- Compliance Operator 를 키워드로 필터링 상자에 입력하여 Compliance Operator를 찾습니다.
- Compliance Operator 를 선택하여 세부 정보 페이지를 확인합니다.
- Operator에 대한 정보를 읽은 다음 설치를 클릭합니다.
규정 준수 기능을 사용하는 경우 RHACS를 사용하여 검사를 예약하여 규정 준수 검사 일정을 생성할 수 있습니다.
규정 준수 기능을 사용하여 규정 준수 검사 예약에 대한 자세한 내용은 "규정 준수 스캔 사용자 지정 및 자동화"를 참조하십시오.
-
검사 일정을 생성하는 경우 Compliance Operator에서
ScanSettingBinding
을 생성할 필요가 없습니다.
추가 리소스
2.2. ScanSettingBinding 오브젝트 구성
openshift-compliance
네임스페이스에서 ScanSettingBinding
오브젝트를 생성하면 CLI(명령줄 인터페이스) 또는 UI(사용자 인터페이스)에서 cis
및 cis-node
프로필을 사용하여 클러스터를 검사할 수 있습니다.
이 예에서는 ocp4-cis
및 ocp4-cis-node
프로필을 사용하지만 OpenShift Container Platform에서는 추가 프로필을 제공합니다.
자세한 내용은 " Compliance Operator 이해"를 참조하십시오.
사전 요구 사항
- Compliance Operator를 설치했습니다.
프로세스
CLI에서
ScanSettingBinding
오브젝트를 생성하려면 다음 단계를 수행합니다.다음 콘텐츠를 사용하여
sscan.yaml
이라는 파일을 생성합니다.apiVersion: compliance.openshift.io/v1alpha1 kind: ScanSettingBinding metadata: name: cis-compliance profiles: - name: ocp4-cis-node kind: Profile apiGroup: compliance.openshift.io/v1alpha1 - name: ocp4-cis kind: Profile apiGroup: compliance.openshift.io/v1alpha1 settingsRef: name: default kind: ScanSetting apiGroup: compliance.openshift.io/v1alpha1
다음 명령을 실행하여
ScanSettingBinding
오브젝트를 생성합니다.$ oc create -f sscan.yaml -n openshift-compliance
성공하면 다음 메시지가 표시됩니다.
$ scansettingbinding.compliance.openshift.io/cis-compliance created
UI에서
ScanSettingBinding
오브젝트를 생성하려면 다음 단계를 수행합니다.-
활성 프로젝트를
openshift-compliance
로 변경합니다. - + 를 클릭하여 YAML 가져오기 페이지를 엽니다.
- 이전 예제에서 YAML을 붙여넣은 다음 생성 을 클릭합니다.
-
활성 프로젝트를
검증
RHACS에서 규정 준수 검사를 실행합니다.
규정 준수 기능을 사용하여 규정 준수 검사를 실행하는 방법에 대한 자세한 내용은 "인프라의 규정 준수 상태 확인"을 참조하십시오.
-
ocp4-cis
및ocp4-cis-node
결과가 표시되는지 확인합니다.
CLI를 사용하는 경우 대시보드 페이지에서 규정 준수 검사 결과를 볼 수 있습니다.
대시보드 페이지에서 규정 준수 검사 결과를 보는 방법에 대한 자세한 내용은 "사용자 환경 전체의 규정 준수 표준 보기"를 참조하십시오.
UI를 사용하는 경우 대시보드 및 적용 범위 페이지에서 규정 준수 검사 결과를 볼 수 있습니다.
적용 범위 페이지에서 규정 준수 검사 결과를 보는 방법에 대한 자세한 내용은 "클러스터 간 프로필 규정 준수 평가"를 참조하십시오.
3장. 컴플라이언스 관리
3.1. 컴플라이언스 기능 개요
규정 준수 기능을 사용하면 Kubernetes 클러스터가 업계 표준 및 규정 요구 사항을 준수할 수 있습니다. CIS, PCI-DSS, HIPAA 등과 같은 사전 정의된 벤치마크를 통해 클러스터를 지속적으로 모니터링할 수 있는 자동화된 규정 준수 검사를 제공합니다.
이 기능에는 관리자가 규정 준수 문제를 신속하게 식별하고 해결할 수 있도록 자세한 보고서 및 수정 지침이 포함되어 있습니다. RHACS(Red Hat Advanced Cluster Security for Kubernetes) 포털에서 규정 준수 기능을 사용하여 클러스터와 관련된 규정 준수 결과를 볼 수 있습니다.
규정 준수 기능에는 다음 섹션에 정보가 요약되어 있습니다.
이전에 Compliance 1.0 이라고 하는 대시보드 는 모든 클러스터에서 수집한 규정 준수 정보를 요약합니다. 워크로드 및 인프라 규정 준수를 지원합니다.
중요RHACS에서 규정 준수 검사를 실행하면 전체 Kubernetes 인프라 및 워크로드를 모니터링하고 필요한 표준을 충족하는지 확인할 수 있습니다. 규정 준수 대시보드를 사용하여 필터링 및 세부 보고를 사용할 수 있습니다.
자세한 내용은 워크로드 및 클러스터 규정 준수 모니터링 을 참조하십시오.
이전의 Compliance 2.0 으로 알려진 스케줄 및 지원 사항(기술 프리뷰) 에는 Compliance Operator를 사용하여 예약된 검사 후 단일 인터페이스에 규정 준수 정보가 요약되어 있습니다.
중요Compliance Operator가 설치된 Red Hat OpenShift 클러스터가 있는 경우 일정 페이지의 RHACS에서 규정 준수 검사 일정을 직접 생성하고 관리할 수 있습니다. 적용 범위 페이지에는 단일 인터페이스에서 벤치마크 및 프로필과 관련된 검사 결과가 표시됩니다.
자세한 내용은 스케줄링 규정 준수 검사 및 프로필 규정 준수 평가 (기술 프리뷰) 를 참조하십시오.
3.1.1. RHACS를 사용하여 규정 준수 평가 및 보고
대시보드 페이지에서는 다양한 보안 및 규제 프레임워크에서 적용되는 기술 제어를 통해 컨테이너화된 인프라 및 워크로드의 규정 준수를 평가하고 보고할 수 있습니다.
다음 업계 표준을 기반으로 즉시 사용 가능한 규정 준수 검사를 실행할 수 있습니다.
- Kubernetes 용 CIS(Center for Internet Security) 벤치마크
- HIPAA( Health Insurance Portability and Accountability Act )
- NIST(National Institute of Standards and Technology) 특수 발행 800-190
- NIST Special Publication 800-53
- PCI DSS( Payment Card Industry Data Security Standard )
OpenShift Compliance Operator Profiles: Compliance Operator는 OpenShift Container Platform Kubernetes API 리소스와 클러스터를 실행하는 노드의 규정 준수를 평가합니다. Compliance Operator 설치의 일부로 다양한 프로필을 사용할 수 있습니다.
사용 가능한 프로필에 대한 자세한 내용은 지원되는 규정 준수 프로필을 참조하십시오.
이러한 표준을 기반으로 환경을 스캔하면 다음을 수행할 수 있습니다.
- 규제 준수를 위해 인프라를 평가합니다.
- Kubernetes 오케스트레이터 강화.
- 환경의 전체 보안 상태를 이해하고 관리합니다.
- 클러스터, 네임스페이스 및 노드의 규정 준수 상태에 대한 자세한 개요를 확인합니다.
3.2. 워크로드 및 클러스터 규정 준수 모니터링
규정 준수 검사를 수행하면 RHACS에서 전체 인프라의 규정 준수 상태를 확인할 수 있습니다. 규정 준수 대시보드에서 결과를 보고 이를 통해 클러스터를 필터링하고 클러스터, 네임스페이스 및 노드에서 규정 준수 상태를 모니터링할 수 있습니다.
상세한 규정 준수 보고서를 생성하고 특정 표준, 제어 및 업계 벤치마크에 중점을 두어 환경의 규정 준수 상태를 추적 및 공유하고 인프라가 필요한 규정 준수 표준을 충족하는지 확인할 수 있습니다.
3.2.1. 인프라의 규정 준수 상태 확인
규정 준수 검사를 수행하면 모든 규정 준수 표준에 대해 전체 인프라의 규정 준수 상태를 확인할 수 있습니다. 규정 준수 검사를 실행하면 RHACS(Red Hat Advanced Cluster Security for Kubernetes)에서 환경의 데이터 스냅샷을 생성합니다. 데이터 스냅샷에는 경고, 이미지, 네트워크 정책, 배포 및 관련 호스트 기반 데이터가 포함됩니다.
Central은 클러스터에서 실행되는 센서에서 호스트 기반 데이터를 수집합니다. 그런 다음 중앙에서는 각 수집기 Pod에서 실행되는 규정 준수 컨테이너에서 추가 데이터를 수집합니다.
규정 준수 컨테이너는 환경에 대한 다음 데이터를 수집합니다.
- 컨테이너 데몬, 컨테이너 런타임 및 컨테이너 이미지에 대한 구성입니다.
- 컨테이너 네트워크에 대한 정보입니다.
- 컨테이너 런타임, Kubernetes 및 OpenShift Container Platform의 명령줄 인수 및 프로세스.
- 특정 파일 경로에 대한 권한.
- Kubernetes 및 OpenShift Container Platform 핵심 서비스에 대한 구성 파일입니다.
- 데이터 수집이 완료되면 중앙에서 데이터를 확인하여 결과를 확인합니다. 규정 준수 대시보드에서 결과를 보고 결과에 따라 규정 준수 보고서를 만들 수 있습니다.
다음 용어는 규정 준수 검사와 관련이 있습니다.
- Control 은 감사자가 해당 표준을 준수하기 위해 정보 시스템을 평가하는 데 사용하는 업계 또는 규제 표준의 단일 라인 항목을 설명합니다. RHACS는 하나 이상의 검사를 수행하여 단일 제어 준수의 증거를 확인합니다.
- 검사는 단일 제어 평가 중에 수행되는 단일 테스트입니다.
- 일부 컨트롤에는 연결된 여러 검사가 있습니다. 연결된 컨트롤 중 하나가 실패하면 전체 제어 상태가 Fail로 표시됩니다.
프로세스
- RHACS 포털에서 규정 준수 → 대시보드 를 클릭합니다.
선택 사항: 기본적으로 모든 표준에 대한 정보가 규정 준수 결과에 표시됩니다.
특정 표준에 대한 정보만 표시하려면 다음 단계를 수행합니다.
- 표준 관리를 클릭합니다.
- 기본적으로 모든 기준이 선택됩니다. 표시하지 않으려는 특정 표준의 확인란을 지웁니다.
저장을 클릭합니다.
선택되지 않은 표준(선택되지 않은 표준)은 위젯을 포함하여 대시보드 디스플레이에 표시되지 않습니다. 규정 준수 결과 테이블에는 대시보드에서 액세스할 수 있으며 내보내기 버튼을 사용하여 생성된 PDF 파일에서 액세스할 수 있습니다. 그러나 결과를 CSV 파일로 내보낼 때 모든 기본 표준이 포함됩니다.
검사 환경을 클릭합니다.
참고전체 환경을 스캔하는 데 약 2분이 걸립니다. 이 시간은 환경의 클러스터 및 노드 수에 따라 다를 수 있습니다.
검증
- RHACS 포털에서 구성 관리를 클릭합니다.
- CIS Kubernetes v1.5 위젯에서 Scan 을 클릭합니다.
- RHACS에는 규정 준수 검사가 진행 중임을 나타내는 메시지가 표시됩니다.
3.2.2. 환경 전체의 규정 준수 표준 보기
규정 준수 대시보드를 통해 차트 및 옵션을 포함하여 잠재적인 규정 준수 문제를 조사하는 등 환경의 모든 클러스터, 네임스페이스 및 노드의 규정 준수 표준을 간략하게 설명합니다.
개별 클러스터, 네임스페이스 또는 노드에 대한 규정 준수 검사 결과를 볼 수 있습니다. 컨테이너화된 환경의 규정 준수 상태에 대한 보고서를 생성할 수도 있습니다.
프로세스
RHACS 포털에서 규정 준수 → 대시보드를 클릭합니다.
참고규정 준수 대시보드를 처음 열면 대시보드가 비어 있습니다. 규정 준수 검사를 수행하여 대시보드를 데이터로 채웁니다.
3.2.3. 규정 준수 대시보드 개요
규정 준수 검사를 수행한 후 규정 준수 대시보드에 해당 환경의 규정 준수 상태로 결과가 표시됩니다. 대시보드에서 직접 규정 준수 위반을 볼 수 있습니다. 환경이 특정 벤치마크와 호환되는지 확인하려면 자세한 보기를 필터링하고 규정 준수 표준을 살펴봅니다.
바로 가기를 사용하여 규정 준수 대시보드 오른쪽 상단에 있는 클러스터, 네임스페이스 및 노드의 규정 준수 상태를 확인할 수 있습니다. 이러한 바로 가기를 클릭하면 규정 준수 스냅샷을 보고 클러스터, 네임스페이스 또는 노드의 전체 규정 준수에 대한 보고서를 생성할 수 있습니다.
3.2.3.1. 클러스터의 규정 준수 상태 보기
클러스터의 규정 준수 상태를 확인하여 클러스터가 필요한 규정 준수 표준을 준수하는지 모니터링하고 확인할 수 있습니다.
규정 준수 대시보드에서 모든 클러스터 또는 개별 클러스터에 대한 규정 준수 상태를 볼 수 있습니다.
프로세스
사용자 환경의 모든 클러스터에 대한 규정 준수 상태를 보려면 다음을 수행합니다.
- RHACS 포털에서 규정 준수 → 대시보드 → 클러스터 탭을 클릭합니다.
사용자 환경의 특정 클러스터에 대한 규정 준수 상태를 보려면 다음 단계를 수행합니다.
- RHACS 포털에서 규정 준수 → 대시보드 를 클릭합니다.
- 클러스터 위젯의 통과 표준을 찾습니다.
- 이 위젯에서 클러스터 이름을 클릭하여 규정 준수 상태를 확인합니다.
3.2.3.2. 네임스페이스의 규정 준수 상태 보기
네임스페이스의 규정 준수 상태를 확인하여 각 네임스페이스가 필요한 규정 준수 표준을 준수하는지 모니터링하고 확인할 수 있습니다.
규정 준수 대시보드에서 모든 네임스페이스 또는 단일 네임스페이스에 대한 규정 준수 상태를 볼 수 있습니다.
프로세스
사용자 환경의 모든 네임스페이스에 대한 규정 준수 상태를 보려면 다음을 수행합니다.
- RHACS 포털에서 규정 준수 → 대시보드 → 네임스페이스 탭을 클릭합니다.
사용자 환경의 특정 네임스페이스에 대한 규정 준수 상태를 보려면 다음 단계를 수행합니다.
- RHACS 포털에서 규정 준수 → 대시보드 → 네임스페이스 탭을 클릭합니다.
- 네임스페이스 표에서 네임스페이스를 클릭합니다. 측면 패널이 열리고 오른쪽에 있습니다.
- 측면 패널에서 네임스페이스 이름을 클릭하여 규정 준수 상태를 확인합니다.
3.2.3.3. 특정 표준에 대한 규정 준수 상태 보기
특정 표준에 대한 규정 준수 상태를 확인하면 환경이 업계 및 규정 준수 요구 사항을 준수하는지 확인할 수 있습니다.
RHACS(Red Hat Advanced Cluster Security for Kubernetes)는 쿠버네티스 규정 준수 표준을 위해 NIST, PCI DSS, NIST, HIPAA 및 CIS를 지원합니다. 단일 규정 준수 표준에 대한 모든 규정 준수 제어를 볼 수 있습니다.
프로세스
- RHACS 포털에서 규정 준수 → 대시보드 를 클릭합니다.
- 클러스터 위젯에서 통과 표준을 찾습니다.
- 해당 표준과 연결된 모든 컨트롤에 대한 정보를 보려면 표준을 클릭합니다.
추가 리소스
3.2.3.4. 특정 제어에 대한 규정 준수 상태 보기
특정 제어에 대한 규정 준수 상태를 확인하여 환경이 자세한 규정 준수 요구 사항을 충족하는지 확인할 수 있습니다.
선택한 표준에 대한 특정 제어에 대한 규정 준수 상태를 볼 수 있습니다.
프로세스
- RHACS 포털에서 규정 준수 → 대시보드 를 클릭합니다.
- 클러스터 위젯의 통과 표준을 찾습니다.
- 해당 표준과 연결된 모든 컨트롤에 대한 정보를 보려면 표준을 클릭합니다.
- Controls 표에서 컨트롤을 클릭합니다. 측면 패널이 열리고 오른쪽에 있습니다.
- 측면 패널에서 컨트롤 이름을 클릭하여 세부 정보를 확인합니다.
3.2.4. 규정 준수 대시보드에 표시되는 데이터 양 제한
규정 준수 데이터를 필터링하면 클러스터, 업계 표준, 통과 또는 실패한 제어의 하위 집합에 중점을 두고 규정 준수 대시보드에 표시되는 데이터 양을 제한할 수 있습니다.
프로세스
- RHACS 포털에서 규정 준수 → 대시보드 를 클릭합니다.
- 클러스터 , 네임스페이스 또는 노드 탭을 클릭하여 세부 정보 페이지를 엽니다.
- 검색 창에 필터링 기준을 입력한 다음 Enter 를 클릭합니다.
3.2.5. 환경의 규정 준수 상태 추적
규정 준수 보고서를 생성하면 환경의 규정 준수 상태를 추적할 수 있습니다. 이러한 보고서를 사용하여 다른 이해 관계자에게 다양한 산업상 규정 준수 상태를 전달할 수 있습니다.
다음 보고서를 생성할 수 있습니다.
- Executive는 비즈니스 측면에 중점을 두고 차트와 PDF 형식의 규정 준수 상태에 대한 요약을 포함하는 보고서 입니다.
- 기술적인 측면에 중점을 두고 있고 CSV 형식으로 자세한 정보를 포함하는 증거가 보고 됩니다.
프로세스
- RHACS 포털에서 규정 준수 → 대시보드 를 클릭합니다.
내보내기 탭을 클릭하여 다음 작업을 수행합니다.
- 핵심 보고서를 생성하려면 Download Page as PDF 를 선택합니다.
증명 보고서를 생성하려면 CSV로 Evidence 다운로드를 선택합니다.
작은 정보내보내기 옵션은 모든 규정 준수 페이지 및 필터링된 뷰에 나타납니다.
3.2.5.1. 인증 보고서
RHACS(Red Hat Advanced Cluster Security for Kubernetes)에서 CSV 형식으로 포괄적인 규정 준수 관련 데이터를 증명 보고서로 내보낼 수 있습니다. 이 증명 보고서에는 규정 준수 평가에 대한 자세한 정보가 포함되어 있으며 규정 준수 감사자, DevOps 엔지니어 또는 보안 실무자와 같은 기술 역할에 맞게 조정됩니다.
증명 보고서에는 다음 정보가 포함되어 있습니다.
CSV 필드 | 설명 |
---|---|
Standard | 규정 준수 표준(예: CIS Kubernetes). |
Cluster | 평가된 클러스터의 이름입니다. |
네임스페이스 | 배포가 존재하는 네임스페이스 또는 프로젝트의 이름입니다. |
오브젝트 유형 |
오브젝트의 Kubernetes 엔터티 유형입니다. 예를 들어 |
오브젝트 이름 |
오브젝트를 고유하게 식별하는 Kubernetes 시스템에서 생성된 문자열인 오브젝트의 이름입니다. 예를 들어 |
제어 | 규정 준수 표준에 표시되는 제어 번호입니다. |
제어 설명 | 제어가 수행되는 규정 준수 확인에 대한 설명입니다. |
상태 | 규정 준수 검사가 통과되었는지 또는 실패했는지 여부입니다. |
증명 | 특정 규정 준수 검사가 실패하거나 통과한 이유에 대한 설명입니다. |
평가 시간 | 규정 준수 검사를 실행한 시간 및 날짜입니다. |
3.2.6. 지원되는 벤치마크 버전
Red Hat Advanced Cluster Security for Kubernetes(RHACS)는 다음과 같은 업계 표준 및 규제 프레임워크에 대한 규정 준수 검사를 지원합니다.
벤치마크 | 지원되는 버전 |
---|---|
쿠버네티스를 위한 CIS 벤치마크(Center for Internet Security) | CIS Kubernetes v1.5.0 |
HIPAA(Health Insurance Portability and Accountability Act) | HIPAA 164 |
NIST (National Institute of Standards and Technology) | NIST Special Publication 800-190 및 800-53 Rev. 4 |
PCI DSS (Payment Card Industry Data Security Standard) | PCI DSS 3.2.1 |
3.3. 규정 준수 검사 예약 및 프로필 규정 준수 평가 (기술 프리뷰)
규정 준수 검사 예약 및 프로필 규정 준수 평가는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. Red Hat은 프로덕션 환경에서 사용하는 것을 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
운영 요구 사항을 충족하는 일정 페이지에서 규정 준수 검사 일정을 생성하고 관리할 수 있습니다. 동일한 클러스터에서 동일한 프로필을 검사하는 하나의 스케줄만 있을 수 있습니다.
적용 범위 페이지에서 검사 결과를 보고 필터링하면 모든 클러스터에서 규정 준수 상태를 모니터링할 수 있습니다.
3.3.1. 규정 준수 검사 사용자 정의 및 자동화
규정 준수 검사 일정을 생성하면 규정 준수 검사를 사용자 지정하고 자동화하여 운영 요구 사항에 맞게 조정할 수 있습니다.
동일한 클러스터에서 동일한 프로필을 검사하는 하나의 스케줄만 있을 수 있습니다. 즉, 단일 클러스터에서 동일한 프로필에 대해 여러 검사 일정을 생성할 수 없습니다.
사전 요구 사항
Compliance Operator를 설치했습니다.
Compliance Operator 설치 방법에 대한 자세한 내용은 "Red Hat Advanced Cluster Security for Kubernetes에서 Compliance Operator 사용"을 참조하십시오.
참고- 현재 컴플라이언스 기능과 Compliance Operator는 인프라 및 플랫폼 규정 준수만 평가합니다.
- 규정 준수 기능을 사용하려면 Compliance Operator가 실행되고 Amazon Elastic Kubernetes Service(EKS)를 지원하지 않습니다.
프로세스
- RHACS 포털에서 규정 준수 → 일정을 클릭합니다.
- 스캔 일정 생성을 클릭합니다.
스캔 일정 생성 페이지에서 다음 정보를 제공합니다.
- name: 다른 규정 준수 검사를 식별하는 이름을 입력합니다.
- Description: 각 컴플라이언스 검사의 이유를 지정합니다.
schedule : 필요한 일정에 맞게 스캔 일정을 조정합니다.
frequency: 드롭다운 목록에서 검사를 수행하려는 빈도 를 선택합니다.
다음은 검사를 수행하려는 빈도와 관련된 값입니다.
-
daily
-
weekly
-
monthly
-
요일: 목록에서 검사를 수행하려는 주 중 하나 이상의 요일을 선택합니다.
다음 값은 검사를 수행하려는 요일과 연결됩니다.
-
월요일
-
화요일
-
수요일
-
목요일
-
금요일
-
토요일
-
일요일
-
The first of the month
The middle of the month
참고이러한 값은 검사 빈도를
Weekly
또는Monthly
로 지정하는 경우에만 적용할 수 있습니다.
-
-
Time: 검사를 실행하려는
hh:mm
의 시간을 입력합니다. 표시되는 목록에서 시간을 선택합니다.
- 다음을 클릭합니다.
- 클러스터 페이지에서 검사에 포함할 하나 이상의 클러스터를 선택합니다.
- 다음을 클릭합니다.
- 프로필 페이지에서 검사에 포함할 하나 이상의 프로필을 선택합니다.
- 다음을 클릭합니다.
선택 사항: 수동으로 트리거된 보고서의 이메일 전달 대상을 구성하려면 다음 단계를 수행합니다.
참고하나 이상의 전달 대상을 추가할 수 있습니다.
- 전달 대상 추가를 확장합니다.
제공 대상 페이지에서 다음 정보를 제공합니다.
email notifier : 드롭다운 목록에서 이메일 알림기를 선택합니다.
선택 사항: 새 이메일 알림 통합 설정을 구성하려면 다음 단계를 수행합니다.
- Select a notifier 드롭다운 목록에서 이메일 알림 생성 을 클릭합니다.
이메일 알림 생성 페이지에서 다음 정보를 제공합니다.
- 통합 이름: 이메일 알림기의 고유 이름을 입력합니다. 이 이름은 이 특정 이메일 알림 구성을 식별하고 관리하는 데 도움이 됩니다.
- email server: 이메일을 보내는 데 사용할 SMTP 서버의 주소를 지정합니다.
- username: SMTP 서버의 인증에 필요한 사용자 이름을 입력합니다. 이는 종종 이메일을 보내는 데 사용되는 이메일 주소입니다.
- 암호: SMTP 사용자 이름과 연결된 암호를 입력합니다. 이 암호는 SMTP 서버의 인증에 사용됩니다.
- from: 이 주소는 일반적으로 이메일의 발신자를 나타내며 수신자에게 표시됩니다. 이는 선택 사항입니다.
- 보낸 사람: 보낸 사람 이름과 함께 표시되는 보낸 사람의 이름을 입력합니다. 이 이름은 수신자가 이메일을 보낸 사람을 식별하는 데 도움이 됩니다.
- 기본 수신자: 특정 수신자가 지정되지 않은 경우 알림을 받아야 하는 기본 이메일 주소를 입력합니다. 이렇게 하면 이메일에 대한 수신자가 항상 있게 됩니다.
- 수신자의 주석 키: 특정 배포 또는 네임스페이스와 관련된 정책 위반에 대해 알릴 수신자를 정의하려면 주석 키를 지정합니다. 이는 선택 사항입니다.
- 선택 사항: SMTP 서버에 인증이 필요하지 않은 경우 인증되지 않은 SMTP 활성화 확인란을 선택합니다. 보안상의 이유로 권장되지 않습니다.
- 선택 사항: TLS 인증서 검증을 비활성화하려면 비활성화 TLS 인증서 검증(비보안) 확인란을 선택합니다. 보안상의 이유로 권장되지 않습니다.
선택 사항: STARTTLS(TLS를 비활성화해야 함) 필드에서 드롭다운 목록에서 SMTP 서버에 대한 연결을 보호하기 위한 STARTTLS 유형을 선택합니다.
중요이 옵션을 사용하려면 TLS 인증서 검증을 비활성화해야 합니다.
다음 값은 SMTP 서버에 대한 연결을 보호하기 위한 STARTTLS 유형과 연결됩니다.
비활성화됨
데이터가 암호화되지 않습니다.
plain
사용자 이름과 암호를 base64로 인코딩합니다.
로그인
보안 향상을 위해 사용자 이름과 암호를 별도의 base64로 인코딩된 문자열로 보냅니다.
- Save Integration을 클릭합니다.
- 배포 목록: 보고서를 받아야 하는 수신자의 하나 이상의 쉼표로 구분된 이메일 주소를 입력합니다.
이메일 템플릿: 기본 템플릿이 자동으로 적용됩니다.
선택 사항: 필요에 따라 이메일 제목 및 본문을 사용자 지정하려면 다음 단계를 수행합니다.
- 연필 아이콘을 클릭합니다.
이메일 템플릿 편집 페이지에서 다음 정보를 제공합니다.
- email subject: 이메일에 원하는 제목을 입력합니다. 이 주체는 수신자의 받은 편지함에 표시되며 이메일의 목적을 명확하게 표시해야 합니다.
- 이메일 본문: 이메일의 텍스트를 작성합니다. 이는 이메일의 주요 콘텐츠이며, 동적 컨텐츠에 대한 자리 표시자 및 메시지를 효과적으로 전달하는 데 필요한 포맷을 위한 텍스트, 자리 표시자를 포함할 수 있습니다.
- 적용을 클릭합니다.
- 다음을 클릭합니다.
- 검사 구성을 검토한 다음 저장을 클릭합니다.
검증
- RHACS 포털에서 규정 준수 → 일정을 클릭합니다.
- 생성한 규정 준수 검사를 선택합니다.
- Clusters 섹션에서 Operator 상태가 정상인지 확인합니다.
선택 사항: 검사 스케줄을 편집하려면 다음 단계를 수행합니다.
- 페이지 오른쪽 상단에 있는 작업 드롭다운 목록에서 스캔 일정 편집을 선택합니다.
- 변경 사항을 적용합니다.
- 저장을 클릭합니다.
선택 사항: 검사 보고서를 수동으로 보내려면 다음을 수행합니다.
참고- 이메일 전달 대상을 구성한 경우에만 검사 보고서를 수동으로 보낼 수 있습니다.
- 컴플라이언스 보고는 Compliance Operator 버전 1.6 이상을 실행하는 클러스터에서만 사용할 수 있습니다.
페이지 오른쪽 상단에 있는 작업 드롭다운 목록에서 보고서 보내기 를 선택합니다.
보고서를 전송하도록 요청했음을 확인합니다.
선택 사항: 검사 보고서를 다운로드하려면 다음 단계를 수행합니다.
참고컴플라이언스 보고는 Compliance Operator 버전 1.6 이상을 실행하는 클러스터에서만 사용할 수 있습니다.
페이지 오른쪽 상단에 있는 작업 드롭다운 목록의 다운로드 생성 을 선택합니다.
보고서 생성이 시작되었는지 확인합니다.
- 모든 보고서 작업 탭을 클릭합니다.
- 선택 사항: 내 작업만 on으로 설정합니다.
- 생성한 보고서 작업을 찾습니다.
- 다운로드가 완료될 때까지 기다린 다음 다운로드 준비를 클릭합니다.
-
선택 사항: 보고서 작업을 삭제하려면 오버플로 메뉴
를 클릭한 다음 다운로드 삭제 를 선택합니다.
3.3.2. 컴플라이언스 검사 스케줄 분석
스케줄 페이지를 보면 생성한 규정 준수 검사 스케줄의 다양한 특성을 분석할 수 있습니다.
사전 요구 사항
규정 준수 검사 일정이 생성되어 있습니다.
규정 준수 검사 일정을 만드는 방법에 대한 자세한 내용은 "규정 준수 스캔 사용자 지정 및 자동화"를 참조하십시오.
프로세스
- RHACS 포털에서 규정 준수 → 일정을 클릭합니다.
- 선택 사항: 규정 준수 검사 일정을 오름차순 또는 내림차순으로 정렬하려면 이름 열 제목을 선택합니다.
- 생성한 규정 준수 검사를 선택합니다.
- 선택 사항: 클러스터 상태 정보를 오름차순 또는 내림차순으로 정렬하려면 클러스터 섹션에서 열 제목을 선택합니다.
선택 사항: 다른 사용자가 요청한 하나 이상의 작업의 상태를 보려면 다음을 수행합니다.
- 모든 보고서 작업 탭을 클릭합니다.
- 상태 열에서 하나 이상의 보고서 작업의 상태를 확인할 수 있습니다.
선택 사항: 모든 보고서 작업 섹션에서 정보를 재구성하는 적절한 방법을 선택합니다.
- 작업을 오름차순 또는 내림차순으로 정렬하려면 완료 열 제목을 선택합니다.
- 보고서 실행 상태를 기반으로 필터링하려면 Filter by report run states 드롭다운 목록에서 하나 이상의 상태를 선택합니다.
- 생성한 작업만 보려면 View only my jobs 를 on으로 설정합니다.
선택 사항: 보고서 작업과 관련된 작업 세부 정보를 보려면 다음 단계를 수행합니다.
- 작업 세부 정보를 볼 보고서 작업을 찾습니다.
- 작업 세부 정보를 보려면 보고서 작업을 확장합니다.
추가 리소스
3.3.3. 일정 페이지 개요
스케줄 페이지에는 모든 검사 일정이 나열되고 다음 그룹에 정보를 구성합니다.
- name: 각 검사 일정에 지정된 고유 식별자 또는 제목입니다.
- schedule: 검사의 빈도 및 타이밍을 나타냅니다.
- 마지막 스캔: 해당 일정에 대한 가장 최근 검사 날짜 및 시간을 나타냅니다.
- Clusters: 검사 일정에 포함된 클러스터를 나열합니다.
- profiles: 컴플라이언스 검사에 적용된 하나 이상의 프로필을 식별합니다.
내 마지막 작업 상태: 작업 상태를 표시합니다.
다음 값은 작업 상태와 연결됩니다.
대기 중
보고서 작업이 큐에 있습니다.
준비
보고서 작업이 처리 중입니다.
다운로드 준비
보고서가 준비되었으며 다운로드할 수 있습니다.
성공적으로 전송됨
보고서가 성공적으로 발송되었습니다.
오류
보고서 작업에 문제가 있었습니다.
없음
사용 가능한 최근 작업이 없습니다.
구성 세부 정보를 보고 규정 준수 검사와 관련된 작업 상태를 보고하려면 생성한 규정 준수 검사를 선택합니다.
3.3.3.1. 구성 세부 정보 탭
구성 세부 정보 탭에는 필수 매개변수, 클러스터 상태, 관련 프로필 및 이메일 전달 대상과 같은 검사 스케줄 정보에 대한 정보가 표시됩니다.
매개변수 섹션
Parameters 섹션은 정보를 다음 그룹으로 구성합니다.
- name: 규정 준수 검사의 고유 식별자입니다.
- description: 컴플라이언스 검사에 대한 추가 정보를 지정합니다.
- schedule: 규정 준수 검사를 실행해야 하는 시기를 지정합니다.
- 마지막 스캔: 마지막 규정 준수 검사의 타임스탬프입니다.
- 마지막 업데이트: 규정 준수 검사 데이터가 마지막으로 수정된 날짜 및 시간입니다.
클러스터 섹션
Clusters 섹션에서는 다음 그룹으로 정보를 구성합니다.
- cluster: 컴플라이언스 검사와 연결된 하나 이상의 클러스터를 나열합니다.
- Operator status: Operator의 현재 상태 또는 작동 상태를 나타냅니다.
프로필 섹션
Profiles 섹션에는 규정 준수 검사와 연결된 하나 이상의 프로필이 나열됩니다.
전달 대상 섹션
Delivery destinations 섹션은 다음 그룹으로 정보를 구성합니다.
- email notifier: 보고서 또는 경고를 배포하도록 설정된 이메일 알림 시스템 또는 도구를 지정합니다.
- 배포 목록: 알림 또는 보고서를 받아야 하는 수신자를 나열합니다.
- email template: 알림에 사용되는 이메일 형식을 지정합니다. 기본값을 사용하거나 필요에 따라 이메일 제목과 본문을 사용자 지정할 수 있습니다.
3.3.3.2. 모든 보고서 작업 탭
모든 보고서 작업 탭에는 행 확장 섹션에 표시된 완료된 작업이 포함된 각 보고서 작업의 현재 상태 및 요청자가 표시됩니다.
보고서 작업은 다음 그룹으로 구성됩니다.
- completed: 완료된 작업이 완료되었음을 나타냅니다.
Status: 각 보고서 작업의 현재 상태를 표시합니다.
다음 값은 보고서 작업 상태와 연결됩니다.
대기 중
보고서 작업이 큐에 있습니다.
준비
보고서 작업이 처리 중입니다.
다운로드 준비
보고서가 준비되었으며 다운로드할 수 있습니다.
성공적으로 전송됨
보고서가 성공적으로 발송되었습니다.
오류
보고서 작업에 문제가 있었습니다.
없음
사용 가능한 최근 작업이 없습니다.
- requester: 보고서 작업을 시작한 사용자 또는 시스템 계정을 식별합니다.
3.3.4. 클러스터 전체의 프로필 규정 준수 평가
적용 범위 페이지를 보면 클러스터 전체에서 노드 및 플랫폼 리소스의 프로필 규정 준수를 평가할 수 있습니다.
사전 요구 사항
Compliance Operator를 설치했습니다.
Compliance Operator 설치 방법에 대한 자세한 내용은 "Red Hat Advanced Cluster Security for Kubernetes에서 Compliance Operator 사용"을 참조하십시오.
참고- 현재 컴플라이언스 기능과 Compliance Operator는 인프라 및 플랫폼 규정 준수만 평가합니다.
- 규정 준수 기능을 사용하려면 Compliance Operator가 실행되고 Amazon Elastic Kubernetes Service(EKS)를 지원하지 않습니다.
규정 준수 검사 일정이 생성되어 있습니다.
규정 준수 검사 일정을 만드는 방법에 대한 자세한 내용은 "규정 준수 스캔 사용자 지정 및 자동화"를 참조하십시오.
프로세스
- RHACS 포털에서 규정 준수 → 지원 사항을 클릭합니다.
3.3.5. 적용 범위 페이지 개요
적용 범위 페이지를 보고 일정에 필터를 적용하면 모든 결과가 적절하게 필터링됩니다. 이 필터는 삭제할 때까지 모든 적용 범위 페이지에 대해 활성 상태로 유지됩니다. 단일 프로필을 기반으로 결과를 볼 수 있습니다.
토글 그룹을 사용하여 연결된 벤치마크에 따라 그룹화된 프로필을 선택할 수 있습니다. 총 검사 수와 관련하여 전달된 검사 수에 따라 규정 준수 백분율을 계산합니다.
Checks 보기에는 프로필 점검이 나열되고 규정 준수 상태를 쉽게 탐색하고 이해할 수 있습니다.
프로필 검사 정보는 다음 그룹으로 구성됩니다.
- Check: 프로필 확인의 이름입니다.
- controls: 각 검사와 관련된 다양한 컨트롤을 표시합니다.
- fail status: 실패한 검사와 주의가 필요한 검사를 표시합니다.
- pass status: 성공적으로 통과된 검사를 표시합니다.
- 수동 상태: 자동화할 수 없는 추가 조직 또는 기술 지식이 필요하기 때문에 수동 검토가 필요한 점검을 표시합니다.
- 기타 상태: 경고 또는 정보 상태 등 통과 또는 실패 이외의 상태로 검사를 표시합니다.
- 컴플라이언스: 전반적인 규정 준수 상태를 표시하고 환경이 필요한 표준을 충족하는지 확인하는 데 도움이 됩니다.
Clusters 보기에는 클러스터를 나열하고 클러스터를 효과적으로 모니터링 및 관리할 수 있습니다.
클러스터 정보는 다음 그룹으로 구성됩니다.
- cluster: 클러스터의 이름입니다.
- 마지막으로 스캔 됨: 개별 클러스터가 마지막으로 스캔된 시기를 나타냅니다.
- fail status: 검사가 실패하고 주의가 필요한 클러스터를 표시합니다.
- Pass status: 모든 검사를 성공적으로 통과한 클러스터를 표시합니다.
- 수동 상태: 자동화할 수 없는 추가 조직 또는 기술 지식이 필요하기 때문에 수동 검토가 필요한 점검을 표시합니다.
- 기타 상태: 경고 또는 정보 경고와 같이 통과 또는 실패 이외의 상태가 있는 클러스터를 표시합니다.
- 컴플라이언스: 클러스터의 전체 규정 준수 상태를 표시하고 필요한 표준을 충족하는지 확인하는 데 도움이 됩니다.
3.3.6. 클러스터 상태 모니터링 및 분석
프로필 검사 상태를 확인하여 클러스터 상태를 효율적으로 모니터링하고 분석할 수 있습니다.
Compliance Operator에서 검사 결과를 반환할 때까지 기다립니다. 이 작업을 수행하는 데 몇 분 정도 걸릴 수 있습니다.
프로세스
- RHACS 포털에서 규정 준수 → 지원 사항을 클릭합니다.
- 개별 검사의 세부 정보를 보려면 클러스터를 선택합니다.
- 선택 사항: 키워드로 필터링 상자에 프로필의 이름을 입력하여 상태를 확인합니다.
선택 사항: Compliance status 드롭다운 목록에서 검사 세부 정보를 필터링할 하나 이상의 상태를 선택합니다.
다음 값은 검사 세부 정보를 필터링하는 방법과 연결됩니다.
-
통과
-
실패
-
오류
-
정보
-
Manual
-
해당 없음
-
Inconsistent
-
3.3.7. 컴플라이언스 검사 상태 개요
규정 준수 검사 상태를 이해하면 환경의 전반적인 보안 상태를 관리할 수 있습니다.
상태 | 설명 |
---|---|
| 규정 준수 확인에 실패했습니다. |
| 규정 준수 검사가 통과되었습니다. |
| 적용되지 않았기 때문에 규정 준수 검사를 건너뛰었습니다. |
| 규정 준수 검사에서 데이터를 수집했지만 RHACS는 통과하거나 실패한 결정을 내릴 수 없었습니다. |
| 기술적인 문제로 인해 규정 준수 확인이 실패했습니다. |
| 규정 준수를 위해서는 수동 개입이 필요합니다. |
| 규정 준수 검사 데이터는 일관성이 없으며 더 밀접한 검사 및 대상 해결이 필요합니다. |
4장. 보안 위험 평가
Red Hat Advanced Cluster Security for Kubernetes는 전체 환경에서 위험을 평가하고 보안 위험에 따라 실행 중인 배포의 순위를 정합니다. 또한 즉각적인 주의가 필요한 취약점, 구성 및 런타임 활동에 대한 세부 정보도 제공합니다.
4.1. 위험 보기
위험 보기에는 정책 위반, 이미지 콘텐츠, 배포 구성 및 기타 유사한 요인을 기반으로 다단계 위험 지표로 정렬된 모든 클러스터의 모든 배포가 나열됩니다. 목록 상단에 배포하면 가장 큰 위험이 있습니다.
위험 보기에는 각 행에 대해 다음 속성이 있는 배포 목록이 표시됩니다.
- name: 배포 이름입니다.
- created: 배포 생성 시간입니다.
- cluster: 배포가 실행 중인 클러스터의 이름입니다.
- namespace: 배포가 존재하는 네임스페이스입니다.
- Priority: 심각도 및 위험 메트릭을 기반으로 하는 우선 순위입니다.
위험 보기에서 다음을 수행할 수 있습니다.
- 열 제목을 선택하여 위반을 오름차순 또는 내림차순으로 정렬합니다.
- 필터 표시줄을 사용하여 위반을 필터링합니다.
- 필터링된 기준에 따라 새 정책을 생성합니다.
배포 위험에 대한 자세한 내용을 보려면 위험 보기에서 배포를 선택합니다.
4.1.1. 위험 보기 열기
위험 관점에서 모든 위험을 분석하고 적절한 조치를 취할 수 있습니다.
프로세스
- RHACS 포털로 이동하여 탐색 메뉴에서 위험을 선택합니다.
4.2. 위험 보기에서 보안 정책 생성
위험 보기에서 배포 위험을 평가하는 동안 로컬 페이지 필터링을 적용할 때 사용 중인 필터링 기준을 기반으로 새 보안 정책을 만들 수 있습니다.
프로세스
- RHACS 포털로 이동하여 탐색 메뉴에서 위험을 선택합니다.
- 정책을 생성할 로컬 페이지 필터링 기준을 적용합니다.
- 새 정책을 선택하고 필수 필드를 입력하여 새 정책을 생성합니다.
4.2.1. Red Hat Advanced Cluster Security for Kubernetes가 필터링 기준을 정책 기준으로 변환하는 방법 이해
사용하는 필터링 기준에 따라 위험 보기에서 새 보안 정책을 생성할 때 모든 기준이 새 정책에 직접 적용되는 것은 아닙니다.
Red Hat Advanced Cluster Security for Kubernetes는 클러스터,네임스페이스 및 배포 필터를 동등한 정책 범위로 변환합니다.
위험 보기에서 로컬 페이지 필터링은 다음 방법을 사용하여 검색 용어를 결합합니다.
-
검색 용어를
OR
연산자와 동일한 범주 내에서 결합합니다. 예를 들어 검색 쿼리가Cluster:A,B
인 경우 필터는클러스터 A 또는
의 배포와 일치합니다.클러스터
B -
다른 범주의 검색 용어를
AND
연산자와 결합합니다. 예를 들어 검색 쿼리가Cluster:A+Namespace:Z
인 경우 필터는클러스터 A
및네임스페이스 Z
의 배포와 일치합니다.
-
검색 용어를
정책에 여러 범위를 추가하면 정책은 해당 범위의 위반과 일치합니다.
-
예를 들어
(Cluster A OR Cluster B) 및 (Namespace Z)
를 검색하는 경우 두 개의 정책 범위(Cluster=A AND Namespace=Z)
또는(Cluster=B AND Namespace=Z)
입니다.
-
예를 들어
- Red Hat Advanced Cluster Security for Kubernetes는 정책 기준에 직접 매핑되지 않고 삭제된 필터를 보고하는 필터를 삭제하거나 수정합니다.
다음 표에는 필터링 검색 속성이 정책 기준에 매핑되는 방법이 나열되어 있습니다.
검색 속성 | 정책 기준 |
---|---|
기능 추가 | 기능 추가 |
주석 | 허용되지 않는 주석 |
CPU 코어 제한 | 컨테이너 CPU 제한 |
CPU 코어 요청 | 컨테이너 CPU 요청 |
CVE | CVE |
CVE 게시됨 | Cryostat dropped |
CVE Sno Cryostated | Cryostat dropped |
CVSS | CVSS |
Cluster | Cryostat 범위로 변환됨 |
Component | 이미지 구성 요소(이름) |
구성 요소 버전 | 이미지 구성 요소(버전) |
Deployment | Cryostat 범위로 변환됨 |
배포 유형 | Cryostat dropped |
Dockerfile 지침 키워드 | Dockerfile 라인(키) |
Dockerfile 명령 값 | Dockerfile 라인(값) |
드롭 기능 | Cryostat dropped |
환경 키 | 환경 변수(키) |
환경 값 | 환경 변수(값) |
환경 변수 소스 | 환경 변수(소스) |
노출된 노드 포트 | Cryostat dropped |
서비스 노출 | Cryostat dropped |
서비스 포트 노출 | Cryostat dropped |
노출 수준 | 포트 노출 |
외부 호스트 이름 | Cryostat dropped |
외부 IP | Cryostat dropped |
이미지 | Cryostat dropped |
이미지 명령 | Cryostat dropped |
이미지 생성 시간 | 이미지가 생성된 이후 일수 |
이미지 Entrypoint | Cryostat dropped |
이미지 라벨 | 허용되지 않는 이미지 라벨 |
이미지 OS | 이미지 OS |
이미지 가져오기 시크릿 | Cryostat dropped |
이미지 레지스트리 | 이미지 레지스트리 |
이미지 원격 이미지 | 이미지 원격 이미지 |
이미지 검사 시간 | 이미지가 마지막으로 스캔된 이후의 일 |
이미지 태그 | 이미지 태그 |
이미지 상위 CVSS | Cryostat dropped |
이미지 사용자 | Cryostat dropped |
이미지 볼륨 | Cryostat dropped |
레이블 | Cryostat 범위로 변환됨 |
최대 노출 수준 | Cryostat dropped |
메모리 제한(MB) | 컨테이너 메모리 제한 |
메모리 요청(MB) | 컨테이너 메모리 요청 |
네임스페이스 | Cryostat 범위로 변환됨 |
네임스페이스 ID | Cryostat dropped |
Pod 라벨 | Cryostat dropped |
포트 | 포트 |
포트 프로토콜 | 프로토콜 |
우선 순위 | Cryostat dropped |
privileged | privileged |
프로세스 Ancestor | 프로세스 Ancestor |
프로세스 인수 | 프로세스 인수 |
프로세스 이름 | 프로세스 이름 |
프로세스 경로 | Cryostat dropped |
프로세스 태그 | Cryostat dropped |
프로세스 UID | 프로세스 UID |
읽기 전용 루트 파일 시스템 | 읽기 전용 루트 파일 시스템 |
Secret | Cryostat dropped |
시크릿 경로 | Cryostat dropped |
서비스 계정 | Cryostat dropped |
서비스 계정 권한 수준 | 최소 RBAC 권한 수준 |
허용 오차 키 | Cryostat dropped |
허용 오차 값 | Cryostat dropped |
볼륨 대상 | 볼륨 대상 |
볼륨 이름 | 볼륨 이름 |
볼륨 읽기 전용 | 쓰기 가능한 볼륨 |
볼륨 소스 | 볼륨 소스 |
볼륨 유형 | 볼륨 유형 |
4.3. 위험 세부 정보 보기
위험 보기에서 배포를 선택하면 오른쪽 패널에서 위험 세부 정보가 열립니다. 위험 세부 정보 패널에는 여러 탭으로 그룹화된 세부 정보가 표시됩니다.
4.3.1. 위험 지표 탭
위험 세부 정보 패널의 위험 지표 탭에서는 발견된 위험을 설명합니다.
위험 지표 탭에는 다음 섹션이 포함되어 있습니다.
- 정책 위반: 선택한 배포에 대해 위반하는 정책의 이름입니다.
- 의심 스러운 프로세스 실행: 프로세스가 실행된 순환 프로세스, 인수 및 컨테이너 이름을 지정합니다.
- Image Vulnerabilities: CVSS 점수와 함께 총 CVE를 포함한 이미지
- 서비스 구성: RW(읽기-쓰기) 기능, 기능이 삭제되었는지 여부, 권한 있는 컨테이너의 존재와 같이 문제가 있는 구성을 지정합니다.
- Service Reachability: 클러스터 내부 또는 외부에 노출되는 컨테이너 포트입니다.
- 구성 요소는 공격자 가 자주 사용하는 탐지된 소프트웨어 도구에 사용됩니다.
- 이미지의 구성 요소 수: 각 이미지에 있는 패키지 수입니다.
-
Image Freshness: 이미지 이름과 나이(예:
285일)입니다
. - RBAC 구성: Kubernetes 역할 기반 액세스 제어(RBAC)의 배포에 부여된 권한 수준입니다.
모든 섹션이 Risk Indicators 탭에 표시되지는 않습니다. Red Hat Advanced Cluster Security for Kubernetes는 선택한 배포에 영향을 미치는 관련 섹션만 표시합니다.
4.4. 배포 세부 정보 탭
Deployment Risk 패널의 Deployment Details 탭에 있는 섹션에서는 더 많은 정보를 제공하므로 검색된 위험을 해결하는 방법에 대한 적절한 결정을 내릴 수 있습니다.
4.4.1. 개요 섹션
개요 섹션에는 다음에 대한 세부 정보가 표시됩니다.
- Deployment ID: 배포에 대한 영숫자 식별자입니다.
- namespace: 배포가 존재하는 Kubernetes 또는 OpenShift Container Platform 네임스페이스입니다.
- updated: 배포가 업데이트된 시점의 타임스탬프입니다.
-
배포 유형: 배포 유형(예:
Deployment
또는DaemonSet
)입니다. - replicas: 이 배포에 배포된 Pod 수입니다.
- labels: Kubernetes 또는 OpenShift Container Platform 애플리케이션에 연결된 키-값 레이블입니다.
- cluster: 배포가 실행 중인 클러스터의 이름입니다.
- annotations: 배포에 대한 Kubernetes 주석입니다.
- 서비스 계정: Pod에서 실행되는 프로세스의 ID를 나타냅니다. 서비스 계정을 통해 프로세스가 인증되면 Kubernetes API 서버에 연결하여 클러스터 리소스에 액세스할 수 있습니다. Pod에 서비스 계정이 할당되지 않은 경우 기본 서비스 계정을 가져옵니다.
4.4.2. 컨테이너 구성 섹션
컨테이너 구성 섹션에는 다음에 대한 세부 정보가 표시됩니다.
- Image Name: 배포된 이미지의 이름입니다.
Resources
- CPU 요청(코어): 컨테이너에서 요청한 CPU 수입니다.
- CPU 제한(코어): 컨테이너에서 사용할 수 있는 최대 CPU 수입니다.
- 메모리 요청(MB): 컨테이너에서 요청한 메모리 크기입니다.
- 메모리 제한(MB): 컨테이너가 종료하지 않고 사용할 수 있는 최대 메모리 양입니다.
mounts
- name: 마운트의 이름입니다.
- Source: 마운트의 데이터가 들어오는 경로입니다.
- destination: 마운트 데이터가 이동하는 경로입니다.
- type: 마운트의 유형입니다.
- secrets: 배포에 사용되는 Kubernetes 시크릿의 이름 및 X.509 인증서인 시크릿 값에 대한 기본 세부 정보입니다.
4.4.3. 보안 컨텍스트 섹션
보안 컨텍스트 섹션에는 다음에 대한 세부 정보가 표시됩니다.
-
privileged: 컨테이너에 권한이 있는 경우
true
를 나열합니다.
4.5. 프로세스 검색 탭
Process Discovery (프로세스 검색) 탭에는 배포 시 요약된 환경의 각 컨테이너에서 실행된 모든 바이너리의 포괄적인 목록이 있습니다.
프로세스 검색 탭에는 다음에 대한 세부 정보가 표시됩니다.
- 바이너리 이름: 실행된 바이너리의 이름입니다.
- container: 프로세스가 실행되는 배포의 컨테이너입니다.
- arguments: 바이너리와 함께 전달된 특정 인수입니다.
- Time: 지정된 컨테이너에서 바이너리가 실행된 가장 최근의 날짜와 시간입니다.
- Pod ID: 컨테이너가 상주하는 Pod의 식별자입니다.
- UID: 프로세스가 실행되는 Linux 사용자 ID입니다.
필터 표시줄에서 Process Name:<name
> 쿼리를 사용하여 특정 프로세스를 찾습니다.
4.5.1. 이벤트 타임라인 섹션
Process Discovery 탭의 이벤트 타임라인 섹션에는 선택한 배포에 대한 이벤트 개요가 있습니다. 정책 위반, 프로세스 활동, 컨테이너 종료 또는 재시작 이벤트 수를 표시합니다.
이벤트 타임라인 을 선택하여 자세한 내용을 볼 수 있습니다.
이벤트 타임라인 모달 상자에는 선택한 배포에 대한 모든 Pod에 대한 이벤트가 표시됩니다.
타임라인의 이벤트는 다음과 같이 분류됩니다.
- 프로세스 활동
- 정책 위반
- 컨테이너 재시작
- 컨테이너 종료
이벤트는 타임라인에 아이콘으로 표시됩니다. 이벤트에 대한 자세한 내용을 보려면 이벤트 아이콘 위에 마우스 포인터를 유지합니다. 세부 정보가 툴팁에 표시됩니다.
- 범례 표시를 클릭하여 이벤트 유형에 해당하는 아이콘을 확인합니다.
- 내보내기 → PDF 다운로드 또는 내보내기 → CSV 다운로드를 선택하여 이벤트 타임라인 정보를 다운로드합니다.
- 타임라인에 표시되는 이벤트 유형을 필터링하려면 모두 표시 드롭다운 메뉴를 선택합니다.
- 선택한 Pod의 각 컨테이너에 대해 이벤트를 별도로 보려면 확장 아이콘을 클릭합니다.
타임라인의 모든 이벤트는 하단의 Minimap 컨트롤에도 표시됩니다. Minimap은 이벤트 타임라인에 표시되는 이벤트 수를 제어합니다. 타임라인에 표시된 이벤트를 Minimap의 강조 표시된 영역을 수정하여 변경할 수 있습니다. 이렇게 하려면 강조 표시된 영역을 왼쪽 또는 오른쪽(또는 둘 다)에서 감소한 다음 강조 표시된 영역을 드래그합니다.
컨테이너가 다시 시작되면 Kubernetes용 Red Hat Advanced Cluster Security:
-
Pod의 각 컨테이너에 대해 컨테이너 종료에 대한 정보와 최대 10개의 비활성 컨테이너 인스턴스에 대한 이벤트를 재시작합니다. 예를 들어 두 개의 컨테이너
앱
및사이드카
가 있는 Pod의 경우 Kubernetes용 Red Hat Advanced Cluster Security는 최대 10개의앱
인스턴스와 최대 10개의사이드카
인스턴스에 대한 활동을 유지합니다. - 컨테이너의 이전 인스턴스와 연결된 프로세스 활동을 추적하지 않습니다.
-
Pod의 각 컨테이너에 대해 컨테이너 종료에 대한 정보와 최대 10개의 비활성 컨테이너 인스턴스에 대한 이벤트를 재시작합니다. 예를 들어 두 개의 컨테이너
- Red Hat Advanced Cluster Security for Kubernetes는 각 pod에 대한 각 (프로세스 이름, 프로세스 인수, UID) 튜플의 최신 실행만 표시합니다.
- Red Hat Advanced Cluster Security for Kubernetes는 활성 Pod에 대한 이벤트만 표시합니다.
-
Red Hat Advanced Cluster Security for Kubernetes는 쿠버네티스 및 수집기에서 보고한 시간에 따라 보고된 타임스탬프를 조정합니다. Kubernetes 타임스탬프는 두 번째 기반 전체 비율을 사용하며 시간을 가장 가까운 초로 반올림합니다. 그러나 수집기는 더 정확한 타임스탬프를 사용합니다. 예를 들어 Kubernetes에서 컨테이너 시작 시간을
10:54:48
으로 보고하고 수집기에서10:54:47.5349823
에서 시작된 해당 컨테이너의 프로세스를 보고하는 경우 Kubernetes의 Red Hat Advanced Cluster Security는 컨테이너 시작 시간을10:54:47.5349823
으로 조정합니다.
4.6. 프로세스 기준 사용
인프라 보안에 대한 프로세스 기본 설정을 사용하여 위험을 최소화할 수 있습니다. 이 접근 방식을 통해 Red Hat Advanced Cluster Security for Kubernetes는 먼저 기존 프로세스를 검색하고 기준을 생성합니다. 그런 다음 기본 거부 모드에서 작동하며 기준선에 나열된 프로세스만 실행할 수 있습니다.
프로세스 기준
Red Hat Advanced Cluster Security for Kubernetes를 설치할 때 기본 프로세스 기준이 없습니다. Red Hat Advanced Cluster Security for Kubernetes는 배포를 검색하므로 배포의 모든 컨테이너 유형에 대한 프로세스 기준을 생성합니다. 그런 다음 검색된 모든 프로세스를 자체 프로세스 기준선에 추가합니다.
프로세스 기준 상태
프로세스 검색 단계에서 모든 기준선은 잠금 해제 상태에 있습니다.
잠금 해제된 상태에서 다음을 수행합니다.
- Red Hat Advanced Cluster Security for Kubernetes가 새 프로세스를 발견하면 프로세스 기준선에 해당 프로세스를 추가합니다.
- 프로세스는 위험으로 표시되지 않으며 위반을 트리거하지 않습니다.
Red Hat Advanced Cluster Security for Kubernetes가 배포의 컨테이너에서 첫 번째 프로세스 표시기를 수신한 후 프로세스 검색 단계를 완료합니다. 이 시점에서 다음을 수행합니다.
- Red Hat Advanced Cluster Security for Kubernetes는 프로세스 기준선에 프로세스 추가를 중지합니다.
- 프로세스 기준선에 없는 새 프로세스는 위험으로 표시되지만 위반을 트리거하지는 않습니다.
위반을 생성하려면 프로세스 기준선을 수동으로 잠그어야 합니다.
잠긴 상태에서 다음을 수행합니다.
- Red Hat Advanced Cluster Security for Kubernetes는 프로세스 기준선에 프로세스 추가를 중지합니다.
- 프로세스 기준 트리거 위반에 없는 새 프로세스입니다.
잠금 해제되거나 잠금 해제된 기준 상태와는 무관하게도 항상 기준선에서 프로세스를 추가하거나 제거할 수 있습니다.
배포의 경우 각 Pod에 여러 컨테이너가 있는 경우 Kubernetes용 Red Hat Advanced Cluster Security는 각 컨테이너 유형에 대한 프로세스 기준을 생성합니다. 이러한 배포의 경우 일부 기준선이 잠겨 있고 일부가 잠금 해제된 경우 해당 배포의 기본 상태가 Cryostated 로 표시됩니다.
4.6.1. 프로세스 기준 보기
위험 관점에서 프로세스 기준선을 볼 수 있습니다.
프로세스
- RHACS 포털의 탐색 메뉴에서 Risk 를 선택합니다.
- 기본 위험 보기의 배포 목록에서 배포를 선택합니다. 오른쪽의 패널에서 배포 세부 정보가 열립니다.
- Deployment details 패널에서 Process Discovery 탭을 선택합니다.
- 프로세스 기준선은 Spec Container Baselines 섹션 아래에 표시됩니다.
4.6.2. 기준선에 프로세스 추가
기준선에 프로세스를 추가할 수 있습니다.
프로세스
- RHACS 포털의 탐색 메뉴에서 Risk 를 선택합니다.
- 기본 위험 보기의 배포 목록에서 배포를 선택합니다. 오른쪽의 패널에서 배포 세부 정보가 열립니다.
- Deployment details 패널에서 Process Discovery 탭을 선택합니다.
- 실행 중 섹션에서 프로세스 기준선에 추가할 프로세스의 추가 아이콘을 클릭합니다.
추가 아이콘은 프로세스 기준선에 없는 프로세스에 대해서만 사용할 수 있습니다.
4.6.3. 기준에서 프로세스 제거
기준선에서 프로세스를 제거할 수 있습니다.
프로세스
- RHACS 포털의 탐색 메뉴에서 Risk 를 선택합니다.
- 기본 위험 보기의 배포 목록에서 배포를 선택합니다. 오른쪽의 패널에서 배포 세부 정보가 열립니다.
- Deployment details 패널에서 Process Discovery 탭을 선택합니다.
- Spec Container baselines 섹션에서 프로세스 기준에서 제거할 프로세스의 제거 아이콘을 클릭합니다.
4.6.4. 프로세스 기준 잠금 및 잠금 해제
기준선을 잠그 면 기준선에 나열되지 않은 모든 프로세스에 대한 위반을 트리거하고 기준의 잠금을 해제 하여 위반 트리거를 중지할 수 있습니다.
프로세스
- RHACS 포털의 탐색 메뉴에서 Risk 를 선택합니다.
- 기본 위험 보기의 배포 목록에서 배포를 선택합니다. 오른쪽의 패널에서 배포 세부 정보가 열립니다.
- Deployment details 패널에서 Process Discovery 탭을 선택합니다.
Spec Container baselines 섹션에서 다음을 수행합니다.
- 잠금 아이콘을 클릭하여 기준선에 없는 프로세스에 대한 위반을 트리거합니다.
- Unlock 아이콘을 클릭하여 기준선에 없는 프로세스에 대한 위반 트리거를 중지합니다.
5장. 승인 컨트롤러 적용 사용
Red Hat Advanced Cluster Security for Kubernetes는 Kubernetes 승인 컨트롤러 및 OpenShift Container Platform 승인 플러그인 과 함께 작동하므로 Kubernetes 또는 OpenShift Container Platform이 워크로드를 생성하기 전에 보안 정책을 적용할 수 있습니다(예: 배포, 데몬 세트 또는 작업).
RHACS 승인 컨트롤러는 사용자가 RHACS에서 구성하는 정책을 위반하는 워크로드를 생성하지 못하도록 합니다. RHACS 버전 3.0.41부터 정책을 위반하는 워크로드에 대한 업데이트가 발생하지 않도록 승인 컨트롤러를 구성할 수도 있습니다.
RHACS는 ValidatingAdmissionWebhook
컨트롤러를 사용하여 프로비저닝 중인 리소스가 지정된 보안 정책을 준수하는지 확인합니다. 이를 처리하기 위해 RHACS는 여러 웹 후크 규칙이 포함된 ValidatingWebhookConfiguration
을 생성합니다.
Kubernetes 또는 OpenShift Container Platform API 서버에서 Webhook 규칙 중 하나와 일치하는 요청을 수신하면 API 서버에서 RHACS로 AdmissionReview
요청을 보냅니다. 그러면 RHACS는 구성된 보안 정책에 따라 요청을 수락하거나 거부합니다.
OpenShift Container Platform에서 승인 컨트롤러 적용을 사용하려면 Red Hat Advanced Cluster Security for Kubernetes 버전 3.0.49 이상이 필요합니다.
5.1. 승인 컨트롤러 적용 이해
승인 컨트롤러 적용을 사용하려면 다음 사항을 고려하십시오.
- API 대기 시간: 승인 컨트롤러 시행을 사용하면 추가 API 검증 요청이 포함되어 있기 때문에 Kubernetes 또는 OpenShift Container Platform API 대기 시간이 증가합니다. fabric8과 같은 많은 표준 Kubernetes 라이브러리는 기본적으로 짧은 Kubernetes 또는 OpenShift Container Platform API 시간 초과를 갖습니다. 또한 사용 중인 사용자 정의 자동화에서 API 시간 초과를 고려하십시오.
이미지 검사: 클러스터 구성 패널에서 Contact Image Scanners 옵션을 설정하여 승인 컨트롤러에서 요청을 검토하는지 여부를 선택할 수 있습니다.
- 이 설정을 활성화하면 검사 또는 이미지 서명 확인 결과를 사용할 수 없는 경우 Red Hat Advanced Cluster Security for Kubernetes는 이미지 스캐너에 연결하여 상당한 대기 시간을 추가합니다.
- 이 설정을 비활성화하면 적용 결정은 캐시된 검사 및 서명 확인 결과를 사용할 수 있는 경우에만 이미지 검사 기준을 고려합니다.
승인 컨트롤러 적용은 다음을 수행할 수 있습니다.
-
Pod
securityContext
의 옵션 - 배포 구성.
- 이미지 구성 요소 및 취약점.
-
Pod
승인 컨트롤러 적용은 다음을 위해 사용할 수 없습니다.
- 프로세스와 같은 런타임 동작입니다.
- 포트 노출을 기반으로 하는 모든 정책입니다.
-
Kubernetes 또는 OpenShift Container Platform API 서버와 RHACS 센서 간에 연결 문제가 있는 경우 승인 컨트롤러가 실패할 수 있습니다. 이 문제를 해결하려면 승인 컨트롤러 적용 섹션에 설명된 대로
ValidatingWebhookConfiguration
오브젝트를 삭제합니다. - 정책에 배포 시간 적용이 활성화되어 있고 승인 컨트롤러를 활성화하는 경우 RHACS는 정책을 위반하는 배포를 차단하려고 합니다. 예를 들어 시간 초과의 경우 RHACS는 승인 컨트롤러에서 비호환 배포를 거부하지 않는 경우 RHACS는 여전히 복제본 0으로 스케일링과 같은 다른 배포 시간 적용 메커니즘을 적용합니다.
5.2. 승인 컨트롤러 적용 활성화
센서를 설치하거나 기존 클러스터 구성을 편집할 때 클러스터 보기에서 승인 컨트롤러 적용을 활성화할 수 있습니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 클러스터로 이동합니다.
- 목록에서 기존 클러스터를 선택하거나 클러스터 보안 → 레거시 설치 방법을 선택하여 새 클러스터를 보호합니다.
- 새 클러스터를 보호하는 경우 클러스터 구성 패널의 정적 구성 섹션에서 클러스터 세부 정보를 입력합니다.
- 승인 컨트롤러를 사용하여 오브젝트 생성 이벤트를 적용하려는 경우 Configure Admission Controller Webhook만 활성화하여 오브젝트 생성에서 수신 대기 하도록 하는 것이 좋습니다.
- 승인 컨트롤러를 사용하여 업데이트 이벤트를 적용하려는 경우 Configure Admission Controller Webhook만 활성화하여 오브젝트 업데이트에서 수신 대기 하도록 하는 것이 좋습니다.
- Red Hat은 허용 컨트롤러를 사용하여 Pod 실행 및 Pod 포트를 전달하려는 경우 Enable Admission Controller Webhook를 사용하여 exec 및 port-forward 이벤트에서 수신 대기 하도록 하는 것이 좋습니다.
동적 구성 섹션에서 다음 옵션을 구성합니다.
- 오브젝트 생성 시 적용: 이 토글은 승인 제어 서비스의 동작을 제어합니다. 이 작업이 작동하려면 Object Creates 토글을 수신 대기하려면 Configure Admission Controller Webhook 가 있어야 합니다.
- 오브젝트 업데이트 적용: 이 토글은 승인 제어 서비스의 동작을 제어합니다. 이 작업이 작동하려면 Object Updates 토글을 수신 대기하려면 Configure Admission Controller Webhook 가 있어야 합니다.
- 다음을 선택합니다.
Download files 섹션에서 Download YAML files and keys 를 선택합니다.
참고기존 클러스터에 승인 컨트롤러를 활성화할 때 다음 지침을 따르십시오.
- 정적 구성 섹션을 변경하는 경우 YAML 파일을 다운로드하고 센서를 다시 배포해야 합니다.
- 동적 구성 섹션을 변경하면 RHACS에서 센서를 자동으로 동기화하고 변경 사항을 적용하므로 파일 및 배포 다운로드를 건너뛸 수 있습니다.
- 완료 를 선택합니다.
검증
생성된 YAML을 사용하여 새 클러스터를 프로비저닝한 후 다음 명령을 실행하여 승인 컨트롤러 적용이 올바르게 구성되었는지 확인합니다.
$ oc get ValidatingWebhookConfiguration 1
- 1
- Kubernetes를 사용하는 경우
oc
대신kubectl
을 입력합니다.
출력 예
NAME CREATED AT stackrox 2019-09-24T06:07:34Z
5.3. 승인 컨트롤러 적용 우회
승인 컨트롤러를 바이패스하려면 구성 YAML에 admission.stackrox.io/break-glass
주석을 추가합니다. 승인 컨트롤러를 우회하면 배포 세부 정보가 포함된 정책 위반이 트리거됩니다. 다른 사용자가 승인 컨트롤러를 우회한 이유를 이해할 수 있도록 문제 추적기 링크 또는 기타 참조를 이 주석의 값으로 제공하는 것이 좋습니다.
5.4. 승인 컨트롤러 적용 비활성화
RHACS(Red Hat Advanced Cluster Security for Kubernetes) 포털의 Clusters 보기에서 승인 컨트롤러 시행을 비활성화할 수 있습니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 클러스터를 선택합니다.
- 목록에서 기존 클러스터를 선택합니다.
- 동적 구성 섹션에서 Object Creates 및 Enforce on Object Updates 토글을 끕니다.
- 다음을 선택합니다.
- 완료 를 선택합니다.
5.4.1. 연결된 정책 비활성화
관련 정책에 대한 적용 기능을 끄면 승인 컨트롤러가 적용 사항을 건너뛰도록 지시할 수 있습니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 정책 관리로 이동합니다.
기본 정책에서 적용을 비활성화합니다.
-
정책 보기에서 Kubernetes 작업: Exec into Pod 정책을 찾습니다. 오버플로 메뉴
를 클릭한 다음 정책 비활성화 를 선택합니다.
-
정책 보기에서 Kubernetes 작업: Pod로 전달 포트 정책을 찾습니다. 오버플로 메뉴
를 클릭한 다음 정책 비활성화 를 선택합니다.
-
정책 보기에서 Kubernetes 작업: Exec into Pod 정책을 찾습니다. 오버플로 메뉴
- 기본 Kubernetes 동작의 기준을 사용하여 생성한 다른 사용자 정의 정책에 대한 적용(포드 및 Kubernetes 작업으로 전달: Pod 정책으로 실행) 을 비활성화합니다.
5.4.2. Webhook 비활성화
RHACS 포털의 클러스터 보기에서 승인 컨트롤러 시행을 비활성화할 수 있습니다.
Webhook를 해제하여 승인 컨트롤러를 비활성화하는 경우 센서 번들을 다시 배포해야 합니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 클러스터로 이동합니다.
- 목록에서 기존 클러스터를 선택합니다.
- Enable Admission Controller Webhook to listen on exec and port-forward events toggles on the Static Configuration 섹션에서 수신 대기합니다.
- 다음을 선택하여 센서 설정을 계속합니다.
- YAML 파일 및 키 다운로드를 클릭합니다.
모니터링된 클러스터에 액세스할 수 있는 시스템에서
센서
스크립트를 추출하고 실행합니다.$ unzip -d sensor sensor-<cluster_name>.zip
$ ./sensor/sensor.sh
참고센서를 배포하는 데 필요한 권한이 없다는 경고가 표시되면 화면의 지침을 따르거나 클러스터 관리자에게 도움을 요청하십시오.
센서가 배포되면 Central에 연결하여 클러스터 정보를 제공합니다.
RHACS 포털로 돌아가서 배포가 완료되었는지 확인합니다. 성공하면 섹션 #2에 녹색 확인 표시가 표시됩니다. 녹색 확인 표시가 표시되지 않는 경우 다음 명령을 사용하여 문제를 확인합니다.
OpenShift Container Platform에서 다음을 수행합니다.
$ oc get pod -n stackrox -w
Kubernetes에서 다음을 수행합니다.
$ kubectl get pod -n stackrox -w
- 완료 를 선택합니다.
승인 컨트롤러를 비활성화하면 RHACS에서 ValidatingWebhookConfiguration
매개변수를 삭제하지 않습니다. 그러나 위반 요청을 확인하는 대신 모든 AdmissionReview
요청을 수락합니다.
ValidatingWebhookConfiguration
오브젝트를 제거하려면 보안 클러스터에서 다음 명령을 실행합니다.
OpenShift Container Platform에서 다음을 수행합니다.
$ oc delete ValidatingWebhookConfiguration/stackrox
Kubernetes에서 다음을 수행합니다.
$ kubectl delete ValidatingWebhookConfiguration/stackrox
5.5. ValidatingWebhookConfiguration YAML 파일 변경
Red Hat Advanced Cluster Security for Kubernetes를 사용하면 다음에 대한 보안 정책을 적용할 수 있습니다.
- 오브젝트 생성
- 오브젝트 업데이트
- Pod 실행
- Pod 포트 전달
중앙 또는 센서를 사용할 수 없는 경우
승인 컨트롤러에서는 센서가 작동하려면 초기 구성이 필요합니다. Kubernetes 또는 OpenShift Container Platform은 이 구성을 저장하고 모든 승인 제어 서비스 복제본을 다른 노드에 다시 예약하더라도 액세스할 수 있습니다. 이 초기 구성이 있는 경우 승인 컨트롤러에서 구성된 모든 배포 시간 정책을 적용합니다.
나중에 Sensor 또는 Central을 사용할 수 없게 되는 경우:
- 이미지 검사를 실행하거나 캐시된 이미지 검사에 대한 정보를 쿼리할 수 없습니다. 그러나 승인 컨트롤러 시행은 수집된 정보가 불완전하더라도 시간 초과가 만료되기 전에 수집된 사용 가능한 정보를 기반으로 계속 작동합니다.
- 변경 사항이 승인 제어 서비스로 전파되지 않으므로 RHACS 포털에서 승인 컨트롤러를 비활성화하거나 기존 정책에 대한 적용 사항을 수정할 수 없습니다.
승인 제어 적용을 비활성화해야 하는 경우 다음 명령을 실행하여 검증 웹 후크 구성을 삭제할 수 있습니다.
OpenShift Container Platform에서 다음을 수행합니다.
$ oc delete ValidatingWebhookConfiguration/stackrox
Kubernetes에서 다음을 수행합니다.
$ kubectl delete ValidatingWebhookConfiguration/stackrox
승인 컨트롤러의 안정성 향상
Red Hat은 작업자 노드가 아닌 컨트롤 플레인에 승인 제어 서비스를 예약하는 것이 좋습니다. 배포 YAML 파일에는 컨트롤 플레인에서 실행하기 위한 소프트 기본 설정이 포함되어 있지만 적용되지 않습니다.
기본적으로 승인 제어 서비스는 3개의 복제본을 실행합니다. 안정성을 높이기 위해 다음 명령을 실행하여 복제본을 늘릴 수 있습니다.
$ oc -n stackrox scale deploy/admission-control --replicas=<number_of_replicas> 1
- 1
- Kubernetes를 사용하는 경우
oc
대신kubectl
을 입력합니다.
roxctl CLI에서 사용
센서 배포 YAML 파일을 생성할 때 다음 옵션을 사용할 수 있습니다.
-
--admission-controller-listen-updates
: 이 옵션을 사용하는 경우 Kubernetes용 Red Hat Advanced Cluster Security는 Kubernetes 또는 OpenShift Container Platform API 서버에서 업데이트 이벤트를 수신하도록 사전 구성된ValidatingWebhookConfiguration
이 포함된 센서 번들을 생성합니다. -
--admission-controller-enforce-on-updates
: 이 옵션을 사용하는 경우 승인 컨트롤러가 보안 정책 오브젝트 업데이트를 적용하도록 Kubernetes용 Red Hat Advanced Cluster Security를 구성합니다.
이러한 두 옵션은 모두 선택 사항이며 기본적으로 false
입니다.
6장. 보안 정책 관리
6.1. 보안 정책 정보
Red Hat Advanced Cluster Security for Kubernetes는 환경의 위험이 높은 서비스 배포를 방지하고 런타임 보안 사고에 대응하는 데 사용할 수 있는 기본 보안 정책을 제공합니다. 컨테이너 환경에 대한 사용자 지정 다단계 정책을 생성할 수도 있습니다.
6.1.1. 정책 카테고리
RHACS는 정책 범주를 사용하여 유형 및 함수별로 정책을 그룹화합니다. 이러한 카테고리를 사용하여 정책을 구성하고 검색할 수 있습니다.
RHACS는 다음과 같은 기본 정책 범주를 제공합니다.
- 비정상적인 활동
- Cryptocurrency Cryostat
- DevOps 모범 사례
- Docker Center for Internet Security (CIS)
- Kubernetes
- Kubernetes 이벤트
- 네트워크 툴
- 패키지 관리
- 권한
- 보안 모범 사례
- 공급망 보안
- 시스템 수정
- 취약점 관리
- 제로 신뢰
정책 관리 창의 Policy Categories 탭을 사용하여 RHACS 포털에서 기존 카테고리를 보고 고유한 정책 범주를 생성할 수 있습니다.
6.1.1.1. 정책 카테고리 탭을 사용하여 정책 카테고리 생성
버전 3.74부터 RHACS는 PostgreSQL 데이터베이스가 활성화된 경우 Red Hat Advanced Cluster Security Cloud Service 또는 RHACS에서 정책 카테고리를 생성하고 관리하는 새로운 방법을 제공합니다. 정책 생성 이외의 모든 정책 워크플로우는 이 기능을 사용할 때 변경되지 않은 상태로 유지됩니다.
PolicyCategoryService
API 오브젝트를 사용하여 정책 범주를 구성할 수도 있습니다. 자세한 내용은 RHACS 포털에서 도움말 → API 참조로 이동하십시오.
프로세스
- RHACS 포털에서 플랫폼 구성 → 정책 관리로 이동합니다.
- 정책 카테고리 탭을 클릭합니다. 이 탭에서는 기존 카테고리 목록을 제공하고 카테고리 이름으로 목록을 필터링할 수 있습니다. 모든 카테고리 표시를 클릭하고 확인란을 선택하여 표시된 목록에서 기본 또는 사용자 지정 카테고리를 제거할 수도 있습니다.
- 카테고리 생성을 클릭합니다.
- 카테고리 이름을 입력하고 생성 을 클릭합니다.
6.1.1.2. 정책 카테고리 탭을 사용하여 정책 카테고리 수정
버전 3.74부터 RHACS는 PostgreSQL 데이터베이스가 활성화된 경우 Red Hat Advanced Cluster Security Cloud Service 또는 RHACS에서 정책 카테고리를 생성하고 관리하는 새로운 방법을 제공합니다. 정책 생성 이외의 모든 정책 워크플로우는 이 기능을 사용할 때 변경되지 않은 상태로 유지됩니다.
PolicyCategoryService
API 오브젝트를 사용하여 정책 범주를 구성할 수도 있습니다. 자세한 내용은 RHACS 포털에서 도움말 → API 참조로 이동하십시오.
프로세스
- RHACS 포털에서 플랫폼 구성 → 정책 관리로 이동합니다.
- 정책 카테고리 탭을 클릭합니다. 이 탭에서는 기존 카테고리 목록을 제공하고 카테고리 이름으로 목록을 필터링할 수 있습니다. 모든 카테고리 표시를 클릭하고 확인란을 선택하여 표시된 목록에서 기본 또는 사용자 지정 카테고리를 제거할 수도 있습니다.
- 정책 이름을 클릭하거나 편집하여 삭제합니다. 기본 정책 범주는 선택, 편집 또는 삭제할 수 없습니다.
6.1.2. 정책 및 라이프사이클 단계 이해
정책을 구성할 때 정책에 적용되는 라이프사이클 단계를 선택할 수 있으며 정책에 대해 두 개 이상의 단계를 선택할 수 있습니다.
다음 라이프사이클 단계에서 선택할 수 있습니다.
- 빌드 단계 정책: 이러한 정책은 CVE 및 Dockerfile 명령과 같은 이미지 필드에 적용됩니다.
- 배포 단계 정책: 이러한 정책에는 모든 빌드 시간 정책 기준이 포함될 수 있습니다. 권한 있는 모드에서 실행 또는 Docker 데몬 소켓 마운트와 같은 클러스터 구성의 데이터가 있을 수도 있습니다.
런타임 정책: 이러한 정책 검사에는 모든 빌드 시간 및 배포 시간 정책 기준, 런타임 중 프로세스 실행에 대한 데이터가 포함됩니다. 다음 이벤트를 기반으로 정책 위반을 트리거하도록 런타임 정책을 추가로 구성할 수 있습니다.
- 배포: RHACS는 이벤트 소스에 Pod 및 Pod 포트 전달에서 명령 실행과 같은 프로세스 및 네트워크 활동이 포함된 경우 정책 위반을 트리거합니다.
- 감사 로그: RHACS는 이벤트 소스가 Kubernetes 감사 로그 레코드와 일치하는 경우 정책 위반을 트리거합니다.
6.1.3. 규칙 및 정책 기준 이해
RHACS에서 규칙을 설정하고 정책을 트리거할 데이터를 구성할 수 있습니다. 이 데이터는 정책 기준 또는 정책 필드 라고도 합니다.
다음 표에 나열된 특성을 기반으로 정책을 구성할 수 있습니다.
이 표에서는 다음을 수행합니다.
정규 표현식,AND, OR, NOT 열은 특정 특성과 함께 정규식 및 기타 논리 연산자를 사용할 수 있는지 여부를 나타냅니다.
-
!
Cryo stat (Regular expressions)는 나열된 필드에 대해서만 정규식을 사용할 수 있음을 나타냅니다. -
AND
!
또는 OR 는 속성에 언급된 논리 연산자만 사용할 수 있음을 나타냅니다. - Cryostat / NOT / AND, OR 열의 경우 속성이 해당 속성(regex, 부정, 논리 연산자)을 지원하지 않음을 나타냅니다.
-
- RHACS 버전 열에는 특성을 사용해야 하는 Red Hat Advanced Cluster Security for Kubernetes 버전이 표시됩니다.
다음과 같은 특성에는 논리 조합 연산자
AND
및OR
를 사용할 수 없습니다.-
부울 값이
true
및false
최소 값 의미 체계는 다음과 같습니다.
- 최소 RBAC 권한
- 이미지가 생성된 이후 일수
-
부울 값이
다음과 같은 특성에
NOT
논리 연산자를 사용할 수 없습니다.-
부울 값이
true
및false
-
< , > , , <= , >= 연산자와 같이 이미 비교를 사용하는 숫자 값입니다.
예를 들어 여러 값을 가질 수 있는 복합 조건:
- Dockerfile line: 명령 및 인수를 모두 포함합니다.
- 환경 변수: name 및 value로 구성됩니다.
- 기능 추가,드롭다운 기능, 이미지가생성된 이후의 일, 이미지가 마지막으로 스캔된 날짜 등 기타 의미
-
부울 값이
속성 | 설명 | JSON 속성 | 허용되는 값 | regex,NOT,AND, OR | 단계 |
---|---|---|---|---|---|
섹션: 이미지 레지스트리 | |||||
이미지 레지스트리 | 이미지 레지스트리의 이름입니다. | 이미지 레지스트리 | 문자열 |
regex, |
Build, |
이미지 이름 |
레지스트리의 이미지의 전체 이름입니다(예: | 이미지 원격 이미지 | 문자열 |
regex, |
Build, |
이미지 태그 | 이미지의 식별자입니다. | 이미지 태그 | 문자열 |
regex, |
Build, |
이미지 서명 | 이미지의 서명을 확인하는 데 사용할 수 있는 서명 통합 목록입니다. 서명이 없거나 제공된 서명 통합 중 하나 이상에서 확인할 수 없는 이미지에 대한 경고를 생성합니다. | 이미지 서명 확인 | 이미 구성된 이미지 서명 통합의 유효한 ID |
! |
Build, |
섹션: 이미지 콘텐츠 | |||||
CVE(Common Vulnerabilities and Exposures)는 수정 가능 | 이 기준으로 평가 중인 배포에 있는 이미지에 수정 가능한 CVE가 있는 경우에만 위반이 발생합니다. | 수정 가능 | 부울 | ✕ |
Build, |
CVE가 이미지에 처음 발견된 일자 | 이러한 기준은 RHACS가 특정 이미지에서 CVE를 발견한 이후 지정된 일수보다 많은 경우에만 위반을 초래합니다. | CVE가 이미지에 처음 발견된 일자 | 정수 | ✕ |
Build, |
CVE가 시스템에서 처음 발견된 일자 | 이러한 기준은 RHACS가 RHACS가 모니터링하는 모든 클러스터에서 배포된 모든 이미지에서 CVE를 발견한 이후 지정된 일수에 해당하는 경우에만 위반이 발생합니다. | CVE가 시스템에서 처음 발견된 일자 | 정수 | ✕ |
Build, |
이미지 기간 | 이미지 생성 날짜로부터 최소 일 수입니다. | 이미지 기간 | 정수 | ✕ |
Build, |
이미지 검사 기간 | 이미지가 마지막으로 스캔된 후 최소 일 수입니다. | 이미지 검사 기간 | 정수 | ✕ |
Build, |
이미지 사용자 | Dockerfile의 USER 지시문과 일치합니다. 자세한 내용은 https://docs.docker.com/engine/reference/builder/#user 을 참조하십시오. | 이미지 사용자 | 문자열 |
regex, |
Build, |
Dockerfile 라인 | 명령 및 인수를 포함하여 Dockerfile의 특정 행. | Dockerfile 라인 | 다음 중 하나: LABEL, RUN, CMD, EXV, ADD, COPY, ENTRYPOINT, VOLUME, USER, WORKDIR, ONBUILD |
! regex only for values, |
Build, |
이미지 검사 상태 | 이미지가 스캔되었는지 확인합니다. | 검사되지 않은 이미지 | 부울 | ✕ |
Build, |
CVSS (Common Vulnerability Scoring System) |
CVSS: 점수가 >보다 크거나 < , 지정된 CVSS보다 작거나 같은 취약점 | CVSS |
<, > >, <=, >= 또는 아무것도(즉, 동일한 값)
예: | 또는 |
Build, |
심각도 | CVSS 또는 공급 업체를 기반으로 하는 취약점의 심각도입니다. 낮음, 보통, 중요 또는 심각 중 하나일 수 있습니다. | 심각도 |
<, >, Cryostat, >= 또는 아무것도(이는 동일함)
예: | 또는 |
Build, |
수정자 | 이미지의 플래그가 지정된 취약점을 수정하는 패키지의 버전 문자열입니다. 이 기준은 예를 들어 CVE 기준을 사용하여 취약점을 식별하는 다른 기준과 함께 사용될 수 있습니다. | 수정자 | 문자열 |
regex, |
Build, |
CVE | 일반적인 취약점 및 노출은 특정 CVE 번호와 함께 사용합니다. | CVE | 문자열 |
regex, |
Build, |
이미지 구성 요소 | 이미지에 있는 특정 소프트웨어 구성 요소의 이름 및 버전 번호입니다. | 이미지 구성 요소 |
key=value
값은 선택 사항입니다. 값이 없는 경우 "key=" 형식이어야 합니다. |
regex, |
Build, |
이미지 OS |
이미지의 기본 운영 체제의 이름 및 버전 번호입니다. 예: | 이미지 OS | 문자열 |
regex, |
Build, |
이미지 레이블 필요 |
Docker 이미지 레이블이 있는지 확인합니다. 배포의 이미지에 지정된 레이블이 없는 경우 정책이 트리거됩니다. key 및 value 필드에 정규식을 사용하여 레이블과 일치시킬 수 있습니다. | 필수 이미지 레이블 |
key=value
값은 선택 사항입니다. 값이 없는 경우 "key=" 형식이어야 합니다. |
regex, |
Build, |
이미지 레이블 허용 | 특정 Docker 이미지 레이블을 사용하지 않는지 확인합니다. 배포의 이미지에 지정된 레이블이 있으면 정책이 트리거됩니다. key 및 value 필드에 정규식을 사용하여 레이블과 일치시킬 수 있습니다. '이미지 레이블 정책 비활성화' 기준은 Docker 레지스트리와 통합할 때만 작동합니다. Docker 레이블에 대한 자세한 내용은 https://docs.docker.com/config/labels-custom-metadata/ Docker 문서를 참조하십시오. | 허용되지 않는 이미지 라벨 |
key=value
값은 선택 사항입니다. 값이 없는 경우 "key=" 형식이어야 합니다. |
regex, |
Build, |
섹션: 컨테이너 구성 | |||||
환경 변수 |
이름 또는 값으로 환경 변수를 확인합니다. 환경 변수 속성이 포함된 정책을 생성할 때 정책이 일치해야 하는 환경 변수 유형을 선택할 수 있습니다. 예를 들어 배포 YAML에서 직접 제공되는 원시 값을 지정하거나 구성 맵, 시크릿, 필드 또는 리소스 요청 또는 제한의 값에 대한 참조를 지정할 수 있습니다. 배포 YAML에서 직접 지정된 원시 값이 아닌 모든 유형의 경우 정책 규칙의 해당 | 환경 변수 |
배포 YAML에 직접 지정된 환경 변수와 특정 키 및 값과 일치하는 RAW=key=value입니다. 키에서만 일치하도록
환경 변수가 구성 YAML에 정의되지 않은 경우
이전 목록은 먼저 API 오브젝트 레이블을 제공한 다음 사용자 인터페이스 레이블을 설명에 제공합니다. |
! key 및 value ( RAW를 사용하는 경우) |
배포, |
컨테이너 CPU 요청 | 지정된 리소스에 예약된 코어 수를 확인합니다. | 컨테이너 CPU 요청 |
<, > >, >= 또는 아무것도 (이를 의미하는 것과 같습니다)
예: | 또는 |
배포, |
컨테이너 CPU 제한 | 리소스에서 사용할 수 있는 최대 코어 수를 확인합니다. | 컨테이너 CPU 제한 | (컨테이너 CPU 요청과 동일) | 또는 |
배포, |
컨테이너 메모리 요청 | 요청되는 부분(MB)을 포함한 숫자입니다. | 컨테이너 메모리 요청 | (컨테이너 CPU 요청과 동일) | 또는 |
배포, |
컨테이너 메모리 제한 | 리소스가 사용할 수 있는 최대 메모리 양을 확인합니다. | 컨테이너 메모리 제한 | (컨테이너 CPU 요청과 동일) | 또는 |
배포, |
권한 있는 컨테이너 |
배포가 권한 있는 모드에서 구성되었는지 확인합니다. 이 기준은 해당 Pod 보안 컨텍스트에서 | 권한이 있는 컨테이너 |
부울: 해당 | ✕ |
배포, |
루트 파일 시스템 쓰기 기능 |
배포가 | 읽기 전용 루트 파일 시스템 |
부울: 해당 | ✕ |
배포, |
seccomp 프로필 유형 |
배포에 정의된 | seccomp 프로필 유형 |
그 중 하나:
UNCONFINED | ✕ |
배포, |
권한 에스컬레이션 | 배포를 통해 컨테이너 프로세스에서 상위 프로세스보다 더 많은 권한을 얻을 수 있는 경우 경고를 제공합니다. | 권한 에스컬레이션 허용 | 부울 | ✕ |
배포, |
드롭 기능 |
컨테이너에서 삭제해야 하는 Linux 기능. 지정된 기능이 삭제되지 않은 경우 경고를 제공합니다. 예를 들어 |
드롭 기능 |
그 중 하나:
모든 | 및 |
배포, |
기능 추가 |
원시 패킷을 보내거나 파일 권한을 재정의하는 기능과 같이 컨테이너에 추가해서는 안 되는 Linux 기능. 지정된 기능이 추가될 때 경고를 제공합니다. 예를 들어 | 기능 추가 |
AUDIT_CONTROL | 또는 |
배포, |
컨테이너 이름 | 컨테이너의 이름입니다. | 컨테이너 이름 | 문자열 |
regex, |
배포, |
AppArmor 프로필 | 컨테이너에 사용되는 Application Armor("AppArmor") 프로필입니다. | AppArmor 프로필 | 문자열 |
regex, |
배포, |
활성 프로브 | 컨테이너에서 활성 프로브를 정의하는지 여부입니다. | 활성 프로브 | 부울 | ✕ |
배포, |
준비 프로브 | 컨테이너에서 준비 상태 프로브를 정의하는지 여부입니다. | 준비 프로브 | 부울 | ✕ |
배포, |
섹션: 배포 메타데이터 | |||||
허용되지 않는 주석 | 지정된 환경의 Kubernetes 리소스에 존재할 수 없는 주석입니다. | 허용되지 않는 주석 |
key=value
값은 선택 사항입니다. 값이 없는 경우 "key=" 형식이어야 합니다. |
regex, |
배포, |
필수 라벨 | Kubernetes에 필수 라벨이 있는지 확인합니다. | 필수 라벨 |
key=value
값은 선택 사항입니다. 값이 없는 경우 "key=" 형식이어야 합니다. |
regex, |
배포, |
필수 주석 | Kubernetes에 필요한 주석이 있는지 확인합니다. | 필수 주석 |
key=value
값은 선택 사항입니다. 값이 없는 경우 "key=" 형식이어야 합니다. |
regex, |
배포, |
런타임 클래스 |
배포의 | 런타임 클래스 | 문자열 |
regex, |
배포, |
호스트 네트워크 |
컨테이너가 별도의 네트워크 스택 내에 배치되지 않았음을 나타내는 | 호스트 네트워크 | 부울 | ✕ |
배포, |
호스트 PID | 컨테이너와 호스트 간에 PID(프로세스 ID) 네임스페이스가 격리되었는지 확인합니다. 이를 통해 다른 PID 네임스페이스의 프로세스에 동일한 PID가 있을 수 있습니다. | 호스트 PID | 부울 | ✕ |
배포, |
호스트 IPC | 호스트에서 이름이 지정된 공유 메모리 세그먼트, 세마포어 및 메시지 큐를 분리하는 IPC(POSIX/SysV IPC) 네임스페이스가 컨테이너와 공유되는지 확인합니다. | 호스트 IPC | 부울 | ✕ |
배포, |
네임스페이스 | 배포가 속한 네임스페이스의 이름입니다. | 네임스페이스 | 문자열 |
regex, |
배포, |
replicas |
배포 복제본 수입니다. | replicas |
<, >, Cryostat, >= 또는 아무것도 (이를 의미하는 것과 같습니다)
예: |
NOT, |
배포, |
섹션: 스토리지 | |||||
볼륨 이름 | 스토리지의 이름입니다. | 볼륨 이름 | 문자열 |
regex, |
배포, |
볼륨 소스 |
볼륨이 프로비저닝되는 폼을 나타냅니다. 예를 들면 | 볼륨 소스 | 문자열 |
regex, |
배포, |
볼륨 대상 | 볼륨이 마운트된 경로입니다. | 볼륨 대상 | 문자열 |
regex, |
배포, |
볼륨 유형 | 볼륨 유형입니다. | 볼륨 유형 | 문자열 |
regex, |
배포, |
마운트된 볼륨 writability | 쓰기 가능으로 마운트된 볼륨입니다. | 쓰기 가능한 볼륨 | 부울 | ✕ |
배포, |
Mount Propagation |
컨테이너가 | Mount Propagation |
그 중 하나:
NONE |
NOT, |
배포, |
호스트 마운트 writability | 리소스에서 쓰기 권한이 있는 호스트의 경로를 마운트했습니다. | 쓰기 가능한 호스트 마운트 | 부울 | ✕ |
배포, |
섹션: 네트워킹 | |||||
프로토콜 | 노출된 포트에서 사용하는 TCP 또는 UDP와 같은 프로토콜입니다. | 노출된 포트 프로토콜 | 문자열 |
regex, |
배포, |
포트 | 배포로 노출된 포트 번호입니다. | 노출된 포트 |
<, >, Cryostat, >= 또는 아무것도(즉, 동일한 값)
예: |
NOT, |
배포, |
노출된 노드 포트 | 배포에 의해 외부에 노출되는 포트 번호입니다. | 노출된 노드 포트 | (종료된 포트와 동일합니다.) |
NOT, |
배포, |
포트 노출 | 서비스의 노출 방법(예: 로드 밸런서 또는 노드 포트) | 포트 노출 방법 |
그 중 하나:
설정되지 않음 |
NOT, |
배포, |
예기치 않은 네트워크 흐름 감지 | 감지된 네트워크 트래픽이 배포에 대한 네트워크 기준의 일부인지 확인합니다. | 예기치 않은 네트워크 흐름 감지 | 부울 | ✕ | 런타임 전용 - 네트워크 |
인그레스 네트워크 정책 | ingress Kubernetes 네트워크 정책이 있는지 확인합니다. | Ingress 네트워크 정책 | 부울 |
regex, |
배포, |
송신 네트워크 정책 | 송신 Kubernetes 네트워크 정책이 있는지 확인합니다. | Egress 네트워크 정책 보유 | 부울 |
regex, |
배포, |
섹션: 프로세스 활동 | |||||
프로세스 이름 | 배포에서 실행된 프로세스의 이름입니다. | 프로세스 이름 | 문자열 |
regex, | 런타임 전용 - 프로세스 |
프로세스 Ancestor | 배포에서 실행되는 프로세스의 상위 프로세스의 이름입니다. | 프로세스 Ancestor | 문자열 |
regex, | 런타임 전용 - 프로세스 |
프로세스 인수 | 배포에서 실행되는 프로세스의 명령 인수입니다. | 프로세스 인수 | 문자열 |
regex, | 런타임 전용 - 프로세스 |
프로세스 UID | 배포에서 실행되는 프로세스의 UNIX 사용자 ID입니다. | 프로세스 UID | 정수 |
NOT, | 런타임 전용 - 프로세스 |
예기치 않은 프로세스 실행 | 배포의 잠긴 프로세스 기준선에 프로세스 실행이 나열되지 않은 배포를 확인합니다. | 예기치 않은 프로세스 실행 | 부울 | ✕ | 런타임 전용 - 프로세스 |
섹션: Kubernetes 액세스 | |||||
서비스 계정 | 서비스 계정의 이름입니다. | 서비스 계정 | 문자열 |
regex, |
배포, |
Quarkus 서비스 계정 토큰 | 배포 구성이 서비스 계정 토큰을 자동으로 마운트하는지 확인합니다. | Quarkus 서비스 계정 토큰 | 부울 | ✕ |
배포, |
최소 RBAC 권한 |
배포의 Kubernetes 서비스 계정에 Kubernetes RBAC 권한 수준이 | 최소 RBAC 권한 |
그 중 하나:
DEFAULT | 해당 없음 |
배포, |
섹션: Kubernetes 이벤트 | |||||
Kubernetes 작업 |
| Kubernetes 리소스 |
그 중 하나:
PODS_EXEC |
! | Runtime only - Kubernetes 이벤트 |
Kubernetes 사용자 이름 | 리소스에 액세스한 사용자의 이름입니다. | Kubernetes 사용자 이름 | 하이픈(-) 및 콜론(:)만으로 영숫자 |
regex, | Runtime only - Kubernetes 이벤트 |
Kubernetes 사용자 그룹 | 리소스에 액세스한 사용자가 속한 그룹의 이름입니다. | Kubernetes 사용자 그룹 | 하이픈(-) 및 콜론(:)만으로 영숫자 |
regex, | Runtime only - Kubernetes 이벤트 |
Kubernetes 리소스 유형 | 액세스한 Kubernetes 리소스의 유형입니다. | Kubernetes 리소스 |
그 중 하나:
구성 맵 |
! | 런타임 전용 - 감사 로그 |
Kubernetes API Verb |
| Kubernetes API Verb |
그 중 하나:
생성 |
! | 런타임 전용 - 감사 로그 |
Kubernetes 리소스 이름 | 액세스한 Kubernetes 리소스의 이름입니다. | Kubernetes 리소스 이름 | 하이픈(-) 및 콜론(:)만으로 영숫자 |
regex, | 런타임 전용 - 감사 로그 |
사용자 에이전트 |
사용자가 리소스에 액세스하는 데 사용한 사용자 에이전트입니다. 예를 들면 | 사용자 에이전트 | 문자열 |
regex, | 런타임 전용 - 감사 로그 |
소스 IP 주소 | 사용자가 리소스에 액세스한 IP 주소입니다. | 소스 IP 주소 | IPV4 또는 IPV6 주소 |
regex, | 런타임 전용 - 감사 로그 |
Impersoned User | 서비스 계정 또는 기타 계정으로 가장하는 사용자에 의해 요청이 수행되었는지 확인합니다. | Impersoned User | 부울 | ✕ | 런타임 전용 - 감사 로그 |
6.1.4. 정책 시행 정보
RHACS에서 정책을 구성할 때 보안 정책을 위반하는 조건을 감지할 때 RHACS가 응답하는 방법을 선택할 수 있습니다.
RHACS는 위반이 발견된 단계에 따라 다양한 유형의 정책 시행 또는 위반을 처리하는 작업을 수행할 수 있습니다. 정책 시행을 구성할 때 정책 시행을 구성할 때 여러 단계를 선택할 수 있습니다. 예를 들어 RHACS가 문제에 대한 빌드 파이프라인을 경고하도록 Build 및 Deploy 를 선택할 수 있지만 개발자가 빌드에 성공할 수 있는 경우 배포가 방지됩니다.
빌드 시간 적용 에서는 이미지가 정책의 기준과 일치하는 경우 CI(지속적 통합) 빌드를 실패하도록 RHACS를 구성할 수 있습니다. 즉, 정책을 위반하는 빌드에 조건이 있을 때 예를 들어 심각도 수준의 수정 가능한 CVE가 있고 해당 조건에 대한 정책을 구성한 경우 빌드가 실패해야 합니다. 예를 들어 이미지 또는 배포를 확인하도록 RHACS를 구성하고 CI/CD 파이프라인을 확인하는 통합이 있는 경우 RHACS에서 정책이 실패하는 조건을 감지하면 RHACS API에서 0이 아닌 종료 코드를 반환합니다. 그런 다음 파이프라인은 해당 코드를 사용하여 빌드를 실패합니다.
배포 시간 적용 에서 RHACS는 Kubernetes 승인 컨트롤러 및 OpenShift Container Platform 승인 플러그인과 함께 작동하여 보안 정책을 적용할 수 있습니다. RHACS는 Kubernetes 또는 OpenShift Container Platform이 정책 조건과 일치하는 배포, 데몬 세트 또는 작업과 같은 워크로드를 생성하거나 업데이트하지 않도록 합니다. 이 기능은 빌드에 성공한 경우에도 심각한 문제로 배포를 종료하는 데 유용합니다.
6.1.4.1. 배포 단계에 대한 보안 정책 적용
Red Hat Advanced Cluster Security for Kubernetes는 배포 정책에 대한 두 가지 유형의 보안 정책 시행을 지원합니다. 즉, RHACS 센서의 승인 컨트롤러 및 소프트 시행을 통한 하드 시행입니다. 승인 컨트롤러는 정책을 위반하는 배포의 생성 또는 업데이트를 차단합니다. 승인 컨트롤러가 비활성화되거나 사용할 수 없는 경우 Sensor는 정책을 위반하는 배포의 복제본을 0
으로 축소하여 시행을 수행할 수 있습니다.
정책 적용은 실행 중인 애플리케이션 또는 개발 프로세스에 영향을 미칠 수 있습니다. 시행 옵션을 활성화하기 전에 모든 이해 관계자에게 알리고 자동화된 적용 작업에 대응하는 방법을 계획하십시오.
6.1.4.1.1. 하드 적용
하드 적용은 RHACS 승인 컨트롤러에서 수행합니다. 승인 컨트롤러 적용이 있는 클러스터에서 Kubernetes 또는 OpenShift Container Platform API 서버는 호환되지 않는 모든 배포를 차단합니다. 승인 컨트롤러는 CREATE
및 UPDATE
작업을 차단합니다. 배포 시간 적용이 활성화된 정책을 충족하는 Pod 생성 또는 업데이트 요청이 실패합니다.
Kubernetes 승인 Webhook는 CREATE
,UPDATE
,DELETE
또는 CONNECT
작업만 지원합니다. RHACS 승인 컨트롤러는 CREATE
및 UPDATE
작업만 지원합니다. kubectl 패치
,kubectl set
, kubectl scale
과 같은 작업은 UPDATE 작업이 아닌 PATCH 작업입니다. PATCH 작업은 Kubernetes에서 지원되지 않으므로 RHACS는 PATCH 작업에 대한 적용을 수행할 수 없습니다.
차단 적용의 경우 RHACS의 클러스터에 대해 다음 설정을 활성화해야 합니다.
- 오브젝트 생성: 동적 구성 섹션의 이 토글은 승인 제어 서비스의 동작을 제어합니다. 이 작업이 작동하려면 정적 구성 섹션에서 오브젝트 생성 토글을 수신 대기하려면 Configure Admission Controller Webhook 가 있어야 합니다.
- 오브젝트 업데이트 적용: 동적 구성 섹션의 이 토글은 승인 제어 서비스의 동작을 제어합니다. 이 작업이 작동하려면 정적 구성 섹션의 오브젝트 업데이트 토글을 수신 대기하려면 Configure Admission Controller Webhook 가 있어야 합니다.
정적 구성 설정에서 설정을 변경하는 경우 해당 변경 사항을 적용하려면 보안 클러스터를 재배포해야 합니다.
6.1.4.1.2. 소프트 적용
소프트 적용은 RHACS 센서가 수행합니다. 이러한 적용으로 인해 작업이 시작되지 않습니다. 소프트 적용 기능을 사용하면 센서가 복제본을 0으로 스케일링하고 Pod가 예약되지 않습니다. 이 적용에서는 클러스터에서 준비되지 않은 배포를 사용할 수 있습니다.
소프트 적용이 구성되고 센서가 다운된 경우 RHACS는 적용을 수행할 수 없습니다.
6.1.4.1.3. 네임스페이스 제외
기본적으로 RHACS는 stackrox
,kube-system
, istio-system
네임스페이스와 같은 특정 관리 네임스페이스를 시행 차단에서 제외합니다. 그 이유는 RHACS가 제대로 작동하려면 이러한 네임스페이스의 일부 항목을 배포해야 하기 때문입니다.
6.1.4.1.4. 기존 배포에 적용
기존 배포의 경우 정책 변경으로 인해 Kubernetes 이벤트가 발생하는 경우 다음 기준을 탐지할 때만 적용됩니다. 정책을 변경하는 경우 정책 관리를 선택하고 Reassess all을 클릭하여 정책을 재평가해야 합니다. 이 작업은 들어오는 새 Kubernetes 이벤트가 있는지 여부에 관계없이 기존의 모든 배포에 배포 정책을 적용합니다. 정책을 위반하는 경우 RHACS는 적용을 수행합니다.
6.2. 사용자 정의 보안 정책
기본 정책을 사용하는 것 외에도 Red Hat Advanced Cluster Security for Kubernetes에서 사용자 지정 정책을 만들 수도 있습니다.
다음 방법을 사용하여 사용자 지정 정책을 생성할 수 있습니다.
- RHACS 포털에서 플랫폼 구성 → 정책 관리로 이동하여 정책 생성 을 클릭합니다.
- RHACS 포털에서 Risk 로 이동하고 필터를 사용하여 정책에서 사용할 기준을 선택합니다. 정책 생성을 클릭합니다.
- 정책을 Kubernetes CR(사용자 정의 리소스)으로 저장하고 Argo CD와 같은 연속 제공 툴을 사용하여 클러스터에 적용하여 정책을 코드로 생성하고 관리합니다.
자세한 내용은 다음 섹션을 참조하십시오.
6.2.1. 시스템 정책 보기에서 보안 정책 생성
시스템 정책 보기에서 새 보안 정책을 생성할 수 있습니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 정책 관리로 이동합니다.
- 정책 생성을 클릭합니다.
- 다음 섹션에서 정책 정의 정보를 구성합니다.
정책 세부 정보 입력
정책 세부 정보 섹션에서 정책에 대한 다음 세부 정보를 입력합니다.
- 정책의 이름을 입력합니다.
- 이 정책의 심각도 수준을 선택합니다.
- 정책에 대한 정책 범주를 선택합니다. 이 필드는 필수 항목입니다.
- 설명 필드에 정책에 대한 세부 정보를 입력합니다.
- Rationale 필드에 정책이 존재하는 이유에 대한 설명을 입력합니다.
- 지침 필드에 이 정책 위반을 해결하는 단계를 입력합니다.
MITRE ATT&CK 섹션에서 정책에 지정할 전략 및 기술을 선택합니다.
- 전략 추가 를 클릭한 다음 드롭다운 목록에서 전략을 선택합니다.
- 선택한 전략의 기술을 추가하려면 추가 기술을 클릭합니다. 방법에 대한 여러 기술을 지정할 수 있습니다.
- 다음을 클릭합니다.
정책 라이프사이클 구성
Lifecycle 섹션에서 다음 단계를 완료합니다.
정책이 적용되는 라이프사이클 단계 ( 빌드,배포 또는 런타임 )를 선택합니다. 다음 선택 사항에서 두 개 이상의 단계를 선택할 수 있습니다.
- 빌드 시간 정책은 CVE 및 Dockerfile 명령과 같은 이미지 필드에 적용됩니다.
- 배포 시간 정책에는 모든 빌드 시간 정책 기준이 포함될 수 있지만 권한 있는 모드에서 실행 또는 Docker 소켓 마운트와 같은 클러스터 구성의 데이터를 포함할 수도 있습니다.
- 런타임 정책에는 모든 빌드 시간 및 배포 시간 정책 기준이 포함될 수 있지만 런타임 중에 프로세스 실행에 대한 데이터를 포함할 수도 있습니다.
런타임 라이프사이클 단계를 선택한 경우 다음 이벤트 소스 중 하나를 선택해야 합니다.
- Deployment: RHACS는 이벤트 소스에 프로세스 및 네트워크 활동, Pod 실행 및 Pod 포트 전달이 포함된 경우 정책 위반을 트리거합니다.
- 감사 로그: RHACS는 이벤트 소스가 Kubernetes 감사 로그 레코드와 일치하는 경우 정책 위반을 트리거합니다.
- 다음을 클릭합니다.
정책 규칙 및 기준 구성
정책 규칙을 구성하려면 다음을 수행합니다.
- Rules 섹션에서 정책을 트리거할 조건을 구성합니다. 규칙 제목을 편집하고 새 규칙 추가를 클릭하여 추가 규칙을 추가할 수 있습니다.
각 규칙에 대해 정책 필드를 클릭하여 정책 섹션으로 끌어 정책 필드 또는 기준을 추가합니다.
참고사용 가능한 정책 필드는 정책에 선택한 라이프사이클 단계에 따라 다릅니다. 예를 들어 Kubernetes 액세스 정책 또는 네트워킹 의 기준은 런타임 라이프사이클에 대한 정책을 생성할 때 사용할 수 있지만 빌드 라이프사이클에 대한 정책을 생성할 때는 사용할 수 없습니다. 기준 및 사용 가능한 라이프사이클 단계에 대한 정보를 포함하여 정책 기준에 대한 자세한 내용은 "추가 리소스" 섹션의 "정책 기준"을 참조하십시오.
각 필드에 대해 필드와 관련된 옵션 중에서 선택할 수 있습니다. 이는 필드 유형에 따라 다릅니다. 예를 들면 다음과 같습니다.
- 문자열인 값의 기본 동작은 정책 필드에서 일치시킬 것이며 필드를 일치시키지 않도록 하려면 Not 를 클릭하여 표시합니다.
-
일부 필드에는
true
또는false
인 값이 포함되어 있습니다. - 일부 필드에는 드롭다운 목록에서 값을 선택해야 합니다.
-
부울 값이
읽기 전용 루트 파일 시스템인 속성을 선택하면
및 WRI CryostatREAD-
ONLY옵션이
표시됩니다. 복합 값
Environment 변수
를 사용하여 특성을 선택하는 경우Key
, Value 및
필드에 대한 값을 입력하는 옵션과 사용 가능한 옵션에 대한 더 많은 값을 추가하는 아이콘이 표시됩니다.Value
From참고자세한 내용은 "추가 리소스" 섹션의 "정책 기준"을 참조하십시오.
- 속성에 대해 여러 값을 결합하려면 추가 아이콘을 클릭합니다.
- 다음을 클릭합니다.
정책 범위 구성
환경 내에서 클러스터 또는 네임스페이스와 같은 엔티티에서 정책을 제한하거나 제외하는 범위를 생성합니다.
- 범위별로 제한하려면 포함 범위 추가 를 클릭합니다. 이를 통해 이 정책은 특정 클러스터, 네임스페이스 또는 배포 라벨에만 적용할 수 있습니다. 여러 범위를 추가하고 RE2 구문 에서 네임스페이스 및 레이블에 정규식을 사용할 수도 있습니다.
예를 들어 정책에서 특정 배포, 클러스터, 네임스페이스, 배포 레이블을 제외하려면 제외 범위 추가 를 클릭합니다. 정책은 선택한 엔터티에는 적용되지 않습니다. 여러 범위를 추가하고 RE2 구문 에서 네임스페이스 및 레이블에 정규식을 사용할 수도 있습니다. 그러나 배포 선택에는 정규식을 사용할 수 없습니다.
참고이 기능은 배포 및 런타임 라이프사이클 단계에 대해 구성된 정책에만 사용할 수 있습니다.
빌드 라이프사이클 단계에 대해 구성된 정책의 경우 정책에서 이미지를 제외할 수 있습니다. 이미지 제외(라이프 사이클만 해당) 필드에 위반을 트리거하지 않으려는 이미지를 입력합니다.
참고제외된 이미지 설정은 Build 라이프사이클 단계와 함께 연속 통합 시스템에서 이미지를 확인하는 경우에만 적용됩니다. 이 정책을 사용하여 Runtime 라이프사이클 단계의 Deploy 라이프사이클 단계 또는 런타임 활동에서 실행 중인 배포를 확인하는 경우에는 적용되지 않습니다.
- 다음을 클릭합니다.
정책 작업 구성
정책에 대한 활성화 상태, 적용 및 알림기를 구성합니다.
- 정책의 활성화 상태를 선택합니다.
적용 방법 선택:
- notify: 위반 목록에 위반을 포함합니다.
- 정보 및 적용: 작업을 시행합니다. 이 옵션을 선택하는 경우 각 라이프사이클에 토글을 사용하여 정책의 적용 동작을 선택해야 합니다. 선택할 수 있는 적용 동작은 정책 정의의 라이프 사이클 섹션에 있는 정책에 대해 선택한 라이프사이클 단계에 따라 다릅니다. 다음 적용 동작은 라이프사이클 단계에 따라 사용할 수 있습니다.
- Build: RHACS는 이미지가 정책의 기준과 일치할 때 CI(Continuous Integration) 빌드에 실패합니다.
배포 단계의 경우 RHACS는 RHACS 승인 컨트롤러가 구성되어 실행되는 경우 정책 조건과 일치하는 배포의 생성 및 업데이트를 차단합니다.
- 승인 컨트롤러 적용이 있는 클러스터에서 Kubernetes 또는 OpenShift Container Platform API 서버는 호환되지 않는 모든 배포를 차단합니다. 다른 클러스터에서 RHACS는 비호환 배포를 편집하여 Pod가 예약되지 않도록 합니다.
- 기존 배포의 경우 정책 변경으로 인해 Kubernetes 이벤트가 발생하는 경우 다음 기준을 탐지할 때만 적용됩니다. 적용 단계에 대한 자세한 내용은 "배포 단계에 대한 보안 정책 적용"을 참조하십시오.
Runtime: RHACS는 Pod의 이벤트가 정책 기준과 일치하면 모든 Pod를 삭제합니다.
주의정책 적용은 실행 중인 애플리케이션 또는 개발 프로세스에 영향을 미칠 수 있습니다. 시행 옵션을 활성화하기 전에 모든 이해 관계자에게 알리고 자동화된 적용 작업에 대응하는 방법을 계획하십시오.
알림기를 정책에 연결하여 이메일 수신자 또는 Jira, Splunk 또는 Webhook를 사용하는 기타 애플리케이션과 같은 외부 툴링에 정책 위반을 보냅니다.
목록에서 알림기를 선택합니다.
참고알림이 표시되기 전에 이전에 알림을 구성하고 목록에서 선택할 수 있어야 합니다. Notifier 통합 섹션의 플랫폼 구성 → 통합 페이지에서 이러한 통합을 구성합니다.
- 다음을 클릭합니다.
정책 검토 및 위반 프리뷰
구성한 정책 설정을 검토합니다.
- 정책 구성이 올바른 옵션으로 구성되었는지 확인합니다.
프리뷰 위반 패널은 빌드 단계 또는 배포 단계 배포에 정책 위반이 있는지 여부를 포함하여 추가 정보를 제공합니다.
참고런타임 위반은 향후 이벤트에 대한 응답으로 생성되므로 이 프리뷰에서는 사용할 수 없습니다.
정책을 저장하기 전에 위반 사항이 정확한 것으로 표시되는지 확인합니다.
- 저장을 클릭합니다.
6.2.1.1. 정책 기준에 대한 논리 조건 추가
드래그 앤 드롭 정책 필드 패널을 사용하여 정책 기준에 대한 논리 조건을 지정할 수 있습니다.
사전 요구 사항
- Red Hat Advanced Cluster Security for Kubernetes 버전 3.0.45 이상을 사용해야 합니다.
프로세스
정책 기준 섹션에서 새 조건 추가를 선택하여 새 정책 섹션을 추가합니다.
- 편집 아이콘을 클릭하여 정책 섹션의 이름을 변경할 수 있습니다.
- 정책 필드 섹션에는 사용 가능한 정책 기준이 여러 카테고리로 나열됩니다. 이러한 카테고리를 확장하고 축소하여 정책 기준 특성을 볼 수 있습니다.
- 속성을 정책 섹션의 범위 내에 있는 정책 필드로 드래그합니다.
선택한 특성 유형에 따라 선택한 특성에 대한 조건을 구성하는 다양한 옵션이 제공됩니다. 예를 들면 다음과 같습니다.
-
부울 값이
읽기 전용 루트 파일 시스템인 속성을 선택하면
및 WRI CryostatREAD-
ONLY옵션이
표시됩니다. 복합 값
Environment 변수
를 사용하여 특성을 선택하는 경우Key
, Value 및
필드에 대한 값을 입력하는 옵션과 사용 가능한 옵션에 대한 더 많은 값을 추가하는 아이콘이 표시됩니다.Value
From- 속성에 대해 여러 값을 결합하려면 추가 아이콘을 클릭합니다.
-
정책 섹션에 논리 연산자
AND
또는OR
목록을 클릭하여 AND 및OR
연산자 간에전환할
수도 있습니다. 운영자 간 집계는 policy 섹션 내에서만 작동하며 두 개의 다른 정책 섹션 사이는 작동하지 않습니다.
-
부울 값이
-
이러한 단계를 반복하여 둘 이상의
AND
및OR
조건을 지정할 수 있습니다. 추가된 속성에 대한 조건을 구성한 후 Next 를 클릭하여 정책 생성을 계속합니다.
6.2.2. 위험 보기에서 보안 정책 생성
위험 보기에서 배포 위험을 평가하는 동안 로컬 페이지 필터링을 적용할 때 사용 중인 필터링 기준을 기반으로 새 보안 정책을 만들 수 있습니다.
프로세스
- RHACS 포털로 이동하여 탐색 메뉴에서 위험을 선택합니다.
- 정책을 생성할 로컬 페이지 필터링 기준을 적용합니다.
- 새 정책을 선택하고 필수 필드를 입력하여 새 정책을 생성합니다.
추가 리소스
6.2.3. 기존 보안 정책 수정
생성한 정책과 복제한 Kubernetes용 Red Hat Advanced Cluster Security에서 제공하는 기존 기본 정책을 편집할 수 있습니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 정책 관리로 이동합니다.
- 정책 페이지에서 편집할 정책을 선택합니다.
작업 → 정책 편집을 선택합니다.
참고기본 정책을 편집할 수 없습니다. 기본 정책을 복제하고 복제된 정책을 편집해야 합니다.
- 변경할 필드를 편집하고 저장을 클릭합니다.
6.2.4. 정책을 코드로 관리
정책을 Kubernetes CR(사용자 정의 리소스)으로 저장하여 정책을 코드로 생성 및 관리하고 Argo CD와 같은 Kubernetes 네이티브 CD(Continuous Delivery) 툴을 사용하여 클러스터에 적용할 수 있습니다.
코드로서의 정책은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. Red Hat은 프로덕션 환경에서 사용하는 것을 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
코드로서의 정책은 RHACS 포털을 사용하는 대신 YAML 또는 JSON에서 정책을 작성하려는 Kubernetes 보안 아키텍트에게 유용합니다. GitOps 워크플로를 사용하여 Kubernetes 구성을 이미 관리하는 GitOps 관리자도 유용할 수 있습니다.
RHACS는 기본 정책을 사용하거나 시스템에 대한 사용자 지정 정책을 생성하는 기능을 제공합니다. 정책을 코드 기능으로 사용하면 로컬에서 사용자 지정 정책을 다운로드하여 수정하거나 빈 파일에서 생성할 수 있습니다. 정책을 로컬로 작성하려면 원하는 정책 상태를 나타내는 CR을 생성합니다. 그런 다음 Argo CD와 같은 연속 제공 툴을 사용하여 RHACS를 실행하는 클러스터에 정책을 추적, 관리 및 적용합니다. CR을 생성하거나 업데이트하고 CI/CD 툴을 적용하여 적용하면 RHACS 데이터베이스에 저장된 정책이 생성되거나 업데이트됩니다.
이 기능을 통해 RHACS는 Central이 설치된 네임스페이스에 새 Kubernetes 컨트롤러를 설치합니다(일반적으로 stackrox
네임스페이스). Argo CD 워크플로우를 사용하면 RHACS가 설치된 동일한 네임스페이스에 정책을 코드 리소스로 적용하도록 Argo CD를 구성합니다. 이 연결을 구성한 후 RHACS의 컨트롤러는 Kubernetes API에서 개별 Kubernetes CR 파일로 관리되는 신규, 업데이트 또는 삭제된 정책에 대한 정보를 받습니다. RHACS는 RHACS 데이터베이스에 저장된 정책에 정책 CR을 조정합니다.
Argo CD를 사용하지 않는 GitOps 워크플로를 사용하면 RHACS API를 통해 RHACS의 Central에 연결하도록 GitOps 리포지토리를 구성합니다. CR은 사용되지 않습니다.
6.2.4.1. 정책 드리프트 정보
RHACS 포털과 외부에서도 정책을 편집, 삭제 및 생성할 수 있으므로 정책 드리프트 가 발생할 수 있습니다. 드리프트는 RHACS의 정책 버전이 Kubernetes의 정책 버전과 일치하지 않을 때 발생합니다.
Kubernetes 사용자 정의 리소스를 수정하는 대신 RHACS 포털 또는 API를 사용하여 외부 관리형 정책에 변경 사항이 적용되는 경우 드리프트가 발생할 수 있습니다. RHACS는 드리프트를 방지하지는 않지만 권장되지 않습니다. 드리프트는 도입 후 10시간 이내에 자동으로 해결됩니다.
6.2.4.2. RHACS 포털을 사용하여 코드에서 정책 생성
RHACS 포털을 사용하여 기존 정책을 YAML 파일로 저장하여 코드에서 새 정책을 생성할 수 있습니다.
사전 요구 사항
- RHACS 릴리스 4.6 이상이 설치되어 있어야 합니다.
roxctl
메서드라고도 하는 매니페스트 설치 방법을 사용하여 RHACS를 설치하는 경우 다음 명령을 사용하여helm/chart/crds/
에서 .zip 파일에 있는 config.stackrox.io.io CRD를 수동으로 적용해야 합니다.config.stackrox.io
_securitypolicies.yaml$ kubectl create -f helm/chart/crds/config.stackrox.io_securitypolicies.yaml
프로세스
RHACS 포털을 사용하여 CR을 생성하여 코드에서 새 정책을 생성하려면 다음을 수행합니다.
정책 관리 페이지에서 새 정책을 생성하거나 기본 정책을 복제합니다.
참고CR로 저장하려면 먼저 기본 정책을 복제해야 합니다.
-
정책을 나열하는 행에서 오버플로 메뉴
를 클릭한 다음 사용자 정의 리소스로 저장을 선택합니다. 한 번에 여러 정책을 저장하려면 Bulk 작업 → 사용자 정의 리소스로 저장을 클릭합니다.
정책을 편집한 후 다음 중 하나를 수행하여 저장된 CR을 적용할 수 있습니다.
-
oc apply
또는kubectl apply
명령을 사용하여 Central이 설치된 Kubernetes 네임스페이스에 CR을 직접 적용합니다. - Argo CD 또는 GitOps 툴을 사용하여 Central이 설치된 Kubernetes 네임스페이스로 CR을 푸시합니다.
-
6.2.4.3. CR을 구성하여 코드에서 정책 생성
정책에 대한 CR을 구성하여 코드에서 새 정책을 생성할 수 있습니다.
편집기를 사용하여 다음 특성을 사용하여 정책에 대한 CR을 구성합니다.
kind: SecurityPolicy apiVersion: config.stackrox.io/v1alpha1 metadata: name: short-name spec: policyName: A longer form name # ...
작은 정보예를 들어
kubectl explain securitypolicy.spec
명령을 입력하여 온라인 문서를 사용하여 정책 사양을 정의하는 데 사용할 수 있는 필드를 파악합니다.다음 중 하나를 수행하여 저장된 CR을 적용합니다.
-
oc apply
또는kubectl apply
명령을 사용하여 Central이 설치된 Kubernetes 네임스페이스에 CR을 직접 적용합니다. - Argo CD 또는 GitOps 툴을 사용하여 Central이 설치된 Kubernetes 네임스페이스로 CR을 푸시합니다.
-
6.2.4.4. 정책을 코드 기능으로 비활성화
RHACS를 설치할 때 코드 기능으로 정책이 자동으로 활성화되지만 비활성화할 수 있습니다.
프로세스
정책 코드 기능을 비활성화하려면 RHACS를 설치하는 데 사용한 방법에 따라 다음 작업 중 하나를 완료합니다.
-
Operator를 사용하여 RHACS를 설치한 경우
spec.configAsCode.configAsCodeComponent
필드를Disabled
로 설정합니다. -
Helm 차트를 사용하여 RHACS를 설치한 경우
values.yaml
파일의configAsCode.enabled
필드를false
로 설정합니다. roxctl
메서드라고도 하는 매니페스트 설치 방법을 사용하여 RHACS를 설치한 경우 다음 명령을 실행하여config-controller
배포를 삭제합니다.$ kubectl -n stackrox delete deployment config-controller 1
- 1
- OpenShift Container Platform의 경우
kubectl
대신oc
를 사용합니다.
6.3. 기본 보안 정책
Red Hat Advanced Cluster Security for Kubernetes의 기본 보안 정책은 보안 문제를 식별하고 해당 환경의 보안에 대한 모범 사례를 제공할 수 있는 광범위한 범위를 제공합니다. 이러한 정책을 구성하면 해당 환경의 위험이 높은 서비스 배포를 자동으로 방지하고 런타임 보안 사고에 대응할 수 있습니다.
Red Hat Advanced Cluster Security for Kubernetes 정책의 심각도 수준은 Red Hat 제품 보안에서 할당한 심각도 수준과 다릅니다.
Red Hat Advanced Cluster Security for Kubernetes 정책 심각도 수준은 심각, 높음, 중간 및 낮음입니다. Red Hat 제품 보안 등급은 심각, 중요, 보통 및 낮음의 심각도 수준입니다.
정책의 심각도 수준과 Red Hat 제품 보안 심각도 수준이 상호 작용할 수 있지만 이를 구분하는 것이 중요합니다. Red Hat 제품 보안 심각도 수준에 대한 자세한 내용은 심각도 등급을 참조하십시오.
6.3.1. 심각한 심각도 보안 정책
다음 표에는 심각도가 심각한 Red Hat Advanced Cluster Security for Kubernetes의 기본 보안 정책이 나열되어 있습니다. 정책은 라이프사이클 단계에 따라 구성됩니다.
라이프 사이클 단계 | 이름 | 설명 | 상태 |
---|---|---|---|
빌드 또는 배포 | Apache Struts: CVE-2017-5638 | 배포에 CVE-2017-5638 Apache Struts 취약점이 포함된 이미지가 있는 경우 경고입니다. | 활성화됨 |
빌드 또는 배포 | Log4Shell: log4j 원격 코드 실행 취약점 | 배포에 CVE-2021-44228 및 CVE-2021-45046 Log4Shell 취약점이 포함된 이미지가 포함된 경우 경고입니다. 취약점은 버전 2.12.2를 제외하고 2.0-beta9 - 2.15.0 버전의 Apache Log4j Java 로깅 라이브러리에 있습니다. | 활성화됨 |
빌드 또는 배포 | Spring4Shell (Spring Framework 원격 코드 실행) 및 Spring Cloud Function 취약점 | 배포에 Spring Cryostat에 영향을 미치는 CVE-2022-22965 취약점과 Spring Cloud에 영향을 미치는 CVE-2022-22963 취약점을 포함하는 이미지가 포함된 경우 경고입니다. 버전 3.16, 3.2.2 및 이전 버전의 Spring Cloud에는 결함이 포함되어 있습니다. 5.3.0 - 5.3.17 버전, 5.2.0 - 5.2.19 버전 및 지원되지 않는 이전 버전의 Spring Framework에 결함이 있습니다. | 활성화됨 |
런타임 | 권한이 있는 컨테이너에서 iptables 실행 | 권한이 있는 Pod가 iptables를 실행할 때 경고입니다. | 활성화됨 |
6.3.2. 심각도가 높은 보안 정책
다음 표에는 심각도가 높은 Red Hat Advanced Cluster Security for Kubernetes의 기본 보안 정책이 나열되어 있습니다. 정책은 라이프사이클 단계에 따라 구성됩니다.
라이프 사이클 단계 | 이름 | 설명 | 상태 |
---|---|---|---|
빌드 또는 배포 | 수정 가능한 CVSS (Common Vulnerability Scoring System) >= 7 | 수정 가능한 취약점을 사용하여 배포하는 경우 경고에는 최소 7개의 CVSS가 있습니다. 그러나 Red Hat은 CVSS 점수 대신 CVE(Common Vulnerabilities and Exposures) 심각도를 사용하여 정책을 생성하는 것이 좋습니다. | 비활성화됨 |
빌드 또는 배포 | 수정 가능한 심각도는 최소한 중요 | 수정 가능한 취약점이 있는 배포의 경우 심각도 등급이 최소 중요로 평가되는 경우 경고입니다. | 활성화됨 |
빌드 또는 배포 | 빠른 재설정: HTTP/2 프로토콜의 서비스 취약점 거부 |
HTTP/2 서버의 서비스 거부(DoS) 취약점으로 인한 구성 요소가 포함된 이미지를 사용한 배포에 대한 경고입니다. HTTP/2에서 멀티플렉싱 스트림을 처리하는 데 문제가 있습니다. 클라이언트는 요청을 신속하게 생성하고 즉시 재설정할 수 있으므로 서버 측 제한에 도달하지 않고 서버에 대한 추가 작업이 생성되어 서비스 거부 공격을 방지할 수 있습니다. 이 정책을 사용하려면 정책을 복제하고 활성화하기 전에 | 비활성화됨 |
빌드 또는 배포 | 이미지에서 보안 쉘(ssh) 포트 노출 | 배포에서 SSH 액세스를 위해 일반적으로 예약되는 포트 22를 노출할 때 경고입니다. | 활성화됨 |
배포 | 긴급 배포 주석 | 배포에서 긴급 주석을 사용할 때 경고(예: "admission.stackrox.io/break-glass":"ticket-1234" to circumvent StackRox Admission Controller check). | 활성화됨 |
배포 | 시크릿이 포함된 환경 변수 | 배포에 'SECRET'이 포함된 환경 변수가 있는 경우 경고입니다. | 활성화됨 |
배포 | 수정 가능한 CVSS >= 6 및 권한 | 배포가 6개 이상의 CVSS가 있는 수정 가능한 취약점을 사용하여 권한 있는 모드에서 실행되는 경우 경고입니다. 그러나 CVSS 점수 대신 CVE 심각도를 사용하여 정책을 생성하는 것이 좋습니다. | 버전 3.72.0 이상에서 기본적으로 비활성화되어 있습니다. |
배포 | 중요 및 심각한 수정 가능한 CVE가 있는 권한 있는 컨테이너 | 권한 있는 모드에서 실행되는 컨테이너에 중요하거나 중요한 수정 가능한 취약점이 있는 경우 경고입니다. | 활성화됨 |
배포 | 환경 변수로 마운트된 시크릿 | 배포에 환경 변수로 마운트된 Kubernetes 시크릿이 있는 경우 경고입니다. | 비활성화됨 |
배포 | Secure Shell(ssh) 포트 노출 | 배포에서 SSH 액세스를 위해 일반적으로 예약되는 포트 22를 노출할 때 경고입니다. | 활성화됨 |
런타임 | Cryptocurrency Cryostat 프로세스 실행 | crypto-currency test 프로세스를 생성합니다. | 활성화됨 |
런타임 | iptables 실행 | 누군가가 컨테이너에서 네트워크 상태를 관리하는 더 이상 사용되지 않는 방법인 iptables를 실행하는 시기를 감지합니다. | 활성화됨 |
런타임 | Kubernetes 작업: Pod로 실행 | Kubernetes API가 컨테이너에서 명령을 실행하라는 요청을 수신할 때 경고입니다. | 활성화됨 |
런타임 | Linux 그룹 추가 실행 | 사용자가 addgroup 또는 groupadd 바이너리를 실행하여 Linux 그룹을 추가할 시기를 감지합니다. | 활성화됨 |
런타임 | Linux 사용자 추가 실행 | 사용자가 useradd 또는 adduser 바이너리를 실행하여 Linux 사용자를 추가할 시기를 감지합니다. | 활성화됨 |
런타임 | 로그인 Binaries | 누군가가 로그인하려고 할 때를 나타냅니다. | 비활성화됨 |
런타임 | 네트워크 관리 실행 | 누군가가 네트워크 구성 및 관리를 조작할 수 있는 바이너리 파일을 실행하는 시기를 감지합니다. | 활성화됨 |
런타임 | nmap 실행 | 실행 시간 동안 컨테이너에서 nmap 프로세스를 시작할 때 발생합니다. | 활성화됨 |
런타임 | OpenShift: Kubeadmin 시크릿 액세스 | 다른 사용자가 kubeadmin 시크릿에 액세스할 때 경고합니다. | 활성화됨 |
런타임 | 암호 Binaries | 다른 사용자가 암호를 변경하려고 할 때를 나타냅니다. | 비활성화됨 |
런타임 | 클러스터 Kubelet 끝점 프로세스 대상 지정 | healthz, kubelet API 또는 힙스터 끝점의 오용을 탐지합니다. | 활성화됨 |
런타임 | 클러스터 Kubernetes Docker Stats Endpoint를 대상으로 하는 프로세스 | Kubernetes docker 통계 끝점의 오용을 감지합니다. | 활성화됨 |
런타임 | Kubernetes 서비스 끝점을 대상으로 하는 프로세스 | Kubernetes 서비스 API 끝점의 오용을 감지합니다. | 활성화됨 |
런타임 | UID가 0인 프로세스 | 배포에 UID 0으로 실행되는 프로세스가 포함된 경우 경고입니다. | 비활성화됨 |
런타임 | SSH(Secure Shell Server) 실행 | SSH 데몬을 실행하는 컨테이너를 감지합니다. | 활성화됨 |
런타임 | Setuid 프로세스 | 사용자가 에스컬레이션된 권한으로 특정 프로그램을 실행할 수 있는 setuid 바이너리 파일을 사용합니다. | 비활성화됨 |
런타임 | shadow 파일 수정 | 누군가가 섀도우 파일을 수정하려고 할 때를 나타냅니다. | 비활성화됨 |
런타임 | Java 애플리케이션에서 제공하는 쉘 | bash, csh, sh 또는 zsh와 같은 쉘이 Java 애플리케이션의 하위 프로세스로 실행되는 시기를 감지합니다. | 활성화됨 |
런타임 | 무단 네트워크 흐름 | "항상 위반" 설정의 기준을 벗어나는 모든 네트워크 흐름에 대한 위반을 생성합니다. | 활성화됨 |
런타임 | 승인되지 않은 실행 | Kubernetes 배포의 컨테이너 사양에 대해 잠긴 프로세스 기준에서 명시적으로 허용하지 않는 모든 프로세스 실행에 대한 위반을 생성합니다. | 활성화됨 |
6.3.3. 중간 심각도 보안 정책
다음 표에는 심각도가 중간인 Red Hat Advanced Cluster Security for Kubernetes의 기본 보안 정책이 나열되어 있습니다. 정책은 라이프사이클 단계에 따라 구성됩니다.
라이프 사이클 단계 | 이름 | 설명 | 상태 |
---|---|---|---|
Build | Docker CIS 4.4: 보안 패치를 포함하도록 이미지가 스캔되고 다시 빌드되었는지 확인 | 보안 패치를 포함하도록 이미지를 스캔하고 다시 빌드할 때 경고입니다. 이미지를 자주 스캔하여 취약점을 찾고, 보안 패치를 포함하도록 이미지를 다시 빌드한 다음 이미지의 컨테이너를 인스턴스화하는 것이 중요합니다. | 비활성화됨 |
배포 | 30일 스캔 기간 | 배포가 30일 이내에 검사되지 않은 경우 경고입니다. | 활성화됨 |
배포 | CAP_SYS_ADMIN 기능 추가 | 배포에 CAP_SYS_ADMIN으로 에스컬레이션되는 컨테이너가 포함된 경우 경고입니다. | 활성화됨 |
배포 | 읽기-쓰기 루트 파일 시스템을 사용하는 컨테이너 | 배포에 읽기-쓰기 루트 파일 시스템이 있는 컨테이너가 포함된 경우 경고입니다. | 비활성화됨 |
배포 | 권한 에스컬레이션이 허용되는 컨테이너 | 의도하지 않은 권한으로 컨테이너가 실행 중인 경우 경고하여 보안 위험이 발생합니다. 이러한 상황은 상위 프로세스보다 많은 권한이 있는 컨테이너 프로세스에서 컨테이너를 의도하지 않은 권한으로 실행할 수 있는 경우에 발생할 수 있습니다. | 활성화됨 |
배포 | 배포에는 하나 이상의 Ingress 네트워크 정책이 있어야 합니다. | 배포에 Ingress 네트워크 정책이 누락된 경우 경고입니다. | 비활성화됨 |
배포 | 외부에 노출된 엔드포인트를 사용한 배포 | 배포에 모든 메서드를 통해 외부적으로 노출되는 서비스가 있는지 감지합니다. 클러스터 외부에서 노출된 서비스를 사용하는 배포는 클러스터 외부에서 연결할 수 있으므로 시도된 침입 위험이 더 높습니다. 이 정책은 클러스터 외부의 서비스 노출이 필요한지 확인할 수 있도록 경고를 제공합니다. 서비스가 클러스터 내부 통신에만 필요한 경우 서비스 유형 ClusterIP를 사용합니다. | 비활성화됨 |
배포 | Docker CIS 5.1: 해당하는 경우 AppArmor 프로필이 활성화되어 있는지 확인합니다. | AppArmor를 사용하여 AppArmor 프로필이라고 하는 보안 정책을 적용하여 Linux 운영 체제 및 애플리케이션을 보호합니다. AppArmor는 Debian 및 Ubuntu와 같은 일부 Linux 배포판에서 사용할 수 있는 Linux 애플리케이션 보안 시스템입니다. | 활성화됨 |
배포 | Docker CIS 5.15: 호스트의 프로세스 네임스페이스가 공유되지 않도록 합니다. | 컨테이너와 호스트 간의 프로세스 수준 격리를 생성합니다. PID(프로세스 ID) 네임스페이스는 프로세스 ID 공간을 격리하므로 다른 PID 네임스페이스의 프로세스에 동일한 PID가 있을 수 있습니다. | 활성화됨 |
배포 | Docker CIS 5.16: 호스트의 IPC 네임스페이스가 공유되지 않도록 합니다. | 호스트의 IPC 네임스페이스가 컨테이너와 공유될 때 경고입니다. IPC(POSIX/SysV IPC) 네임스페이스는 이름이 지정된 공유 메모리 세그먼트, 세마포어 및 메시지 큐를 구분합니다. | 활성화됨 |
배포 | Docker CIS 5.19: 마운트 전파 모드가 활성화되지 않았는지 확인 | 마운트 전파 모드가 활성화된 경우 경고입니다. 마운트 전파 모드가 활성화되면 컨테이너 볼륨을 양방향, 컨테이너로 호스트, None 모드로 마운트할 수 있습니다. 명시적으로 필요한 경우가 아니면 양방향 마운트 전파 모드를 사용하지 마십시오. | 활성화됨 |
배포 | Docker CIS 5.21: 기본 seccomp 프로필이 비활성화되지 않았는지 확인 | seccomp 프로필이 비활성화된 경우 경고입니다. seccomp 프로필은 허용 목록을 사용하여 공통 시스템 호출을 허용하고 다른 모든 호출을 차단합니다. | 비활성화됨 |
배포 | Docker CIS 5.7: 권한 있는 포트가 컨테이너 내에 매핑되지 않았는지 확인 | 권한 있는 포트가 컨테이너 내에 매핑되면 경고입니다. 1024보다 낮은 TCP/IP 포트 번호는 권한이 있는 포트입니다. 일반 사용자와 프로세스는 보안상의 이유로 이 포트를 사용할 수 없지만 컨테이너는 포트를 권한 있는 포트에 매핑할 수 있습니다. | 활성화됨 |
배포 | Docker CIS 5.9 및 5.20: 호스트의 네트워크 네임스페이스가 공유되지 않았는지 확인 | 호스트의 네트워크 네임스페이스를 공유할 때 경고합니다. HostNetwork가 활성화되면 컨테이너가 별도의 네트워크 스택 내에 배치되지 않으며 컨테이너의 네트워킹은 컨테이너화되지 않습니다. 결과적으로 컨테이너는 호스트의 네트워크 인터페이스에 대한 전체 액세스 권한을 가지며 공유 UTS 네임스페이스가 활성화됩니다. UTS 네임스페이스는 호스트 이름과 NIS 도메인 이름을 격리하고 해당 네임스페이스에서 실행 중인 프로세스에 표시되는 호스트 이름과 도메인을 설정합니다. 컨테이너 내에서 실행되는 프로세스는 일반적으로 호스트 이름 또는 도메인 이름을 알 필요가 없으므로 UTS 네임스페이스를 호스트와 공유해서는 안 됩니다. | 활성화됨 |
배포 | 검사가 없는 이미지 | 배포에 검사되지 않은 이미지가 포함된 경우 경고입니다. | 비활성화됨 |
런타임 | Kubernetes 작업: Pod로 전달 포트 | Kubernetes API가 포트 전달 요청을 수신할 때 경고입니다. | 활성화됨 |
배포 | 컨테이너 런타임 소켓 마운트 | 배포에 컨테이너 런타임 소켓에 볼륨 마운트가 있는 경우 경고입니다. | 활성화됨 |
배포 | 민감한 호스트 디렉터리 마운트 | 배포에서 민감한 호스트 디렉터리를 마운트할 때 경고합니다. | 활성화됨 |
배포 | 지정된 리소스 요청 또는 제한 없음 | 배포에 리소스 요청 및 제한이 없는 컨테이너가 포함된 경우 경고입니다. | 활성화됨 |
배포 | Pod 서비스 계정 토큰이 자동으로 마운트됨 | 기본 서비스 계정 토큰 마운트를 최소화하여 애플리케이션이 Kubernetes API와 상호 작용해야 하는 Pod로만 Pod 기본 서비스 계정 토큰이 손상되지 않도록 보호합니다. | 활성화됨 |
배포 | 권한이 있는 컨테이너 | 배포에 권한 있는 모드에서 실행되는 컨테이너가 포함된 경우 경고입니다. | 활성화됨 |
런타임 | crontab 실행 | crontab 스케줄링된 작업 편집기 사용을 감지합니다. | 활성화됨 |
런타임 | Netcat Execution Detected | netcat이 컨테이너에서 실행되는 시기를 감지합니다. | 활성화됨 |
런타임 | OpenShift: Advanced Cluster Security Central Admin Secret Accessed | Red Hat Advanced Cluster Security Central 시크릿에 액세스할 때 경고. | 활성화됨 |
런타임 | OpenShift: 개인 사용자가 액세스하는 Kubernetes 시크릿 | 누군가가 사용자를 가장하여 클러스터의 시크릿에 액세스할 때 경고합니다. | 활성화됨 |
런타임 | 원격 파일 복사 바이너리 실행 | 배포가 원격 파일 복사 툴을 실행할 때 경고합니다. | 활성화됨 |
6.3.4. 심각도가 낮은 보안 정책
다음 표에는 심각도가 낮은 Red Hat Advanced Cluster Security for Kubernetes의 기본 보안 정책이 나열되어 있습니다. 정책은 라이프사이클 단계에 따라 구성됩니다.
라이프 사이클 단계 | 이름 | 설명 | 상태 |
---|---|---|---|
빌드 또는 배포 | 90일 이미지 기간 | 배포가 90일 후에 업데이트되지 않은 경우 경고입니다. | 활성화됨 |
빌드 또는 배포 | COPY 대신 ADD 명령 사용 | 배포가 ADD 명령을 사용하는 경우 경고입니다. | 비활성화됨 |
빌드 또는 배포 | 이미지의 Alpine Linux Package Manager(apk) | 배포에 Alpine Linux 패키지 관리자(apk)가 포함된 경우 경고입니다. | 활성화됨 |
빌드 또는 배포 | 이미지의 curl | 배포에 curl이 포함된 경우 경고입니다. | 비활성화됨 |
빌드 또는 배포 | Docker CIS 4.1: 컨테이너의 사용자가 생성됨 확인 | 컨테이너가 루트가 아닌 사용자로 실행 중인지 확인합니다. | 활성화됨 |
빌드 또는 배포 | Docker CIS 4.7: 업데이트 설명에 대한 경고 | 업데이트 지침이 Dockerfile에서 단독으로 사용되지 않도록 합니다. | 활성화됨 |
빌드 또는 배포 | CMD에 지정된 비보안 | 배포에서 명령에서 '비보안'을 사용하는 경우 경고입니다. | 활성화됨 |
빌드 또는 배포 | latest 태그 | 배포에 'latest' 태그를 사용하는 이미지가 포함된 경우 경고입니다. | 활성화됨 |
빌드 또는 배포 | Red Hat Package Manager in Image | 배포에 Red Hat, Fedora 또는 CentOS 패키지 관리 시스템의 구성 요소가 포함된 경우 경고입니다. | 활성화됨 |
빌드 또는 배포 | 필수 이미지 레이블 | 배포에 지정된 레이블이 없는 이미지가 포함된 경우 경고입니다. | 비활성화됨 |
빌드 또는 배포 | Ubuntu Package Manager 실행 | Ubuntu 패키지 관리 시스템의 사용을 감지합니다. | 활성화됨 |
빌드 또는 배포 | 이미지의 Ubuntu 패키지 관리자 | 배포에 이미지의 Debian 또는 Ubuntu 패키지 관리 시스템의 구성 요소가 포함된 경우 경고입니다. | 활성화됨 |
빌드 또는 배포 | 이미지의 wget | 배포에 wget이 포함된 경우 경고입니다. | 비활성화됨 |
배포 | 모든 기능 삭제 | 배포가 모든 기능을 삭제하지 않을 때 경고합니다. | 비활성화됨 |
배포 | Orchestrator Secrets Volume의 부적절한 사용 | 배포에서 'VOLUME /run/secrets'와 함께 Dockerfile을 사용하는 경우 경고. | 활성화됨 |
배포 | 배포된 Kubernetes 대시보드 | Kubernetes 대시보드 서비스가 감지되면 경고입니다. | 활성화됨 |
배포 | 필수 주석: 이메일 | 배포에 'email' 주석이 없는 경우 경고입니다. | 비활성화됨 |
배포 | 필수 주석: 소유자/팀 | 배포에 'owner' 또는 'team' 주석이 없는 경우 경고입니다. | 비활성화됨 |
배포 | 필수 레이블: 소유자/팀 | 배포에 'owner' 또는 'team' 레이블이 없는 경우 경고입니다. | 비활성화됨 |
런타임 | Alpine Linux Package Manager 실행 | 런타임에 Alpine Linux 패키지 관리자(apk)가 실행되는 경우 경고입니다. | 활성화됨 |
런타임 | chkconfig 실행 | 일반적으로 컨테이너에서 사용되지 않는 ckconfig 서비스 관리자의 사용량을 감지합니다. | 활성화됨 |
런타임 | 컴파일러 툴 실행 | 소프트웨어를 컴파일하는 바이너리 파일이 런타임에 실행되는 경우 경고입니다. | 활성화됨 |
런타임 | Red Hat Package Manager 실행 | 런타임 시 Red Hat, Fedora 또는 CentOS 패키지 관리자 프로그램이 실행되는 경우 경고입니다. | 활성화됨 |
런타임 | 쉘 관리 | 쉘을 추가하거나 제거하기 위해 명령이 실행될 때의 경고입니다. | 비활성화됨 |
런타임 | systemctl Execution | systemctl 서비스 관리자의 사용을 감지합니다. | 활성화됨 |
런타임 | systemd 실행 | systemd 서비스 관리자의 사용량을 감지합니다. | 활성화됨 |
6.3.5. 기본 보안 정책
Red Hat Advanced Cluster Security for Kubernetes에는 보안 문제를 식별하고 해당 환경의 보안에 대한 모범 사례를 제공하는 광범위한 기본 정책이 포함되어 있습니다. RHACS 포털을 사용하여 기본 정책을 보고 복제한 다음 복제된 기본 정책을 편집할 수 있습니다.
정책에서 기본 정책은 코드 기능으로 지원되지 않습니다.
기본 정책을 보려면 다음을 수행합니다.
- RHACS 포털에서 플랫폼 구성 → 정책 관리로 이동합니다.
또한 정책 보기를 사용하면 정책을 구성할 수 있습니다.
정책 정보는 다음 그룹으로 구성됩니다.
- 정책: 정책의 이름입니다.
- Description: 정책에 대한 경고에 대한 자세한 설명입니다.
- status : 정책의 현재 상태( 활성화됨 또는 Disabled )입니다.
- Notifiers: 정책에 대해 구성된 알림자 목록입니다.
- 심각도: 필요한 관심 정도에 따라 심각, 높음, 중간 또는 낮음 정책의 순위입니다.
- 라이프사이클: 이 정책이 적용되는 컨테이너 라이프사이클(빌드, 배포 또는 런타임)과 정책이 활성화되면 시행이 적용되는 단계입니다.
- 정책 카테고리: 범주를 나열하고 정책의 카테고리를 관리할 수 있습니다. 기본적으로 모든 범주가 나열됩니다. 카테고리 이름을 사용하여 카테고리를 선택적으로 필터링합니다.
기본 정책을 삭제하거나 기본 정책에 대한 정책 기준을 편집할 수 없습니다.
7장. 네트워크 정책 관리
Kubernetes 네트워크 정책은 Pod 그룹이 서로 및 기타 네트워크 끝점과 통신할 수 있는 방법에 대한 사양입니다. 이러한 네트워크 정책은 YAML 파일로 구성됩니다. 이러한 파일만으로는 적용된 네트워크 정책이 원하는 네트워크 토폴로지를 달성하는지 여부를 식별하기가 어려운 경우가 많습니다.
RHACS(Red Hat Advanced Cluster Security for Kubernetes)는 오케스트레이터에서 정의된 모든 네트워크 정책을 수집하고 이러한 정책을 보다 쉽게 사용할 수 있는 툴을 제공합니다.
네트워크 정책 적용을 지원하기 위해 RHACS는 다음 툴을 제공합니다.
- 네트워크 그래프
- 네트워크 정책 생성기
- 네트워크 정책 시뮬레이터
- 빌드 시간 네트워크 정책 생성기
7.1. 네트워크 그래프
7.1.1. 네트워크 그래프 정보
네트워크 그래프는 사용자 환경의 배포, 네트워크 흐름 및 네트워크 정책에 대한 고급 및 자세한 정보를 제공합니다.
RHACS는 보안된 각 클러스터의 모든 네트워크 정책을 처리하여 서로 연결할 수 있고 외부 네트워크에 연결할 수 있는 배포를 보여줍니다. 또한 실행 중인 배포를 모니터링하고 해당 배포 간의 트래픽을 추적합니다. 네트워크 그래프에서 다음 항목을 볼 수 있습니다.
- 내부 엔티티
- 이는 RFC 1918 에 정의된 대로 배포와 개인 주소 공간에 속하는 IP 주소 간의 연결을 나타냅니다. 자세한 내용은 "내부 엔티티와 관련된 연결"을 참조하십시오.
- 외부 엔티티
- 이는 RFC 1918 에 정의된 대로 개인 주소 공간에 속하지 않는 배포와 IP 주소 간의 연결을 나타냅니다. 자세한 내용은 "네트워크 그래프의 외부 엔티티 및 연결"을 참조하십시오.
- 네트워크 구성 요소
- 상단 메뉴에서 네임스페이스( NS 레이블로 표시) 및 배포( D 레이블로 표시됨)를 선택하여 선택한 클러스터의 그래프( CL 레이블로 표시됨)에 표시할 수 있습니다. 드롭다운 목록을 사용하고 일반적인 취약점 및 노출(CVEs), 라벨 및 이미지와 같이 필터링할 기준을 선택하여 배포를 추가로 필터링할 수 있습니다.
- 네트워크 흐름
- 그래프에 대해 다음 흐름 중 하나를 선택할 수 있습니다.
- 활성 트래픽
- 이 기본 옵션을 선택하면 선택한 네임스페이스 또는 특정 배포에 중점을 둔 관찰된 트래픽이 표시됩니다. 정보를 표시할 기간을 선택할 수 있습니다.
- 비활성 흐름
- 이 옵션을 선택하면 네트워크 정책에서 허용하는 잠재적 흐름이 표시되어 더 엄격한 격리를 달성하는 데 필요한 누락된 네트워크 정책을 식별할 수 있습니다. 정보를 표시할 기간을 선택할 수 있습니다.
- 네트워크 정책
- 선택한 구성 요소에 대한 기존 정책을 보거나 정책이 없는 구성 요소를 볼 수 있습니다. 네트워크 그래프 보기에서 네트워크 정책을 시뮬레이션할 수도 있습니다. 자세한 내용은 "네트워크 그래프에서 네트워크 정책 시뮬레이션"을 참조하십시오.
7.1.1.2. 네트워크 그래프의 외부 엔티티 및 연결
네트워크 그래프 보기는 관리 클러스터와 외부 소스 간의 네트워크 연결을 보여줍니다. 또한 RHACS는 Google Cloud, AWS, Microsoft Azure, Oracle Cloud 및 Cryostat와 같은 공개 CIDR(Classless Inter-Domain Routing) 주소 블록을 자동으로 검색하고 강조 표시합니다. 이 정보를 사용하면 활성 외부 연결로 배포를 식별하고 네트워크 외부에서 무단 연결을 만들고 있는지 확인할 수 있습니다.
기본적으로 외부 연결은 네트워크 그래프의 공통 외부 엔티티 아이콘 및 다른 CIDR 주소 블록을 가리킵니다. 그러나 CIDR 블록 관리를 클릭하고 자동 검색 CIDR 블록을 선택 해제하여 자동 검색 CIDR 블록을 표시하지 않도록 선택할 수 있습니다.
RHACS에는 다음 클라우드 공급자를 위한 IP 범위가 포함되어 있습니다.
- Google Cloud
- AWS
- Microsoft Azure
- Oracle Cloud
- Cloudflare
RHACS는 7일마다 클라우드 공급자의 IP 범위를 가져와서 업데이트하고 CIDR 블록을 매일 업데이트합니다. 오프라인 모드를 사용하는 경우 새 지원 패키지를 설치하여 이러한 범위를 업데이트할 수 있습니다.
다음 이미지는 네트워크 그래프의 예를 제공합니다. 이 예에서 사용자가 선택한 옵션에 따라 그래프는 선택한 네임스페이스의 배포를 보여줍니다. 배포와 같은 항목을 클릭할 때까지 트래픽 흐름이 표시되지 않습니다. 그래프는 빨간색 배지를 사용하여 정책이 누락되어 모든 네트워크 트래픽을 허용하는 배포를 나타냅니다.
7.1.1.3. 내부 엔티티와 관련된 연결
네트워크 그래프는 알려진 배포 또는 CIDR 블록에 속하지 않는 엔터티에 대한 활성 연결이 있는 배포를 식별하는 데 유용합니다. 이러한 연결 중 일부는 클러스터 외부에 도달하지 않으며 클러스터의 개인 네트워크 내에서 수행됩니다. 네트워크 그래프는 내부 엔티티에 대한 연결 또는 내부 엔터티 로 이를 나타냅니다.
내부 엔터티와의 연결은 RFC 1918 에 정의된 대로 개인 주소 공간에 속하는 배포와 IP 주소 간의 연결을 나타냅니다. 경우에 따라 Sensor가 연결에 관련된 배포 중 하나 또는 두 개를 식별할 수 없습니다. 이 경우 시스템은 IP 주소를 분석하고 연결이 내부인지 외부인지 결정합니다.
다음 시나리오에서는 내부 엔티티와 관련된 연결로 분류될 수 있습니다.
- IP 주소 변경 또는 연결을 시작하는 동안(서버) 연결을 수락하는 배포 삭제(클라이언트)는 여전히 연결을 시도합니다.
- 오케스트레이터 API와 통신하는 배포
- 네트워킹 CNI 플러그인을 사용하여 통신하는 배포(예: Calico)
- 센서를 다시 시작하여 IP 주소 매핑이 이전 배포(예: Sensor가 과거 엔티티의 IP 주소 또는 기존 엔티티의 과거 IP 주소를 인식하지 못하는 경우)를 재설정합니다.
- 오케스트레이터에 의해 관리되지 않는 엔티티를 포함하는 연결(경우에 따라 클러스터 외부에서볼 수 있지만 RFC 1918에 정의된 대로 개인 주소 공간의 IP 주소를 사용함)
내부 엔티티는 다음 그래픽에 표시된 대로 아이콘으로 표시됩니다. 내부 엔터티를 클릭하면 이러한 엔터티 의 흐름이 표시됩니다.
그림 7.4. 내부 엔터티 예

7.1.2. 액세스 제어 및 권한
네트워크 그래프를 보려면 사용자에게 네트워크 그래프 뷰어 기본 권한이 설정된 최소한 권한이 있어야 합니다.
네트워크 그래프 뷰어 권한 세트에 다음 권한이 부여됩니다.
-
배포
읽기 -
네트워크Graph
읽기 -
NetworkPolicy
읽기
자세한 내용은 "추가 리소스" 섹션의 "시스템 권한 세트"를 참조하십시오.
추가 리소스
7.1.3. 배포 정보 보기
네트워크 그래프는 RHACS가 검색한 배포, 네임스페이스 및 연결에 대한 시각적 맵을 제공합니다. 그래프에서 배포를 클릭하면 다음 세부 정보를 포함하여 배포에 대한 정보를 볼 수 있습니다.
- 흐름 수, 기존 또는 누락된 네트워크 정책 규칙 및 수신 포트와 같은 네트워크 보안
- 레이블 및 주석
- 포트 구성
- 컨테이너 정보
- 프로토콜 및 포트 번호를 포함하여 수신 및 송신 연결에 대한 비정상적인 및 기준 흐름
- 네트워크 정책
프로세스
네임스페이스에서 배포 세부 정보를 보려면 다음을 수행합니다.
- RHACS 포털에서 Network Graph 로 이동하여 드롭다운 목록에서 클러스터를 선택합니다.
- 네임스페이스 목록을 클릭하고 검색 필드를 사용하여 네임스페이스를 검색하거나 개별 네임스페이스를 선택합니다.
- Deployments 목록을 클릭하고 search 필드를 사용하여 배포를 검색하거나 네트워크 그래프에 표시할 개별 배포를 선택합니다.
- 네트워크 그래프에서 배포를 클릭하여 정보 패널을 확인합니다.
- 세부 정보,흐름,기준선 또는 네트워크 정책 탭을 클릭하여 해당 정보를 확인합니다.
7.1.4. 네트워크 그래프에서 네트워크 정책 보기
네트워크 정책은 Pod 그룹이 서로 및 다른 네트워크 끝점과 통신할 수 있는 방법을 지정합니다. Kubernetes NetworkPolicy
리소스는 라벨을 사용하여 Pod를 선택하고 선택한 Pod에 허용되는 트래픽을 지정하는 규칙을 정의합니다. RHACS는 네트워크 그래프에서 모든 Kubernetes 클러스터, 네임스페이스, 배포 및 Pod에 대한 네트워크 정책 정보를 검색하고 표시합니다.
프로세스
- RHACS 포털에서 Network Graph 로 이동하여 드롭다운 목록에서 클러스터를 선택합니다.
- 네임스페이스 목록을 클릭하고 개별 네임스페이스를 선택하거나 검색 필드를 사용하여 네임스페이스를 찾습니다.
- Deployments 목록을 클릭하고 개별 배포를 선택하거나 검색 필드를 사용하여 배포를 찾습니다.
- 네트워크 그래프에서 배포를 클릭하여 정보 패널을 확인합니다.
세부 정보 탭의 네트워크 보안 섹션에서 다음 정보를 제공하는 네트워크 정책 규칙에 대한 요약 메시지를 볼 수 있습니다.
- 수신 또는 송신 트래픽을 규제하는 네트워크에 정책이 있는 경우
- 네트워크가 정책이 누락되어 모든 수신 또는 송신 트래픽을 허용하는 경우
- 네트워크 정책에 대한 YAML 파일을 보려면 정책 규칙을 클릭하거나 네트워크 정책 탭을 클릭합니다.
7.1.5. 네트워크 그래프에서 CIDR 블록 구성
사용자 지정 CIDR 블록을 지정하거나 네트워크 그래프의 자동 검색 CIDR 블록 표시를 구성할 수 있습니다.
프로세스
RHACS 포털에서 네트워크 그래프로 이동한 다음 CIDR 블록 관리를 선택합니다. 다음 작업을 수행할 수 있습니다.
자동 검색 CIDR 블록을 전환하여 네트워크 그래프에서 자동 검색되는 CIDR 블록을 숨깁니다.
참고자동 검색 CIDR 블록을 숨기면 네트워크 그래프에서 선택한 클러스터뿐만 아니라 모든 클러스터에 대해 자동 검색 CIDR 블록이 숨겨집니다.
다음 단계를 수행하여 그래프에 사용자 지정 CIDR 블록을 추가합니다.
- 필드에 CIDR 이름과 CIDR 주소를 입력합니다. 추가 CIDR 블록을 추가하려면 CIDR 블록 추가를 클릭하고 각 블록에 대한 정보를 입력합니다.
- 구성 업데이트를 클릭하여 변경 사항을 저장합니다.
7.2. 네트워크 그래프를 사용하여 네트워크 정책을 생성하고 시뮬레이션
7.2.1. 네트워크 그래프에서 정책 생성 정보
Kubernetes 네트워크 정책은 들어오는 네트워크 트래픽을 수신하는 포드와 발신 트래픽을 보낼 수 있는 포드를 제어합니다. 네트워크 정책을 사용하여 Pod로의 또는 Pod로의 트래픽을 활성화 및 비활성화하면 네트워크 공격 면적을 제한할 수 있습니다.
이러한 네트워크 정책은 YAML 구성 파일입니다. 네트워크 흐름에 대한 통찰력을 얻고 이러한 파일을 수동으로 생성하는 것은 종종 어렵습니다. RHACS를 사용하여 이러한 파일을 생성할 수 있습니다. 네트워크 정책을 자동으로 생성하면 RHACS는 다음 지침을 따릅니다.
RHACS는 네임스페이스의 각 배포에 대해 단일 네트워크 정책을 생성합니다. 정책의 Pod 선택기는 배포의 Pod 선택기입니다.
배포에 이미 네트워크 정책이 있는 경우 RHACS는 새 정책을 생성하거나 기존 정책을 삭제하지 않습니다.
생성된 정책은 트래픽을 기존 배포로만 제한합니다.
- 나중에 생성하는 배포에는 새 네트워크 정책을 생성하거나 생성하지 않는 한 제한이 없습니다.
- 새 배포가 네트워크 정책을 사용하여 배포에 문의해야 하는 경우 액세스를 허용하려면 네트워크 정책을 편집해야 할 수 있습니다.
-
각 정책에는 배포 이름과 동일한 이름이 있으며,
stackrox-generated-
접두사가 붙습니다. 예를 들어 생성된 네트워크 정책에서 배포depABC
의 정책 이름은stackrox-generated-depABC
입니다. 생성된 모든 정책에도 식별 레이블이 있습니다. RHACS는 다음 조건 중 하나가 충족되는 경우 IP 주소의 트래픽을 허용하는 단일 규칙을 생성합니다.
- 배포는 선택한 시간 내에 클러스터 외부에서 들어오는 연결이 있습니다.
- 배포는 노드 포트 또는 로드 밸런서 서비스를 통해 노출됨
RHACS는 들어오는 연결이 있는 모든 배포에 대해 하나의
수신
규칙을 생성합니다.- 동일한 네임스페이스에 있는 배포의 경우 이 규칙은 다른 배포의 Pod 선택기 레이블을 사용합니다.
-
다른 네임스페이스의 배포의 경우 이 규칙은 네임스페이스 선택기를 사용합니다. 이를 위해 RHACS는 각 네임스페이스에
namespace.metadata.stackrox.io/name
레이블을 자동으로 추가합니다.
드문 경우지만 독립 실행형 Pod에 라벨이 없는 경우 생성된 정책은 Pod의 전체 네임스페이스에서 또는 해당 Pod의 전체 네임스페이스로의 트래픽을 허용합니다.
7.2.2. 네트워크 그래프에서 네트워크 정책 생성
RHACS를 사용하면 사용자 환경에서 실제 관찰되는 네트워크 통신 흐름을 기반으로 네트워크 정책을 자동으로 생성할 수 있습니다.
네트워크 그래프에서 선택한 클러스터, 네임스페이스 및 배포를 기반으로 정책을 생성할 수 있습니다. 현재 Network Graph 범위에 포함된 배포에 대해 정책이 생성됩니다. 예를 들어 현재 범위에는 전체 클러스터, 클러스터 및 네임스페이스 또는 선택한 네임스페이스에서 개별적으로 선택한 배포가 포함될 수 있습니다. 또한 클러스터, 네임스페이스, 배포 선택과 함께 필터 배포 필드에서 필터 중 하나를 적용하여 범위를 추가로 줄일 수도 있습니다. 예를 들어 특정 CVE의 영향을 받는 특정 클러스터 및 네임스페이스의 배포 범위 범위를 좁힐 수 있습니다. 정책은 기준 검색 기간 중에 관찰되는 트래픽에서 생성됩니다.
- RHACS 포털에서 네트워크 그래프로 이동합니다.
- 클러스터를 선택한 다음 하나 이상의 네임스페이스를 선택합니다.
- 선택 사항: 개별 배포를 선택하여 생성된 정책을 해당 배포로만 제한합니다. 배포 필터 기능을 사용하여 범위를 추가로 좁힐 수도 있습니다.
- 네트워크 그래프 헤더에서 네트워크 정책 생성기 를 선택합니다.
선택 사항: 열리는 정보 패널에서 포트 및 프로토콜 제외 를 선택하여 기준에서 네트워크 정책을 생성할 때 포트/프로토콜 제한을 제거합니다.
예를 들어
nginx3
배포는nginx4
에 포트 80을 연결하며nginx4
의 기준선의 일부로 포함됩니다. 정책이 생성되고 이 확인란이 선택되지 않은 경우 생성된 정책은nginx3
에서nginx4
로 허용되는 연결을 포트 80으로 제한합니다. 이 옵션을 선택하여 정책이 생성되면 생성된 정책에서nginx3
에서nginx4
로의 연결의 모든 포트를 허용합니다.네트워크 정책 생성 및 시뮬레이션을 클릭합니다. RHACS는 선택한 범위에 대한 정책을 생성합니다. 이 범위는 Generate network policy panel 상단에 표시됩니다.
참고범위에서 배포 정보를 클릭하면 포함된 배포 목록이 표시됩니다.
- 선택 사항: 생성된 네트워크 정책 구성 YAML 파일을 클립보드에 복사하거나 패널에서 다운로드 아이콘을 클릭하여 다운로드합니다.
선택 사항: 생성된 네트워크 정책을 기존 네트워크 정책과 비교하려면 비교 를 클릭합니다. 기존 및 생성된 네트워크 정책의 YAML 파일이 side-by-side 보기에 표시됩니다.
참고일부 항목에는
stackrox
또는acs
와 같이 보호된 특정 네임스페이스에 있는 네임스페이스 또는 기존 Ingress 정책이 있는 네임스페이스와 같이 생성된 정책이 없습니다.선택 사항: 작업 메뉴를 클릭하여 다음 작업을 수행합니다.
- 알림자와 YAML 파일 공유: YAML 파일을 구성한 시스템 알림자(예: Slack, ServiceNow 또는 일반 Webhook를 사용하는 애플리케이션) 중 하나로 보냅니다. 이러한 알림자는 플랫폼 구성 → 통합으로 이동하여 구성됩니다. 자세한 내용은 "추가 리소스" 섹션의 설명서를 참조하십시오.
- 활성 트래픽에서 규칙을 다시 빌드: 표시되는 생성된 정책을 새로 고칩니다.
- 이전에 적용한 YAML로 규칙 되돌리기: 시뮬레이션된 정책을 제거하고 마지막 네트워크 정책으로 되돌립니다.
7.2.3. 네트워크 그래프에 생성된 정책 저장
RHACS에서 생성된 네트워크 정책을 다운로드하여 저장할 수 있습니다. Git과 같은 버전 제어 시스템에 정책을 커밋할 수 있도록 이 옵션을 사용하여 정책을 다운로드합니다.
프로세스
- 네트워크 정책을 생성한 후 네트워크 정책 시뮬레이터 패널에서 YAML 다운로드 아이콘을 클릭합니다.
7.2.4. 네트워크 그래프에서 생성된 정책 테스트
RHACS가 생성하는 네트워크 정책을 다운로드한 후 CLI 또는 자동화된 배포 절차를 사용하여 클러스터에 적용하여 테스트할 수 있습니다. 네트워크 그래프에는 생성된 네트워크 정책을 직접 적용할 수 없습니다.
프로세스
네트워크 정책을 직접 적용하면 실행 중인 애플리케이션에 문제가 발생할 수 있습니다. 프로덕션 워크로드에 적용하기 전에 항상 개발 환경에서 네트워크 정책을 다운로드 및 테스트하거나 클러스터를 테스트하십시오.
7.2.5. 네트워크 그래프에서 이전에 적용된 정책으로 되돌리기
정책을 제거하고 이전에 적용한 정책으로 되돌릴 수 있습니다.
프로세스
- RHACS 포털에서 네트워크 그래프로 이동합니다.
- 상단 표시줄의 메뉴에서 클러스터 이름을 선택합니다.
- 하나 이상의 네임스페이스 및 배포를 선택합니다.
- 네트워크 정책 시뮬레이션을 선택합니다.
- 활성 YAML 보기를 선택합니다.
Actions 메뉴에서 Revert rules to previously applied YAML 을 선택합니다.
주의네트워크 정책을 직접 적용하면 실행 중인 애플리케이션에 문제가 발생할 수 있습니다. 프로덕션 워크로드에 적용하기 전에 항상 개발 환경에서 네트워크 정책을 다운로드 및 테스트하거나 클러스터를 테스트하십시오.
7.2.6. 네트워크 그래프에서 자동 생성되는 모든 정책 삭제
RHACS를 사용하여 생성한 클러스터에서 자동으로 생성된 모든 정책을 삭제할 수 있습니다.
프로세스
다음 명령을 실행합니다.
$ oc get ns -o jsonpath='{.items[*].metadata.name}' | \ xargs -n 1 oc delete networkpolicies -l \ 'network-policy-generator.stackrox.io/generated=true' -n 1
- 1
- Kubernetes를 사용하는 경우
oc
대신kubectl
을 입력합니다.
7.2.7. 네트워크 그래프에서 네트워크 정책 시뮬레이션
현재 네트워크 정책에서 불필요한 네트워크 통신을 허용할 수 있습니다. 네트워크 정책 생성기를 사용하여 일련의 배포를 위해 수신 트래픽을 계산된 기준선으로 제한하는 네트워크 정책을 생성할 수 있습니다.
네트워크 그래프는 시각화에 생성된 정책을 표시하지 않습니다. 생성된 정책은 수신 트래픽 및 송신 트래픽을 제한하는 정책에만 해당되지 않습니다.
프로세스
- RHACS 포털에서 네트워크 그래프로 이동합니다.
- 클러스터를 선택한 다음 하나 이상의 네임스페이스를 선택합니다.
- 네트워크 그래프 헤더에서 네트워크 정책 생성기 를 선택합니다.
다음 작업을 수행할 수 있습니다.
- 네트워크 정책 생성 및 시뮬레이션을 클릭하여 시뮬레이션에 사용할 네트워크 정책으로 YAML 파일을 생성합니다. 자세한 내용은 "네트워크 그래프에서 네트워크 정책 생성"을 참조하십시오.
다음 단계를 수행하여 시뮬레이션에서 사용할 네트워크 정책의 YAML 파일을 업로드합니다.
- Upload YAML 을 클릭한 다음 파일을 선택합니다.
- Open 을 클릭합니다. 시스템은 업로드된 정책의 처리 상태를 나타내는 메시지를 표시합니다.
활성 YAML S 탭을 클릭한 다음 드롭다운 목록에서 정책을 선택하여 현재 네트워크 정책에 해당하는 활성 YAML 파일을 볼 수 있습니다. 다음 작업을 수행할 수도 있습니다.
- 적절한 버튼을 클릭하여 표시된 YAML 파일을 복사하거나 다운로드합니다.
- Actions 메뉴를 사용하여 활성 트래픽에서 규칙을 다시 빌드하거나 이전에 적용된 YAML로 규칙을 되돌립니다. 자세한 내용은 "네트워크 그래프에서 네트워크 정책 생성"을 참조하십시오.
7.3. 네트워크 그래프의 네트워크 기반 구성 정보
RHACS에서는 네트워크 기본 설정을 사용하여 위험을 최소화할 수 있습니다. 인프라를 안전하게 유지하기 위한 사전 예방적 접근 방식입니다. RHACS는 먼저 기존 네트워크 흐름을 검색하고 기준선을 생성한 다음 이 기준 외부로 네트워크 흐름을 비정상적인 것으로 처리합니다.
RHACS를 설치할 때 기본 네트워크 기준이 없습니다. RHACS는 네트워크 흐름을 검색하므로 기준선을 생성하고 다음 지침에 따라 검색된 모든 네트워크 흐름을 추가합니다.
- RHACS에서 새로운 네트워크 활동을 검색하면 해당 네트워크 흐름이 네트워크 기준선에 추가됩니다.
- 네트워크 흐름은 비정상적인 흐름으로 표시되지 않으며 위반을 트리거하지 않습니다.
검색 단계 후 다음 작업이 수행됩니다.
- RHACS는 네트워크 흐름을 네트워크 기준선에 추가하는 것을 중지합니다.
- 네트워크 기준선에 없는 새 네트워크 흐름은 비정상적인 흐름으로 표시되지만 위반을 트리거하지는 않습니다.
7.3.1. 네트워크 그래프에서 네트워크 기준 보기
네트워크 그래프 보기에서 네트워크 기준을 볼 수 있습니다.
프로세스
- 네임스페이스 목록을 클릭하고 검색 필드를 사용하여 네임스페이스를 검색하거나 개별 네임스페이스를 선택합니다.
- Deployments 목록을 클릭하고 search 필드를 사용하여 배포를 검색하거나 네트워크 그래프에 표시할 개별 배포를 선택합니다.
- 네트워크 그래프에서 배포를 클릭하여 정보 패널을 확인합니다.
- Baseline 탭을 선택합니다. 엔터티 이름 필드별 필터 를 사용하여 표시되는 흐름을 추가로 제한합니다.
선택 사항: 다음 작업 중 하나를 수행하여 기준 흐름을 비정상적인 것으로 표시할 수 있습니다.
-
개별 엔터티를 선택합니다. 오버플로 메뉴
를 클릭한 다음 불순 으로 표시 를 선택합니다.
- 여러 엔터티를 선택한 다음 Bulk 작업을 클릭하고 비정상적인 것으로 표시 를 선택합니다.
-
개별 엔터티를 선택합니다. 오버플로 메뉴
- 선택 사항: 포트 및 프로토콜을 제외하려면 상자를 선택합니다.
- 선택 사항: 기준값을 네트워크 정책 YAML 파일로 저장하려면 Download baseline as network policy 를 클릭합니다.
7.3.2. 네트워크 그래프에서 네트워크 기준 다운로드
네트워크 그래프 뷰에서 YAML 파일로 네트워크 기준을 다운로드할 수 있습니다.
프로세스
- RHACS 포털에서 네트워크 그래프로 이동합니다.
- 네임스페이스 목록을 클릭하고 검색 필드를 사용하여 네임스페이스를 검색하거나 개별 네임스페이스를 선택합니다.
- Deployments 목록을 클릭하고 search 필드를 사용하여 배포를 검색하거나 네트워크 그래프에 표시할 개별 배포를 선택합니다.
- 네트워크 그래프에서 배포를 클릭하여 정보 패널을 확인합니다.
- 베이스라인 탭에는 기준 흐름이 나열됩니다. 엔터티 이름 필드별 필터 를 사용하여 흐름 목록을 추가로 제한합니다.
- 선택 사항: 포트 및 프로토콜을 제외하려면 상자를 선택합니다.
- 네트워크 정책으로 기준 다운로드를 클릭합니다.
7.3.3. 네트워크 baselining 시간 프레임 구성
ROX_NETWORK_BASELINE_OBSERVATION_PERIOD
및 ROX_BASELINE_GENERATION_DURATION
환경 변수를 사용하여 관찰 기간 및 네트워크 기준 생성 기간을 구성할 수 있습니다.
프로세스
다음 명령을 실행하여
ROX_NETWORK_BASELINE_OBSERVATION_PERIOD
환경 변수를 설정합니다.$ oc -n stackrox set env deploy/central \1 ROX_NETWORK_BASELINE_OBSERVATION_PERIOD=<value> 2
다음 명령을 실행하여
ROX_BASELINE_GENERATION_DURATION
환경 변수를 설정합니다.$ oc -n stackrox set env deploy/central \1 ROX_BASELINE_GENERATION_DURATION=<value> 2
7.3.4. 네트워크 그래프의 기준 위반에 대한 경고 활성화
비정상적인 네트워크 흐름을 감지하고 기준선에 없는 트래픽에 대한 위반을 트리거하도록 RHACS를 구성할 수 있습니다. 이렇게 하면 네트워크 정책으로 트래픽을 차단하기 전에 네트워크에 원하지 않는 트래픽이 포함되어 있는지 확인하는 데 도움이 될 수 있습니다.
프로세스
- 네임스페이스 목록을 클릭하고 검색 필드를 사용하여 네임스페이스를 검색하거나 개별 네임스페이스를 선택합니다.
- Deployments 목록을 클릭하고 search 필드를 사용하여 배포를 검색하거나 네트워크 그래프에 표시할 개별 배포를 선택합니다.
- 네트워크 그래프에서 배포를 클릭하여 정보 패널을 확인합니다.
- Baseline 탭에서는 기준 흐름을 볼 수 있습니다. 엔터티 이름 필드별 필터 를 사용하여 표시되는 흐름을 추가로 제한합니다.
기준 위반 옵션에서 경고를 전환합니다.
- 기본 위반 옵션에서 경고를 전환하면 비정상적인 네트워크 흐름으로 인해 위반이 트리거됩니다.
- 기본 위반 옵션에서 경고를 다시 전환하여 비정상적인 네트워크 흐름에 대한 위반을 수신하지 않을 수 있습니다.
8장. 빌드 시간 네트워크 정책 툴
빌드 시간 네트워크 정책 툴을 사용하면 roxctl
CLI를 사용하여 개발 및 작업 워크플로우에서 Kubernetes 네트워크 정책 생성 및 검증을 자동화할 수 있습니다. 이러한 툴은 프로젝트의 워크로드 및 네트워크 정책 매니페스트가 포함된 지정된 파일 디렉터리에서 작동하며 RHACS 인증이 필요하지 않습니다.
명령 | 설명 |
---|---|
| 지정된 디렉터리에서 프로젝트의 YAML 매니페스트를 분석하여 Kubernetes 네트워크 정책을 생성합니다. 자세한 내용은 빌드 시간 네트워크 정책 생성기 사용을 참조하십시오. |
|
워크로드 및 Kubernetes 네트워크 정책 매니페스트를 검사하여 프로젝트 디렉터리의 워크로드 간 허용된 연결을 나열합니다. 다양한 텍스트 형식 또는 그래픽 |
|
두 프로젝트 버전 간의 허용된 연결에서 변형 목록을 생성합니다. 이는 각 버전의 디렉터리의 워크로드 및 Kubernetes 네트워크 정책 매니페스트에 따라 결정됩니다. 이 기능은 소스 코드 (syntactic) |
8.1. 빌드 시간 네트워크 정책 생성기
빌드 시간 네트워크 정책 생성기는 애플리케이션 YAML 매니페스트를 기반으로 Kubernetes 네트워크 정책을 자동으로 생성할 수 있습니다. 이를 사용하여 클러스터에 애플리케이션을 배포하기 전에 CI/CD(Continuous Integration/continuous deployment) 파이프라인의 일부로 네트워크 정책을 개발할 수 있습니다.
Red Hat은 NP-Guard 프로젝트 의 개발자와 협력하여 이 기능을 개발했습니다. 먼저 빌드 타임 네트워크 정책 생성기는 서비스 매니페스트, 구성 맵, Pod
,Deployment
,ReplicaSet
,Job
,DaemonSet
, StatefulSet
과 같은 워크로드 매니페스트를 포함하여 로컬 폴더의 Kubernetes 매니페스트를 분석합니다. 그런 다음 필요한 연결을 검색하고 Pod 분리를 달성하는 Kubernetes 네트워크 정책을 생성합니다. 이러한 정책은 필요한 수신 및 송신 트래픽보다 더 많은 것을 허용하지 않습니다.
8.1.1. 빌드 시간 네트워크 정책 생성기 사용
build-time 네트워크 정책 생성기는 roxctl
CLI에 포함되어 있습니다. 빌드 시간 네트워크 정책 생성 기능의 경우 roxctl
CLI는 RHACS Central과 통신할 필요가 없으므로 모든 개발 환경에서 사용할 수 있습니다.
사전 요구 사항
-
빌드 시간 네트워크 정책 생성기는 명령을 실행할 때 지정하는 디렉터리를 재귀적으로 스캔합니다. 따라서 명령을 실행하기 전에
Pod
,Deployment
,ReplicaSet
,Job
,DaemonSet
,StatefulSet
과 같은 서비스 매니페스트, 구성 맵 및 워크로드 매니페스트가 지정된 디렉터리에 YAML 파일로 이미 있어야 합니다. -
kubectl apply -f
명령을 사용하여 이러한 YAML 파일을 적용할 수 있는지 확인합니다. 빌드 시간 네트워크 정책 생성기는 Helm 스타일 템플릿을 사용하는 파일에서는 작동하지 않습니다. 서비스 네트워크 주소가 하드 코딩되지 않았는지 확인합니다. 서비스에 연결해야 하는 모든 워크로드는 서비스 네트워크 주소를 변수로 지정해야 합니다. 워크로드의 리소스 환경 변수 또는 구성 맵을 사용하여 이 변수를 지정할 수 있습니다.
서비스 네트워크 주소는 다음과 같은 공식 정규식 패턴과 일치해야 합니다.
(http(s)?://)?<svc>(.<ns>(.svc.cluster.local)?)?(:<portNum>)? 1
- 1
- 이 패턴에서는,
- <svc>는 서비스 이름입니다.
- <NS>는 서비스를 정의한 네임스페이스입니다.
- <portNum>은 노출된 서비스 포트 번호입니다.
다음은 패턴과 일치하는 몇 가지 예입니다.
-
wordpress-mysql:3306
-
redis-follower.redis.svc.cluster.local:6379
-
redis-leader.redis
-
http://rating-service.
프로세스
help 명령을 실행하여 빌드 시간 네트워크 정책 생성 기능을 사용할 수 있는지 확인합니다.
$ roxctl netpol generate -h
netpol generate
명령을 사용하여 정책을 생성합니다.$ roxctl netpol generate <folder_path> [flags] 1
- 1
- 폴더 경로를 지정합니다. 분석을 위한 YAML 리소스가 포함된 하위 폴더가 포함될 수 있습니다. 명령은 전체 하위 폴더 트리를 검사합니다. 선택적으로 매개변수를 지정하여 명령의 동작을 변경할 수도 있습니다.
추가 리소스
다음 단계
- 정책을 생성한 후에는 YAML 파일에서 관련 네트워크 주소가 예상대로 지정되지 않은 경우 완전성 및 정확성을 검사해야 합니다.
-
가장 중요한 것은 격리 정책에 의해 필요한 연결이 차단되지 않았는지 확인하십시오. 이 검사를 돕기 위해
roxctl netpol 연결 맵
도구를 사용할 수 있습니다.
자동화를 사용하여 워크로드 배포의 일부로 클러스터에 네트워크 정책을 적용하여 시간을 단축하고 정확성을 보장합니다. 가져오기 요청을 사용하여 생성된 정책을 제출하여 GitOps 접근 방식을 따라 파이프라인의 일부로 배포하기 전에 팀에 정책을 검토할 수 있습니다.
8.2. roxctl netpol 연결 맵 명령을 사용한 연결 매핑
연결 매핑은 Kubernetes 매니페스트에 정의된 네트워크 정책을 기반으로 다양한 워크로드 간에 허용되는 연결에 대한 세부 정보를 제공합니다. 설정한 네트워크 정책에 따라 Kubernetes 환경의 다양한 워크로드가 서로 통신할 수 있는 방법을 시각화하고 이해할 수 있습니다.
연결 매핑 정보를 검색하려면 roxctl netpol 연결 맵
명령에 Kubernetes 워크로드 및 네트워크 정책 매니페스트가 포함된 디렉터리 경로가 필요합니다. 출력은 Kubernetes 리소스 내의 연결 세부 정보에 대한 세부 정보를 제공합니다.
8.2.1. Kubernetes 매니페스트 디렉터리에서 연결 매핑 정보 검색
roxctl netpol connectivity map
명령을 사용하여 Kubernetes 매니페스트 디렉터리에서 연결 매핑 정보를 검색합니다.
프로세스
연결 매핑 정보를 검색하려면 다음 명령을 실행합니다.
roxctl netpol connectivity map <folder_path> [flags] 1
- 1
- 폴더의 경로를 지정합니다. 이 폴더에는 분석을 위한 YAML 리소스 및 네트워크 정책을 포함하는 하위 폴더(예:
netpol-analysis-example-minimal/
)를 포함할 수 있습니다. 명령은 전체 하위 폴더 트리를 검사합니다. 선택적으로 매개변수를 지정하여 명령의 동작을 수정할 수도 있습니다.
표 8.2. 출력 예 src DST Conn 0.0.0.0-255.255.255.255
default/frontend[Deployment]
TCP 8080
default/frontend[Deployment]
0.0.0.0-255.255.255.255
UDP 53
default/frontend[Deployment]
default/backend[Deployment]
TCP 9090
출력에는 허용된 연결 행이 나열된 테이블이 표시됩니다. 각 행은 다음 요소로 구성됩니다.
-
src
:: 소스 끝점을 나타냅니다. -
대상 끝점
을
나타냅니다.Represents the destination endpoint. -
Conn
:: 허용되는 연결 특성을 나타냅니다.
끝점은 namespace/name[Kind]
형식을 따릅니다. 예: default/backend[Deployment]
.
추가 리소스
8.2.2. 연결 맵 출력 형식 및 시각화
txt
,md
,csv
,json
및 dot
을 포함한 다양한 출력 형식을 사용할 수 있습니다. dot
형식은 출력을 연결 그래프로 시각화하는 데 이상적입니다. Graphviz 툴과 같은 그래프 시각화 소프트웨어 및 VSCode 확장을 사용하여 볼 수 있습니다. 로컬 또는 온라인 뷰어를 통해 Graphviz를 사용하여 svg
,jpeg
또는 png
과 같은 형식으로 도트
출력을 변환할 수 있습니다.
8.2.3. Graphviz를 사용하여 dot 출력에서 svg 그래프 생성
다음 단계에 따라 dot
출력에서 svg
형식으로 그래프를 생성합니다.
사전 요구 사항
- Graphviz 가 로컬 시스템에 설치되어 있습니다.
프로세스
다음 명령을 실행하여
svg
형식으로 그래프를 생성합니다.$ dot -Tsvg connlist_output.dot > connlist_output_graph.svg
다음은 Graphviz에서 생성된 점 출력 및 결과 그래프의 예입니다.
8.3. 프로젝트 버전 간 허용된 연결의 차이점 확인
이 명령을 사용하면 두 프로젝트 버전 간의 허용된 연결 차이점을 이해하는 데 도움이 됩니다. 각 버전의 디렉터리에 있는 워크로드 및 Kubernetes 네트워크 정책 매니페스트를 분석하고 텍스트 형식의 차이점을 나타냅니다.
텍스트
,md
,dot
, csv
등 다양한 출력 형식의 연결 차이점 보고서를 볼 수 있습니다.
8.3.1. roxctl netpol connectivity diff 명령을 사용하여 연결 차이점 보고서 생성
roxctl netpol connectivity diff
명령을 사용하여 네트워크 정책을 포함하여 두 개의 Kubernetes 매니페스트 세트 간의 연결 차이점에 대한 보고서를 생성합니다.
사전 요구 사항
-
dir1
및dir2
폴더에는 각각 네트워크 정책을 포함하여 Kubernetes 매니페스트가 포함됩니다.
프로세스
지정된 디렉터리에서 Kubernetes 매니페스트 간의 연결 차이점을 찾으려면 다음 명령을 실행합니다.
$ roxctl netpol connectivity diff --dir1=<folder_path_1> --dir2=<folder_path_2> [flags] 1
- 1
- 폴더 경로를 지정합니다. 여기에는 YAML 리소스 및 분석을 위한 네트워크 정책이 포함된 하위 폴더가 포함될 수 있습니다. 명령은 두 디렉토리의 전체 하위 폴더 트리를 스캔합니다.
예를 들어 <
folder_path_1
>은netpol-analysis-example-minimal/
이고 <folder_path_2
>는netpol-diff-example-example-minimal/
입니다. 선택적으로 매개변수를 지정하여 명령의 동작을 변경할 수도 있습니다.
이 명령은 kubectl apply -f
를 사용하여 허용할 수 있는 모든 YAML 파일을 고려한 다음 YAML 파일은 roxctl netpol connectivity diff
명령에 유효한 입력이 됩니다.
diff-type | 소스 | 대상 | dir 1 | dir 2 | workloads-diff-info |
---|---|---|---|---|---|
changed | default/frontend[Deployment] | default/backend[Deployment] | TCP 9090 | TCP 9090,UDP 53 | |
추가됨 | 0.0.0.0-255.255.255.255 | default/backend[Deployment] | 연결 없음 | TCP 9090 |
의미 체계 차이 보고서는 dir1
에서 허용되는 연결에 비해 dir2
에서 변경, 추가 또는 제거된 연결에 대한 개요를 제공합니다. 출력을 검토할 때 각 행은 dir1
에 비해 dir2
에서 추가, 제거 또는 변경된 허용된 연결을 나타냅니다.
해당하는 경우 workloads-diff-info
는 추가 또는 제거된 연결과 관련된 추가 또는 제거된 워크로드에 대한 추가 세부 정보를 제공합니다.
예를 들어 워크로드 B
가 삭제되어 워크로드 A
에서 워크로드 B
로의 연결이 제거되면 workloads-diff-info
는 워크로드 B
가 제거되었음을 나타냅니다. 그러나 네트워크 정책으로 인해 이러한 연결이 제거되고 워크로드 A
또는 B
가 삭제되지 않은 경우 workloads-diff-info
가 비어 있습니다.
8.3.2. 구문 및 의미 차이 출력 구분
다음 예에서 dir1
은 netpol-analysis-example-minimal/
이며 dir2
는 netpol-diff-example-minimal/
입니다. 디렉터리 간의 차이점은 네트워크 정책 backend-netpol
에서 약간의 변경 사항입니다.
dir1
의 정책 예:
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: creationTimestamp: null name: backend-netpol spec: ingress: - from: - podSelector: matchLabels: app: frontend ports: - port: 9090 protocol: TCP podSelector: matchLabels: app: backendservice policyTypes: - Ingress - Egress status: {}
dir2
의 변경 사항은 difference 출력을 생성하는 ports 속성 앞에 추가됩니다.
8.3.2.1. 구문 차이 출력
프로세스
다음 명령을 실행하여 지정된 두 디렉터리에 있는
netpols.yaml
파일의 내용을 비교합니다.$ diff netpol-diff-example-minimal/netpols.yaml netpol-analysis-example-minimal/netpols.yaml
출력 예
12c12 < - ports: --- > ports:
8.3.2.2. 의미 체계 차이 출력
프로세스
다음 명령을 실행하여 지정된 두 디렉터리에 있는 Kubernetes 매니페스트와 네트워크 정책 간의 연결 차이점을 분석합니다.
$ roxctl netpol connectivity diff --dir1=roxctl/netpol/connectivity/diff/testdata/netpol-analysis-example-minimal/ --dir2=roxctl/netpol/connectivity/diff/testdata/netpol-diff-example-minimal
출력 예
Connectivity diff: diff-type: changed, source: default/frontend[Deployment], destination: default/backend[Deployment], dir1: TCP 9090, dir2: TCP 9090,UDP 53 diff-type: added, source: 0.0.0.0-255.255.255.255, destination: default/backend[Deployment], dir1: No Connections, dir2: TCP 9090
9장. 외부 엔터티 시각화
외부 엔터티를 시각화하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. Red Hat은 프로덕션 환경에서 사용하는 것을 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
클러스터와 외부 엔티티 간의 상호 작용을 이해하는 것은 사고 대응 및 네트워크 정책 관리에 필수적입니다. 시각화 외부 엔터티 기능을 사용하면 클러스터와 상호 작용하는 외부 IP 주소를 볼 수 있습니다.
API를 사용하여 외부 엔터티 그래프 노드를 선택하거나 외부 엔터티를 쿼리하여 네트워크 그래프에서 외부 엔터티를 볼 수 있습니다.
외부 엔터티 시각화는 기본적으로 비활성화된 옵트인 기능입니다. 이 기능을 활성화하려면 다음 섹션에 설명된 대로 중앙 및 보안 클러스터에서 외부 IP 컬렉션을 활성화해야 합니다.
9.1. 중앙에서 외부 IP 컬렉션 활성화
중앙에서 외부 IP 수집을 제어하는 환경 변수는 ROX_EXTERNAL_IPS
및 ROX_NETWORK_GRAPH_EXTERNAL_IPS
입니다.
외부 IP 컬렉션을 활성화하고 API를 사용하여 외부 엔터티를 쿼리하려면 중앙에서 ROX_EXTERNAL_IPS
를 활성화해야 합니다. 그 후 ROX_NETWORK_GRAPH_EXTERNAL_IPS
를 사용하여 수집된 외부 IP를 네트워크 그래프에 표시할 수 있습니다.
프로세스
RHACS Operator를 사용하여 RHACS를 설치한 경우 중앙의 CRD(사용자 정의 리소스 정의)에 다음 사용자 지정을 삽입합니다.
spec: customize: envVars: - name: ROX_EXTERNAL_IPS 1 value: 'true'
- 1
- 또한
ROX_NETWORK_GRAPH_EXTERNAL_IPS
를 지정할 수도 있습니다.
Helm을 사용하여 RHACS를 설치한 경우
values-public.yaml
파일에 다음 주석을 추가합니다.customize: # Extra environment variables for all containers in all objects. envVars: ROX_EXTERNAL_IPS: “true” 1
- 1
- 또한
ROX_NETWORK_GRAPH_EXTERNAL_IPS
를 지정할 수도 있습니다.
9.2. 보안 클러스터에서 외부 IP 컬렉션 활성화
보안 클러스터에서 외부 IP 컬렉션을 활성화하려면 각 보안 클러스터의 런타임 구성을 개별적으로 구성해야 합니다.
기능이 활성화된 일부 클러스터가 비활성화된 반면 다른 클러스터는 비활성화된 상태로 유지할 수 있습니다. 이 경우 외부 IP 정보는 기능을 활성화한 클러스터에서만 사용할 수 있습니다.
ConfigMap
오브젝트를 사용하여 보안 클러스터에서 외부 IP 컬렉션을 활성화할 수 있습니다.
프로세스
다음 콘텐츠를 사용하여
collector-config
라는ConfigMap
오브젝트를 생성합니다.apiVersion: v1 kind: ConfigMap metadata: name: collector-config namespace: stackrox data: runtime_config.yaml: | 1 networking: externalIps: enabled: ENABLED 2
ConfigMap
오브젝트를 생성하거나 업데이트할 때 수집기는 런타임 구성을 새로 고칩니다. ConfigMap
오브젝트를 삭제하면 설정이 기본 런타임 구성 값으로 되돌아갑니다. 자세한 내용은 수집기 런타임 구성 사용을 참조하십시오.
9.3. API를 사용하여 외부 IP 주소 쿼리
다음 끝점을 사용하여 특정 클러스터와 연결된 외부 IP 주소에 대한 정보를 가져올 수 있습니다.
/v1/networkgraph/cluster/{clusterId}/externalentities
: 이 끝점은 지정된 클러스터 ID에 대한 외부 엔티티 목록을 반환합니다. 각 엔터티에는 다음 정보가 포함됩니다.- name: 외부 엔티티의 이름입니다.
- CIDR 블록: 엔티티와 연결된 CIDR 블록입니다.
- Default entity: 엔티티가 시스템에서 제공하는 CIDR 블록 정의임을 나타냅니다.
-
discovered:
true
인 경우 외부 IP 주소가 지정된 CIDR 블록과 일치하지 않음을 나타냅니다.
-
/v1/networkgraph/cluster/{clusterId}/externalentities/{entityId}/flows
: 이 끝점은 지정된 클러스터 ID 및 엔터티 ID의 외부 엔티티로 흐름을 보고합니다. 이 엔드포인트를 사용하여 네트워크 트래픽 패턴을 분석하고 클러스터와 외부 엔티티 간의 상호 작용을 파악합니다. -
/v1/networkgraph/cluster/{clusterId}/externalentities/metadata
: 이 끝점은 지정된 클러스터 ID의 외부 흐름에 대한 통계를 보고합니다. 각 엔티티에 대한 세부 정보와 연결된 흐름 수를 보고합니다.
9.4. 알려진 제한 사항
다음은 외부 엔터티 시각화 기능의 몇 가지 알려진 제한 사항입니다.
- 클러스터에 대한 외부 IP 컬렉션을 활성화하면 해당 클러스터의 수집기에서 센서 및 중앙에 대한 자세한 정보를 보고합니다. 클러스터의 워크로드가 다수의 개별 외부 피어와 통신하면 확장성 문제가 발생할 수 있습니다. 10,000개 이상의 고유한 외부 엔티티와 관련된 통신 패턴이 있는 클러스터에서 이 기능을 활성화하지 않는 것이 좋습니다.
- CIDR 블록의 일부인 경우 외부 IP 주소를 볼 수 없습니다.
- 외부 IP 컬렉션을 활성화하면 배포의 네트워크 기준선에 외부 IP 주소가 표시될 수 있습니다.
10장. 수집기 런타임 구성 사용
수집기 런타임 구성 사용은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. Red Hat은 프로덕션 환경에서 사용하는 것을 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
수집기 런타임 구성을 사용하면 수집기를 다시 시작하지 않고도 일부 수집기 동작을 수정할 수 있습니다. 수집기 런타임 구성은 collector-config
라는 ConfigMap
오브젝트를 사용하여 설정됩니다. ConfigMap
오브젝트를 생성하거나 업데이트할 때 수집기는 런타임 구성을 새로 고칩니다. ConfigMap
오브젝트를 삭제하면 설정이 기본 런타임 구성 값으로 되돌아갑니다.
현재 수집기 런타임 구성을 사용하여 두 가지 설정만 제어됩니다.
-
networking.externalIps.enabled
는 외부 엔터티 기능을 시각화할 수 있는지 또는 비활성화되어 있는지 제어합니다. 기본값은DISABLED
입니다. 릴리스 4.6에서 이 설정은networking.externalIps.enable
이며 부울입니다. 자세한 내용은 외부 엔터티 시각화를 참조하십시오. -
networking.maxConnectionsPerMinute
는 분당 컨테이너당 수집기에서 보고하는 최대 오픈 네트워킹 연결 수입니다. 기본값은 2048입니다.
다음 예제에서는 외부 엔터티 기능을 시각화하고 maxConnectionsPerMinute
를 2048로 설정합니다.
apiVersion: v1
kind: ConfigMap
metadata:
name: collector-config
namespace: stackrox
data:
runtime_config.yaml: | 1
networking:
externalIps:
enabled: ENABLED
maxConnectionsPerMinute: 2048
- 1
- RHACS는 이 파일을
/etc/stackrox/runtime_config.yaml
에 마운트합니다.
11장. 수신 대기 끝점 감사
RHACS(Red Hat Advanced Cluster Security for Kubernetes)는 보안 클러스터의 포트에서 수신 대기하는 프로세스를 감사하고 배포, 네임스페이스 또는 클러스터별로 이 데이터를 필터링할 수 있는 기능을 제공합니다.
다음 방법을 사용하여 수신 대기 중인 프로세스 및 포트에 대한 정보를 볼 수 있습니다.
- RHACS 웹 포털에서 네트워크 → Listening Endpoints 로 이동합니다.
-
API의
ListeningEndpointsService
오브젝트에 연결합니다. API에 대한 자세한 내용은 RHACS 웹 포털의 도움말 → API 참조로 이동하십시오.
페이지에는 배포별 프로세스 목록이 있으며 목록의 각 프로세스에 대해 다음 정보가 표시됩니다.
- 배포 이름
- Cluster
- 네임스페이스
- 배포의 포트에서 수신 대기 중인 프로세스 수 또는 수
필터 필드를 사용하고 개별 배포, 네임스페이스, 클러스터를 입력하여 페이지에 표시되는 정보를 추가로 필터링할 수 있습니다.
목록 상단에 있는 확장 아이콘을 클릭하여 모든 배포에 대한 모든 섹션을 확장하거나 단일 배포 행의 확장 아이콘을 클릭하여 해당 배포에 대한 추가 정보를 확인합니다. 다음 정보가 제공됩니다.
- exec 파일 경로: 프로세스의 위치
- PID: 프로세스의 시스템 ID
- port: 프로세스가 수신 대기 중인 포트
- 프로토콜: 프로세스에서 사용하는 프로토콜
- Pod ID: 프로세스가 포함된 Pod의 이름입니다.
- 컨테이너 이름: 수신 대기 중인 프로세스가 있는 컨테이너의 이름입니다.
배포 이름을 클릭하면 RHACS 웹 포털의 위험 페이지로 이동합니다. 여기서 정책 위반 및 추가 배포 세부 정보와 같은 위험 지표를 포함하여 배포에 대한 정보를 볼 수 있습니다.
12장. 클러스터 구성 검토
구성 관리 뷰를 사용하고 클러스터의 다양한 엔티티 간의 상관 관계를 이해하여 클러스터 구성을 효율적으로 관리하는 방법을 알아봅니다.
모든 OpenShift Container Platform 클러스터에는 클러스터 전체에 분산된 다양한 엔티티가 포함되어 있으므로 사용 가능한 정보를 이해하고 수행하는 것이 더 어렵습니다.
Red Hat Advanced Cluster Security for Kubernetes(RHACS)는 이러한 모든 분산 엔터티를 단일 페이지에 결합하는 효율적인 구성 관리를 제공합니다. 단일 구성 관리 뷰에서 모든 클러스터, 네임스페이스, 노드, 배포, 이미지, 보안, 사용자, 그룹, 서비스 계정 및 역할에 대한 정보를 결합하여 서로 다른 엔터티와 연결을 시각화할 수 있습니다.
12.1. 구성 관리 보기 사용
구성 관리 보기를 열려면 탐색 메뉴에서 구성 관리를 선택합니다. 대시보드 와 유사하게 몇 가지 유용한 위젯이 표시됩니다.
이러한 위젯은 대화식이며 다음 정보를 표시합니다.
- 심각도별 보안 정책 위반
- 쿠버네티스 벤치마크 제어를 위한 CIS(Center for Information Security)의 상태
- 대부분의 클러스터에서 관리자 권한이 있는 사용자
- 클러스터에서 가장 널리 사용되는 보안
구성 관리 보기의 헤더에는 클러스터의 정책 및 CIS 제어 수가 표시됩니다.
배포 라이프사이클 단계의 정책만 정책 수 및 정책 목록 보기에 포함됩니다.
헤더에는 엔터티 간에 전환할 수 있는 드롭다운 메뉴가 포함되어 있습니다. 예를 들면 다음을 수행할 수 있습니다.
- Policies 를 클릭하여 모든 정책과 심각도를 확인하거나 CIS Controls 를 선택하여 모든 제어에 대한 자세한 정보를 확인합니다.
- 애플리케이션 및 인프라를 클릭하고 클러스터, 네임스페이스, 노드, 배포, 이미지 및 시크릿을 선택하여 자세한 정보를 확인합니다.
- RBAC 가시성 및 구성 을 클릭하고 사용자 및 그룹, 서비스 계정 및 역할을 선택하여 자세한 정보를 확인합니다.
12.2. Kubernetes 역할에서 잘못된 구성 확인
구성 관리 보기를 사용하여 사용자에게 부여되지 않은 cluster-admin
역할 또는 역할에 부여된 사용자, 그룹 또는 서비스 계정과 같은 잠재적인 잘못된 구성을 식별할 수 있습니다.
12.2.1. Kubernetes 역할 및 해당 할당 찾기
구성 관리 보기를 사용하여 특정 사용자 및 그룹에 할당된 Kubernetes 역할에 대한 정보를 가져옵니다.
프로세스
- RHACS 포털로 이동하여 구성 관리를 클릭합니다.
-
구성 관리 보기의 헤더에서 역할 기반 액세스 제어 → 사용자 및 그룹을 선택합니다. 사용자 및 그룹 보기에는 Kubernetes 사용자 및 그룹 목록, 할당된 역할 및 각 사용자에 대해
cluster-admin
역할이 활성화되어 있는지가 표시됩니다. - 사용자 또는 그룹을 선택하여 연결된 클러스터 및 네임스페이스 권한에 대한 세부 정보를 확인합니다.
12.2.2. 서비스 계정 및 권한 찾기
구성 관리 보기를 사용하여 서비스 계정이 사용 중인 위치와 해당 권한을 확인합니다.
프로세스
- RHACS 포털에서 구성 관리로 이동합니다.
-
구성 관리 보기의 헤더에서 RBAC 가시성 및 구성 → 서비스 계정을 선택합니다. 서비스 계정 보기에는 클러스터의 Kubernetes 서비스 계정 목록, 할당된 역할,
cluster-admin
역할이 활성화되어 있는지 여부, 해당 배포에서 사용하는 배포 목록이 표시됩니다. - 선택한 서비스 계정에 부여된 클러스터 및 네임스페이스 권한을 포함하여 자세한 세부 정보를 보려면 행 또는 밑줄을 선택합니다.
12.2.3. 사용되지 않는 Kubernetes 역할 검색
구성 관리 보기를 사용하여 Kubernetes 역할에 대한 자세한 내용을 가져오고 사용되지 않는 역할을 찾습니다.
프로세스
- RHACS 포털에서 구성 관리로 이동합니다.
- 구성 관리 보기의 헤더 에서 RBAC 가시성 및 구성 → 역할을 선택합니다. 역할 보기에는 클러스터의 Kubernetes 역할 목록, 부여한 권한 및 사용 위치에 대한 목록이 표시됩니다.
- 역할에 대한 자세한 정보를 보려면 행 또는 밑줄 링크를 선택합니다.
- 사용자, 그룹 또는 서비스 계정에 부여되지 않은 역할을 찾으려면 사용자 및 그룹 열 헤더를 선택합니다. 그런 다음 Shift 키를 누른 상태에서 Service Account 열 헤더를 선택합니다. 목록에는 사용자, 그룹 또는 서비스 계정에 부여되지 않은 역할이 표시됩니다.
12.3. Kubernetes 시크릿 보기
사용자 환경에서 사용 중인 Kubernetes 시크릿을 확인하고 해당 보안을 사용하여 배포를 식별합니다.
프로세스
- RHACS 포털에서 구성 관리로 이동합니다.
- 가장 많이 사용되는 시크릿에서 모두 보기를 선택합니다. Secrets 뷰에는 Kubernetes 시크릿 목록이 표시됩니다.
- 세부 정보를 보려면 행을 선택합니다.
사용 가능한 정보를 사용하여 필요하지 않은 배포에서 보안이 사용 중인지 확인합니다.
12.4. 정책 위반 검색
Configuration Management 보기에서 심각도 등급의 Policy Violations 는 선진형 차트의 정책 위반을 표시합니다. 차트의 각 수준은 하나의 링 또는 원으로 표시됩니다.
- 가장 내부의 원은 위반의 총 수를 나타냅니다.
- 다음 링은 낮음,중간,높음 및 중요 정책 범주를 나타냅니다.
- 가장 외부 링은 특정 카테고리의 개별 정책을 나타냅니다.
구성 관리 보기에는 Lifecycle Stage 가 Deploy 로 설정된 정책에 대한 정보만 표시됩니다. 런타임 동작 또는 빌드 단계에서 평가를 위해 구성된 정책을 포함하지 않습니다.
프로세스
- RHACS 포털에서 구성 관리로 이동합니다.
- Policy Violations by 심각도 위젯에서 마우스를 워보스트 차트 위로 이동하여 정책 위반에 대한 세부 정보를 확인합니다.
- 우선순위가 높은 정책 위반에 대한 자세한 정보를 보려면n 등급( n 이 숫자)으로 평가되는 n을 선택합니다. 정책 보기에는 선택한 카테고리에서 필터링된 정책 위반 목록이 표시됩니다.
- 정책 설명, 수정, 위반을 사용한 배포를 비롯한 자세한 정보를 보려면 행을 선택합니다. 세부 정보는 패널에 표시됩니다.
- 정보 패널의 Policy Findings 섹션에 이러한 위반이 발생한 배포가 나열됩니다.
- Policy Findings 섹션에서 배포를 선택하여 Kubernetes 레이블, 주석 및 서비스 계정을 포함한 관련 세부 정보를 확인합니다.
자세한 정보를 사용하여 위반에 대한 수정을 계획할 수 있습니다.
12.5. 실패한 CIS 제어 검색
Configuration Management 보기의 Policy Violations sunburst 차트와 유사하게 CIS Kubernetes v1.5 위젯은 CIS(fail Center for Information Security) 제어에 대한 정보를 제공합니다.
차트의 각 수준은 하나의 링 또는 원으로 표시됩니다.
- 가장 내부의 원은 실패한 컨트롤의 백분율을 나타냅니다.
- 다음 링은 제어 범주를 나타냅니다.
- 가장 외부 링은 특정 카테고리의 개별 컨트롤을 나타냅니다.
프로세스
- 실패한 컨트롤에 대한 세부 정보를 보려면 sunburst 차트 위에 마우스를 가져가십시오.
- 실패한 컨트롤에 대한 자세한 정보를 보려면 n 이 숫자 인 n 을 선택합니다. Controls 뷰에는 규정 준수 상태에 따라 필터링된 제어 목록이 표시됩니다.
- 컨트롤 설명 및 컨트롤 실패 노드를 포함하여 세부 정보를 볼 행을 선택합니다.
- 정보 패널의 제어 찾기 섹션에는 제어가 실패하는 노드가 나열됩니다. Kubernetes 레이블, 주석 및 기타 메타데이터를 포함하여 세부 정보를 볼 행을 선택합니다.
자세한 정보를 사용하여 노드, 업계 표준 또는 실패한 제어의 하위 집합에 집중할 수 있습니다. 컨테이너화된 인프라의 규정 준수 상태를 평가, 확인 및 보고할 수도 있습니다.
13장. 취약점의 이미지 검사
Red Hat Advanced Cluster Security for Kubernetes를 사용하면 RHACS 스캐너를 사용하여 취약점의 이미지를 분석하거나 다른 지원되는 스캐너를 사용하도록 통합을 구성할 수 있습니다.
RHACS의 스캐너는 각 이미지 계층을 분석하여 패키지를 찾고 다른 소스에서 채워진 취약점 데이터베이스와 비교하여 알려진 취약점과 일치시킵니다. 사용된 스캐너에 따라 소스에는 NVD(National Vulnerability Database), OSV(Open Source Vulnerabilities) 데이터베이스 및 운영 체제 취약점 피드가 포함됩니다.
RHACS Scanner V4는 Apache License 2.0 의 OSV.dev 에서 사용할 수 있는 OSV 데이터베이스를 사용합니다.
RHACS에는 StackRox 스캐너 및 스캐너 V4의 두 개의 스캐너가 포함되어 있습니다.
StackRox 스캐너는 Clair v2 오픈 소스 스캐너의 포크에서 시작되며 이는 기본 스캐너입니다. 버전 4.4에서 RHACS는 추가 이미지 스캔 기능을 제공하는 ClairCore에 구축된 scanner V4를 도입했습니다.
이 문서에서는 "RHACS 스캐너" 또는 "Scanner"라는 용어를 사용하여 StackRox 스캐너 및 스캐너 V4의 두 스캐너에서 제공하는 결합된 스캔 기능을 참조합니다. 특정 스캐너의 기능을 참조할 때 특정 스캐너의 이름이 사용됩니다.
RHACS 스캐너에서 취약점을 발견하면 다음 작업을 수행합니다.
RHACS 스캐너는 이미지를 검사하고 이미지의 파일을 기반으로 설치된 구성 요소를 식별합니다. 다음 파일을 제거하도록 최종 이미지가 수정되면 설치된 구성 요소 또는 취약점을 식별하지 못할 수 있습니다.
components | 파일 |
---|---|
패키지 관리자 |
|
언어 수준 종속 항목 |
|
애플리케이션 수준 종속 항목 |
|
13.1. RHACS Scanner V4 정보
RHACS는 자체 스캐너를 제공하거나 다른 취약점 스캐너와 함께 RHACS를 사용하도록 통합을 구성할 수 있습니다.
버전 4.4부터 ClairCore 를 기반으로 하는 scanner V4는 언어 및 운영 체제별 이미지 구성 요소를 스캔합니다. 현재 RHACS는 StackRox 스캐너도 사용합니다. 최신 기능을 사용하여 전체 스캔 지원을 계속 받으려면 두 스캐너를 모두 사용해야 합니다.
사용된 취약점 소스의 변경으로 인해 릴리스 4.6부터 Scanner V4는 2014년 날짜로 변경된 Red Hat 제품에 영향을 미치는 취약점만 고려합니다. 이전 버전에서는 Red Hat의 OVAL 데이터를 읽을 때 취약점은 2000년 이전까지 발생했습니다.
13.2. 이미지 스캔
버전 4.4의 경우 RHACS는 StackRox 스캐너 및 스캐너 V4의 두 가지 스캐너를 제공합니다. 두 스캐너 모두 네트워크에 연결된 보안 클러스터의 이미지를 검사할 수 있습니다. 보안 클러스터 스캔은 Operator를 사용하여 배포되거나 위임된 스캔이 사용될 때 배포된 Red Hat OpenShift 환경에서 기본적으로 활성화됩니다. 자세한 내용은 "보장된 이미지 스캔 액세스"를 참조하십시오.
현재 scanner V4가 활성화된 경우에도 RHCOS 노드 및 Red Hat OpenShift, Kubernetes, Istio와 같은 플랫폼 취약점을 검사하려면 StackRox 스캐너를 계속 활성화해야 합니다. scanner V4의 해당 기능에 대한 지원은 향후 릴리스될 예정입니다. StackRox 스캐너를 비활성화하지 마십시오.
StackRox 스캐너를 사용하는 경우 RHACS는 다음 작업을 수행합니다.
- Central은 이미지 검사 요청을 StackRox 스캐너에 제출합니다.
- 이러한 요청을 수신하면 StackRox 스캐너는 관련 레지스트리에서 이미지 계층을 가져와서 이미지를 확인하고 각 계층에서 설치된 패키지를 식별합니다. 그런 다음 확인된 패키지 및 언어별 종속 항목을 취약점 목록과 비교하고 정보를 다시 Central로 보냅니다.
StackRox 스캐너는 다음 영역에서 취약점을 식별합니다.
- 기본 이미지 운영 체제
- 패키지 관리자가 설치한 패키지
- 프로그래밍 언어별 종속 항목
- 프로그래밍 런타임 및 프레임워크
scanner V4를 사용하는 경우 RHACS는 다음 작업을 수행합니다.
- Central은 스캐너 V4 인덱서가 지정된 이미지를 다운로드 및 인덱스(분석)하도록 요청합니다.
- scanner V4 Indexer는 레지스트리에서 이미지 메타데이터를 가져와서 이미지 계층을 확인하고 이전에 인덱싱되지 않은 각 계층을 다운로드합니다.
- scanner V4 Indexer는 인덱싱 프로세스를 지원하는 Central에서 매핑 파일을 요청합니다. scanner V4 Indexer는 인덱스 보고서를 생성합니다.
- 중앙에서는 스캐너 V4가 지정된 이미지와 알려진 취약점과 일치하도록 요청합니다. 이 프로세스는 최종 검사 결과인 취약점 보고를 생성합니다. scanner V4 Matcher는 Central의 최신 취약점을 요청합니다.
- scanner V4 Matcher는 scanner V4 Indexer에서 이미지 인덱싱 결과를 요청합니다. 그런 다음 보고서를 사용하여 관련 취약점을 결정합니다. 이 상호 작용은 중앙 클러스터에서 이미지를 인덱싱할 때만 발생합니다. scanner V4가 보안 클러스터에서 인덱싱된 이미지의 취약점과 일치하는 경우 이러한 상호 작용은 발생하지 않습니다.
- 인덱서는 인덱싱 결과와 관련된 스캐너 V4 DB에 데이터를 저장하여 이미지 계층이 한 번만 다운로드 및 인덱싱되도록 합니다. 이렇게 하면 불필요한 네트워크 트래픽 및 기타 리소스 사용률이 방지됩니다.
- 보안 클러스터 스캔을 활성화하면 센서에서 스캐너 V4를 인덱스 이미지에 요청합니다. scanner V4 Indexer는 동일한 네임스페이스에 Central이 존재하지 않는 한 인덱싱 프로세스를 지원하는 센서의 매핑 파일을 요청합니다. 이 경우 Central이 대신 연락합니다.
13.2.1. 일반적인 스캐너 경고 메시지 이해 및 해결
RHACS(Red Hat Advanced Cluster Security for Kubernetes)로 이미지를 스캔할 때 CVE Data MAY BY INACCURATE
경고 메시지가 표시될 수 있습니다. 스캐너는 이미지의 운영 체제 또는 기타 패키지에 대한 전체 정보를 검색할 수 없는 경우 이 메시지를 표시합니다.
다음 표에서는 몇 가지 일반적인 스캐너 경고 메시지를 보여줍니다.
메시지 | 설명 |
---|---|
| 스캐너가 이미지의 기본 운영 체제를 공식적으로 지원하지 않으므로 운영 체제 수준 패키지에 대한 CVE 데이터를 검색할 수 없음을 나타냅니다. |
| 이미지의 기본 운영 체제가 수명 종료에 도달했음을 나타냅니다. 이는 취약점 데이터가 오래된 것을 의미합니다. 예를 들어, Debian 8 및 9입니다. 이미지의 구성 요소를 식별하는 데 필요한 파일에 대한 자세한 내용은 보안 취약점에 대한 이미지 검사를 참조하십시오. |
| 스캐너가 이미지를 스캔했지만 이미지에 사용된 기본 운영 체제를 확인할 수 없음을 나타냅니다. |
|
대상 레지스트리가 네트워크에서 연결할 수 없음을 나타냅니다. 원인은 근본 원인을 분석하려면 프라이빗 레지스트리 또는 리포지토리에 대한 특수 레지스트리 통합을 생성하여 RHACS Central의 Pod 로그를 가져옵니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 이미지 레지스트리와의 통합을 참조하십시오. |
| 스캐너가 이미지를 스캔했지만 이미지가 오래되어 Red Hat 스캐너 인증 범위에 속하지 않음을 나타냅니다. 자세한 내용은 Red Hat Vulnerability Scanner Certification 파트너 가이드를 참조하십시오. 중요 Red Hat 컨테이너 이미지를 사용하는 경우 2020년 6월 보다 최신의 기본 이미지를 사용하는 것이 좋습니다. |
13.2.2. 지원되는 운영 체제
이 섹션에 나열된 지원되는 플랫폼은 스캐너가 취약점을 식별하는 배포판이며, Red Hat Advanced Cluster Security for Kubernetes를 설치할 수 있는 지원되는 플랫폼과 다릅니다.
스캐너는 다음 Linux 배포판을 포함하는 이미지의 취약점을 식별합니다. 사용된 취약점 데이터베이스에 대한 자세한 내용은 "RHACS Architecture"의 "Vulnerability Source"를 참조하십시오.
콘텐츠 배포 | 버전 |
---|---|
| |
| |
CentOS |
|
다음 취약점 소스는 공급 업체에 의해 업데이트되지 않습니다. | |
| |
| |
| |
SLES | |
다음 취약점 소스는 공급 업체가 업데이트하지 않습니다. |
- StackRox 스캐너에서만 지원됩니다.
- Scanner V4에서만 지원됩니다.
- 2020년 6월 이전의 이미지는 스캐너 V4에서 지원되지 않습니다.
Fedora는 취약점 데이터베이스를 유지 관리하지 않기 때문에 스캐너는 Fedora 운영 체제를 지원하지 않습니다. 그러나 스캐너는 여전히 Fedora 기반 이미지에서 언어별 취약점을 감지합니다.
13.2.3. 지원되는 패키지 형식
스캐너는 다음 패키지 형식을 사용하는 이미지의 취약점을 확인할 수 있습니다.
패키지 형식 | 패키지 관리자 |
---|---|
jpk | jpk |
dpkg | apt, dpkg |
rpm | dnf, microdnf, rpm, yum |
13.2.4. 지원되는 프로그래밍 언어
스캐너는 종속성의 취약점을 다음 프로그래밍 언어를 확인할 수 있습니다.
프로그래밍 언어 | 패키지 형식 |
---|---|
Go[1] | binaries: 바이너리를 빌드하는 데 사용되는 표준 라이브러리 버전이 분석됩니다. 바이너리가 모듈 지원(go.mod)으로 빌드된 경우 종속성도 분석됩니다. |
Java | JAR, WAR, EAR, JPI, HPI |
JavaScript | package.json |
Python | Eargo, wheel |
Ruby | gem |
- Scanner V4에서만 지원됩니다.
13.2.5. 지원되는 계층 압축 형식
컨테이너 이미지 계층은 압축 또는 압축 해제될 수 있는 .tar
파일 아카이브입니다. StackRox 스캐너 및 스캐너 V4는 다음 표에 표시된 대로 다양한 형식을 지원합니다.
형식 | StackRox 스캐너 지원 | 스캐너 V4 지원 |
---|---|---|
압축 없음 | 제공됨 | 제공됨 |
bzip2 | 제공됨 | 제공됨 |
gzip | 제공됨 | 제공됨 |
xz | 제공됨 | 없음 |
zstd | 없음 | 제공됨 |
13.2.6. 지원되는 런타임 및 프레임워크
Red Hat Advanced Cluster Security for Kubernetes 3.0.50 (Scanner 버전 2.5.0)부터 StackRox Scanner는 다음 개발자 플랫폼에서 취약점을 식별합니다.
- .NET Core
- ap.NET Core
이는 스캐너 V4에서 지원되지 않습니다.
추가 리소스
13.2.7. 소스 레지스트리에서 미러링된 레지스트리로 이미지 가져오기 리디렉션
RHACS(Red Hat Advanced Cluster Security for Kubernetes)는 다음 OpenShift Container Platform CR(사용자 정의 리소스) 중 하나를 사용하여 구성한 레지스트리 미러의 스캔 이미지를 지원합니다.
-
ImageContentSourcePolicy
(ICSP) -
ImageDigestMirrorSet
(IDMS) -
ImageTagMirrorSet
(ITMS)
이미지 레지스트리 저장소 미러링을 구성하는 방법에 대한 자세한 내용은 "이미지 레지스트리 저장소 미러링 구성"을 참조하십시오.
위임된 이미지 스캔을 사용하여 레지스트리 미러에서 이미지를 자동으로 스캔할 수 있습니다.
위임된 이미지 스캔을 구성하는 방법에 대한 자세한 내용은 "보안 클러스터를 사용하여 이미지 스캔"을 참조하십시오.
13.3. 위임된 이미지 검사 액세스
보안 클러스터에서만 액세스할 수 있는 격리된 컨테이너 이미지 레지스트리가 있을 수 있습니다. 위임된 이미지 검사 기능을 사용하면 보안 클러스터의 모든 레지스트리에서 이미지를 스캔할 수 있습니다.
13.3.1. 위임된 이미지 스캔에 액세스하여 이미지 스캔 강화
현재 중앙 서비스 스캐너는 OpenShift Container Platform 통합 레지스트리의 이미지를 제외하고 보안 클러스터에서 관찰되는 이미지에 대해 인덱싱(구성 요소를 식별) 및 취약점 일치(취약 데이터가 포함된 구성 요소의 부족)를 모두 수행합니다.
OpenShift Container Platform 통합 레지스트리의 이미지의 경우 보안 클러스터에 설치된 scanner-slim은 인덱싱을 수행하고 중앙 서비스 스캐너는 보안 취약점과 일치하는 취약점을 수행합니다.
위임된 이미지 검사 기능은 scanner-slim이 모든 레지스트리에서 이미지를 인덱싱할 수 있도록 허용하여 검색 기능을 확장한 다음, 일치하는 취약점을 위해 Central로 보냅니다. 이 기능을 사용하려면 Scanner-slim이 보안 클러스터에 설치되어 있는지 확인합니다. scanner-slim이 없으면 검사 요청이 Central로 직접 전송됩니다.
13.3.2. 보안 클러스터를 사용하여 이미지 스캔
중앙 서비스 대신 보안 클러스터를 사용하여 이미지를 스캔하려면 위임된 이미지 스캔 기능을 사용할 수 있습니다.
새로 위임된 검색 구성은 이미지 검사를 위임할 수 있는 레지스트리를 지정합니다. 센서가 관찰하는 이미지의 경우 위임된 레지스트리 구성을 사용하여 레지스트리, 모든 레지스트리 또는 특정 레지스트리에서 스캔을 위임할 수 있습니다.
roxctl
CLI, Jenkins 플러그인 또는 API를 사용하여 검사 위임을 활성화하려면 대상 클러스터 및 소스 레지스트리도 지정해야 합니다.
사전 요구 사항
이미지를 검사하기 위해 보안 클러스터에 스캐너를 설치했습니다.
참고OpenShift Container Platform 및 Kubernetes 보안 클러스터에서 스캐너 활성화가 지원됩니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 클러스터를 클릭합니다.
- Clusters 뷰 헤더에서 Delegated scanning 을 클릭합니다.
Delegated Image Scanning 페이지에서 다음 정보를 제공합니다.
delegate scanning for: 이미지 위임 범위를 선택하려면 다음 옵션 중 하나를 선택합니다.
- none: 기본 옵션입니다. 이 옵션은 보안 클러스터가 통합된 OpenShift 이미지 레지스트리의 이미지를 제외하고 이미지를 검사 하지 않도록 지정합니다.
- 모든 레지스트리: 이 옵션은 보안 클러스터가 모든 이미지를 검사함을 나타냅니다.
- 지정된 레지스트리: 이 옵션은 레지스트리 목록을 기반으로 보안된 클러스터가 검사해야 하는 이미지를 지정합니다.
-
기본 클러스터를 선택합니다: 드롭다운 목록에서 기본 클러스터의 이름을 선택합니다. 기본 클러스터는 CLI(명령줄 인터페이스) 및 API에서 들어오는 검사 요청을 처리합니다. 이는 선택 사항이며 필요한 경우
None
을 선택할 수 있습니다. 선택 사항: 소스 레지스트리 및 대상 클러스터 세부 정보를 지정하려면 레지스트리 추가 를 클릭합니다.
예를 들어 소스 레지스트리를
example.com
으로 지정하고 대상 클러스터의 드롭다운 목록에서remote
를 선택합니다. 필요한 경우 여러 소스 레지스트리 및 대상 클러스터를 추가할 수 있습니다.중요검사 요청이 CLI 및 API에서 제공되지 않는 경우 대상 클러스터를
None
으로 선택할 수 있습니다.
- 저장을 클릭합니다.
이제 중앙과 센서 간에 이미지 통합이 동기화되고 센서가 각 네임스페이스에서 풀 시크릿을 캡처합니다. 그런 다음 센서는 이러한 인증 정보를 사용하여 이미지 레지스트리에 인증합니다.
13.3.3. 보안 클러스터에 Scanner-slim 설치 및 구성
13.3.3.1. Operator 사용
RHACS Operator는 각 보안 클러스터에 Scanner-slim 버전을 설치하여 OpenShift Container Platform 통합 레지스트리 및 기타 레지스트리의 이미지를 스캔합니다.
자세한 내용은 Operator를 사용하여 보안 클러스터에 RHACS 설치를 참조하십시오.
13.3.3.2. Helm 사용
보안 클러스터 서비스 Helm 차트(Secure-cluster-services
)는 각 보안 클러스터에 Scanner-slim 버전을 설치합니다. Kubernetes에서 보안 클러스터 서비스에는 scanner-slim이 포함됩니다. 그러나 OpenShift Container Platform에서 RHACS는 각 보안 클러스터에 Scanner-slim 버전을 설치하여 OpenShift Container Platform 통합 레지스트리 및 기타 레지스트리의 이미지를 스캔합니다.
- OpenShift Container Platform 설치의 경우 사용자 정의없이 secure-cluster-services Helm 차트 설치를 참조하십시오.
- Amazon Elastic Kubernetes Service(Amazon EKS), Google Kubernetes Engine(Google GKE) 및 Microsoft Azure Kubernetes 서비스(Microsoft AKS)와 같은 OpenShift Container Platform 설치의 경우 사용자 정의 없이 보안 클러스터 서비스 Helm 차트 설치를 참조하십시오.
13.3.3.3. 설치 후 확인
프로세스
보안 클러스터의 상태가 Scanner가 있고 정상임을 나타내는지 확인합니다.
- RHACS 포털에서 플랫폼 구성 → 클러스터로 이동합니다.
- 클러스터 보기에서 클러스터를 선택하여 세부 정보를 확인합니다.
- 상태 카드에서 스캐너 가 있고 Healthy로 표시되어 있는지 확인합니다.
13.3.3.4. 이미지 스캔 사용
roxctl
CLI, Jenkins 및 API를 사용하여 클러스터별 OpenShift Container Platform 통합 이미지 레지스트리에 저장된 이미지를 스캔할 수 있습니다. 위임된 검사 구성에서 적절한 클러스터를 지정하거나 roxctl
CLI, Jenkins 및 API에서 사용할 수 있는 클러스터 매개변수를 사용할 수 있습니다.
roxctl CLI를 사용하여 이미지를 스캔하는 방법에 대한 자세한 내용은 roxctl
CLI를 사용하여 이미지 스캔 을 참조하십시오.
13.4. 스캔 설정
활성 및 비활성 이미지의 자동 스캔과 같은 검사 설정을 구성할 수 있습니다.
13.4.1. 활성 이미지 자동 스캔
Red Hat Advanced Cluster Security for Kubernetes는 모든 활성 이미지를 정기적으로 검사하고 최신 취약점 정의를 반영하도록 이미지 검사 결과를 업데이트합니다. 활성 이미지는 사용자 환경에 배포한 이미지입니다.
Red Hat Advanced Cluster Security for Kubernetes 3.0.57에서는 이미지 조사 설정을 구성하여 비활성 이미지를 자동으로 스캔할 수 있습니다.
Central은 스캐너 또는 기타 통합 이미지 스캐너에서 4시간마다 결과를 업데이트하는 모든 활성 이미지에 대한 이미지 검사 결과를 가져옵니다.
필요에 따라 roxctl
CLI를 사용하여 이미지 검사 결과를 확인할 수도 있습니다.
13.4.2. 비활성 이미지 스캔
RHACS(Red Hat Advanced Cluster Security for Kubernetes)는 4시간마다 모든 활성(배포) 이미지를 검사하고 최신 취약점 정의를 반영하도록 이미지 검사 결과를 업데이트합니다.
RHACS를 구성하여 비활성 (배포되지 않음) 이미지를 자동으로 스캔할 수도 있습니다.
프로세스
- RHACS 포털에서 취약점 관리 → 결과를 클릭합니다.
- 추가 보기 → 비활성 이미지를 클릭합니다.
- 감시된 이미지 관리를 클릭합니다.
-
이미지 이름 필드에 레지스트리로 시작하고 이미지 태그(예:
docker.io/nginx:latest
)로 끝나는 정규화된 이미지 이름을 입력합니다. - 이미지 추가를 클릭하여 목록을 조사합니다.
선택 사항: 감시된 이미지를 제거하려면 감시된 이미지 관리 창에서 이미지를 찾고 감시 제거를 클릭합니다.
중요RHACS 포털에서 플랫폼 구성 → 시스템 구성 을 클릭하여 데이터 보존 구성을 확인합니다.
감시된 이미지 목록에서 제거된 이미지와 관련된 모든 데이터는 시스템 구성 페이지에서 언급된 일수의 기간 동안 RHACS 포털에 계속 표시되고 해당 기간이 종료된 후에만 제거됩니다.
- 닫기 를 클릭하여 비활성 이미지 페이지로 돌아갑니다.
추가 리소스
13.5. 취약점 정보
RHACS는 여러 취약점 피드에서 취약점 정의 및 업데이트를 가져옵니다. 이러한 피드는 모두 NVD와 같이 본질적으로 일반적이거나 Alpine, Debian 및 Ubuntu와 같은 배포별입니다. 발견된 취약점을 보고 해결하는 방법에 대한 자세한 내용은 취약점 관리를 참조하십시오.
13.5.1. 취약점 정의 가져오기
온라인 모드에서 Central은 단일 피드에서 5분마다 취약점 정의를 가져옵니다. 이 피드는 업스트림 소스의 취약점 정의를 결합하고 3시간마다 새로 고쳐집니다. 피드 주소는 https://definitions.stackrox.io
입니다.
ROX_SCANNER_VULN_UPDATE_INTERVAL
환경 변수를 설정하여 기본 쿼리의 빈도를 Central에서 definitions.stackrox.io
피드로 변경할 수 있습니다. 다음 명령을 실행합니다.
$ oc -n stackrox set env deploy/central ROX_SCANNER_VULN_UPDATE_INTERVAL=<value> 1
- 1
- Kubernetes를 사용하는 경우
oc
대신kubectl
을 입력합니다.
이 변수는 Central과 definitions.stackrox.io
피드 간의 연결에 적용됩니다. StackRox 스캐너 및 스캐너 V4 모두 이 피드에서 얻은 중앙의 취약점 데이터를 사용합니다. StackRox 스캐너의 구성 맵에는 여전히 스캐너의 업데이트 빈도를 구성하기 위한 updater.interval
매개변수가 있지만 더 이상 fetchFromCentral
매개변수가 포함되지 않습니다.
RHACS에서 사용하는 취약점 소스에 대한 자세한 내용은 "Red Hat Advanced Cluster Security for Kubernetes 아키텍처"의 "Vulnerability Source"를 참조하십시오.
추가 리소스
13.5.2. 대시보드의 취약점 점수 이해
Red Hat Advanced Cluster Security for Kubernetes 포털의 취약점 관리 대시보드에는 각 취약점에 대한 하나의 CVSS(Common Vulnerability Scoring System) 기본 점수가 표시됩니다. RHACS는 다음 기준에 따라 CVSS 점수를 보여줍니다.
CVSS v3 점수를 사용할 수 있는 경우 RHACS에 점수가 표시되고
v3
목록이 함께 나열됩니다. 예를 들면6.5(v3)
입니다.참고CVSS v3 점수는 StackRox 스캐너 버전 1.3.5 이상 또는 스캐너 V4를 사용하는 경우에만 사용할 수 있습니다.
-
CVSS v3 점수를 사용할 수 없는 경우 RHACS에 CVSS v2 점수만 표시될 수 있습니다. 예를 들면
6.5
입니다.
API를 사용하여 CVSS 점수를 얻을 수 있습니다. 취약점에 CVSS v3 정보를 사용할 수 있는 경우 응답에는 CVSS v3 및 CVSS v2 정보가 모두 포함될 수 있습니다.
RHSA(Red Hat Security Advisory)의 경우 CVSS 점수는 모든 관련 CVE 중에서 가장 높은 CVSS 점수로 설정됩니다. 하나의 RHSA에는 여러 CVE가 포함될 수 있으며 Red Hat은 취약점이 다른 Red Hat 제품에 미치는 영향에 따라 다른 점수를 할당하는 경우가 있습니다.
13.6. 언어별 취약점 검사 비활성화
스캐너는 기본적으로 프로그래밍 언어별 종속 항목의 취약점을 식별합니다. 언어별 종속성 검사를 비활성화할 수 있습니다.
13.7. 추가 리소스
14장. 이미지 서명 확인
RHACS(Red Hat Advanced Cluster Security for Kubernetes)를 사용하면 사전 구성된 키에 대해 이미지 서명을 확인하여 클러스터에서 컨테이너 이미지의 무결성을 보장할 수 있습니다.
서명이 확인되지 않은 서명이 없는 이미지를 차단하는 정책을 생성할 수 있습니다. RHACS 승인 컨트롤러를 사용하여 무단 배포 생성을 중지하여 정책을 적용할 수도 있습니다.
14.1. 서명 통합 구성
이미지 서명 확인을 수행하기 전에 RHACS에서 서명 통합을 생성해야 합니다.
서명 통합은 여러 검증 방법으로 구성할 수 있습니다. 다음과 같은 확인 방법이 지원됩니다.
- 공개 키 공동 서명
- 인증서 공동 서명
14.1.1. Cosign 공개 키 구성
사전 요구 사항
- PEM 인코딩 Cosign 공개 키가 이미 있어야 합니다. Cosign에 대한 자세한 내용은 Cosign 개요 를 참조하십시오.
프로세스
- RHACS 포털에서 플랫폼 구성 → 통합을 선택합니다.
- 서명 통합으로 스크롤하고 서명을 클릭합니다.
- 새 통합을 클릭합니다.
- 통합 이름의 이름을 입력합니다.
- Cosign 공개 키 → 새 공개 키 추가를 클릭합니다.
- 공개 키 이름을 입력합니다.
- 공개 키 값 필드에 PEM 인코딩 공개 키를 입력합니다.
- (선택 사항) 새 공개 키 추가를 클릭하고 세부 정보를 입력하여 두 개 이상의 키를 추가할 수 있습니다.
- 저장을 클릭합니다.
14.1.2. Cosign 인증서 구성
사전 요구 사항
- 인증서 ID 및 발행자가 이미 있어야 합니다. 선택적으로 PEM 인코딩 인증서 및 체인도 필요합니다. Cosign 인증서에 대한 자세한 내용은 Cosign 인증서 확인을참조하십시오.
프로세스
- RHACS 포털에서 플랫폼 구성 → 통합을 선택합니다.
- 서명 통합으로 스크롤하고 서명을 클릭합니다.
- 새 통합을 클릭합니다.
- 통합 이름의 이름을 입력합니다.
- Cosign 인증서 → 새 인증서 확인 추가 를 클릭합니다.
- 인증서 OIDC 발급 자를 입력합니다. RE2 구문 에서 정규식을 선택적으로 사용할 수 있습니다.
- 인증서 ID 를 입력합니다. RE2 구문 에서 정규식을 선택적으로 사용할 수 있습니다.
- (선택 사항) 인증서를 확인하기 위해 인코딩된 인증서 체인 PEM 을 입력합니다. 체인을 제공하지 않으면 인증서가 Fulcio 루트에 대해 검증됩니다.
- (선택 사항) 서명을 확인하기 위해 인코딩된 인증서 PEM 을 입력합니다.
- (선택 사항) 새 인증서 확인 추가를 클릭하고 세부 정보를 입력하여 두 개 이상의 인증서 확인을 추가할 수 있습니다.
- 저장을 클릭합니다.
14.2. 정책에서 서명 확인 사용
사용자 정의 보안 정책을 생성할 때 신뢰할 수 있는 이미지 서명자 정책 기준을 사용하여 이미지 서명을 확인할 수 있습니다.
사전 요구 사항
- 이미 1개 이상의 Cosign 공개 키와의 서명 통합을 구성해야 합니다.
프로세스
- 정책을 생성하거나 편집할 때 Policy criteria 섹션의 policy 필드 드롭다운 영역에서 신뢰할 수 있는 이미지 서명자 정책 기준에 의해 확인되지 않음을 끕니다.
- Select 를 클릭합니다.
- 목록에서 신뢰할 수 있는 이미지 서명자를 선택하고 저장을 클릭합니다.
추가 리소스
14.3. 서명 확인 강제 적용
사용자가 서명되지 않은 이미지를 사용하지 못하도록 RHACS 승인 컨트롤러를 사용하여 서명 확인을 적용할 수 있습니다. 먼저 클러스터 구성 설정에서 연락처 이미지 스캐너 기능을 활성화해야 합니다. 그런 다음 서명 확인을 적용하기 위한 보안 정책을 생성하는 동안 Inform 및 enforce 옵션을 사용할 수 있습니다.
자세한 내용은 허용 컨트롤러 적용 활성화를 참조하십시오.
추가 리소스
15장. 취약점 관리
15.1. 취약점 관리 개요
보안 취약점은 공격자가 서비스 거부 공격을 수행하거나 원격 코드를 실행하거나 중요한 데이터에 대한 무단 액세스 권한을 얻는 것과 같은 무단 작업을 수행하도록 악용될 수 있습니다. 따라서 취약점 관리는 성공적인 Kubernetes 보안 프로그램을 위한 기본 단계입니다.
15.1.1. 취약점 관리 프로세스
취약점 관리는 취약점을 식별하고 수정하기 위한 지속적인 프로세스입니다. Red Hat Advanced Cluster Security for Kubernetes는 취약점 관리 프로세스를 원활하게 수행할 수 있도록 지원합니다.
성공적인 취약점 관리 프로그램에는 다음과 같은 중요한 작업이 포함되는 경우가 많습니다.
- 자산 평가 수행
- 취약점의 우선순위 지정
- 노출 평가
- 작업 수행
- 지속적으로 자산 재평가
Red Hat Advanced Cluster Security for Kubernetes는 조직이 OpenShift Container Platform 및 Kubernetes 클러스터에서 지속적인 평가를 수행할 수 있도록 지원합니다. 이를 통해 조직에 우선 순위를 정하고 환경 내 취약점을 보다 효과적으로 수행하는 데 필요한 컨텍스트 정보를 제공합니다.
15.1.1.1. 자산 평가 수행
조직의 자산 평가를 수행하는 것은 다음과 같은 조치를 취합니다.
- 사용자 환경에서 자산 식별
- 이러한 자산을 스캔하여 알려진 취약점 확인
- 영향을 받는 이해관계자에게 사용자 환경의 취약점 보고
Kubernetes 또는 OpenShift Container Platform 클러스터에 Red Hat Advanced Cluster Security for Kubernetes를 설치할 때 먼저 클러스터 내에서 실행되는 자산을 집계하여 해당 자산을 식별하는 데 도움이 됩니다. RHACS를 사용하면 조직은 OpenShift Container Platform 및 Kubernetes 클러스터에서 지속적인 평가를 수행할 수 있습니다. RHACS는 조직 환경에 있는 취약점의 우선 순위를 지정하고 조치를 보다 효과적으로 수행할 수 있는 컨텍스트 정보를 제공합니다.
RHACS를 사용하여 조직의 취약점 관리 프로세스에서 모니터링해야 하는 중요한 자산은 다음과 같습니다.
- components: 구성 요소는 이미지의 일부로 사용하거나 노드에서 실행할 수 있는 소프트웨어 패키지입니다. 구성 요소는 취약점이 존재하는 가장 낮은 수준입니다. 따라서 조직은 취약점을 해결하기 위해 어떤 방식으로든 소프트웨어 구성 요소를 업그레이드, 수정 또는 제거해야 합니다.
- 이미지: 코드의 실행 가능한 부분을 실행하는 환경을 생성하는 소프트웨어 구성 요소 및 코드의 컬렉션입니다. 이미지는 취약점을 해결하기 위해 구성 요소를 업그레이드하는 위치입니다.
- nodes: OpenShift 또는 Kubernetes 및 OpenShift Container Platform 또는 Kubernetes 서비스를 구성하는 구성 요소를 사용하여 애플리케이션을 관리하고 실행하는 데 사용되는 서버입니다.
RHACS는 이러한 자산을 다음 구조로 그룹화합니다.
- Deployment: 하나 이상의 이미지를 기반으로 컨테이너가 있는 Pod를 실행할 수 있는 Kubernetes의 애플리케이션에 대한 정의입니다.
- namespace: 애플리케이션을 지원하고 격리하는 배포와 같은 리소스 그룹입니다.
- 클러스터: OpenShift 또는 Kubernetes를 사용하여 애플리케이션을 실행하는 데 사용되는 노드 그룹입니다.
RHACS는 알려진 취약점의 자산을 스캔하고 CVE(Common Vulnerabilities and Exposures) 데이터를 사용하여 알려진 취약점의 영향을 평가합니다.
15.1.1.2. 취약점의 우선순위 지정
작업 및 조사를 위해 환경의 취약점의 우선 순위를 지정하려면 다음 질문에 대답하십시오.
- 조직의 영향을 받는 자산이 얼마나 중요합니까?
- 취약점을 조사하기 위해 얼마나 심각한가?
- 영향을 받는 소프트웨어 구성 요소에 대한 패치로 이 취약점을 수정할 수 있습니까?
- 취약점의 존재가 조직의 보안 정책을 위반합니까?
이러한 질문에 대한 답변은 보안 및 개발팀이 취약점 노출을 측정해야 하는지를 결정하는 데 도움이 됩니다.
Red Hat Advanced Cluster Security for Kubernetes는 애플리케이션 및 구성 요소의 취약점의 우선 순위를 매기는 수단을 제공합니다. RHACS에서 보고한 데이터를 사용하여 중요한 취약점을 결정할 수 있습니다. 예를 들어 CVE에서 취약점 결과를 볼 때 RHACS에서 제공하는 다음 데이터를 고려하고 를 사용하여 취약점을 정렬하고 우선 순위를 지정할 수 있습니다.
- CVE 심각도: RHACS는 Red Hat 제품 보안의 CVE 및 심각도 등급(예: 낮음, 중간, 중요 또는 심각)의 영향을 받는 이미지 수를 보고합니다.
- Top CVSS: Red Hat 및 벤더 소스에서 수집한 데이터에서 가장 높은 CVSS(Common Vulnerability Scoring System) 점수입니다.
- top NVD CVSS: 이미지 간에 이 CVE의 국가 취약성 데이터베이스의 CVSS 점수입니다. 이 데이터를 보려면 scanner V4가 활성화되어 있어야 합니다.
- Exploit Prediction Scoring System (EPSS) 에 따라 취약점이 악용될 가능성이 있습니다. 이 data는 향후 30일 내에 이 취약점의 악용이 관찰될 가능성에 대한 백분율을 제공합니다. CryostatS는 파트너로부터 관찰된 악용 활동에 대한 데이터를 수집하고 악용 활동이 시도된 악용이 성공했음을 의미하지는 않습니다. CVE의 나이와 같은 다른 정보와 함께 단일 데이터 포인트로 사용하여 취약점을 해결하기 위한 우선 순위를 정하는 데 도움이 됩니다. 자세한 내용은 RHACS 및 CryostatS를 참조하십시오.
15.1.1.3. 노출 평가
취약점에 대한 노출을 평가하려면 다음 질문에 대답하십시오.
- 애플리케이션이 취약점의 영향을 받습니까?
- 이 취약점이 다른 요인에 의해 완화됩니까?
- 이 취약점을 악용할 수 있는 알려진 취약점이 있습니까?
- 취약점이 있는 소프트웨어 패키지를 사용하고 있습니까?
- 특정 취약점과 가치가 있는 소프트웨어 패키지에 시간을 소비하고 있습니까?
평가에 따라 다음 작업 중 일부를 수행합니다.
- 노출이 없거나 환경에 취약점이 적용되지 않는 경우 취약점을 잘못된 긍정으로 표시하는 것이 좋습니다.
- 노출되는 경우 위험을 해결, 완화 또는 수락하는 것이 좋습니다.
- 공격 면적을 줄이기 위해 소프트웨어 패키지를 제거하거나 변경하려면 다음을 고려하십시오.
15.1.1.4. 작업 수행
취약점을 해결하기로 결정한 후 다음 작업 중 하나를 수행할 수 있습니다.
- 취약점 수정
- 위험 완화 및 승인
- 위험을 감수
- 취약점을 잘못된 긍정으로 표시
다음 작업 중 하나를 수행하여 취약점을 해결할 수 있습니다.
- 소프트웨어 패키지 제거
- 소프트웨어 패키지를vulnerable 버전으로 업데이트
15.2. 취약점 보기 및 해결
취약점 관리 기능은 RHACS에서 발견된 취약점을 보고 관리하는 방법을 제공합니다. 일반적인 취약점 관리 작업에는 취약점을 식별하고 우선 순위 지정, 해결 및 새로운 위협을 모니터링하는 작업이 포함됩니다.
RHACS는 취약점 관리 대시보드에서 시스템에서 발견된 취약점을 볼 수 있었습니다. 대시보드는 RHACS 4.5에서 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다.
대시보드에 대한 자세한 내용은 취약점 관리 대시보드 사용을 참조하십시오.
현재 취약점 관리 → 결과를 선택하여 액세스되는 페이지에서 취약점 정보를 제공합니다. 워크로드에서 발견된 취약점, OpenShift와 같은 플랫폼 구성 요소에서 발견된 취약점 또는 노드 취약점에 따라 다양한 보기를 선택할 수 있습니다. 보기에 따라 특정 기준에 따라 결과를 필터링할 수 있습니다. 예를 들어 다양한 심각도의 취약점, 특정 주석이 있는 배포의 취약점 또는 특정 운영 체제를 기반으로 하는 이미지의 취약점을 표시할 수 있습니다.
15.2.1. RHACS 포털에서 취약점 관리 데이터 보기
릴리스 4.7부터 RHACS는 취약점에 대한 데이터를 재구성하여 사용자 워크로드 및 노드의 취약점 및 플랫폼 취약점과 같은 범주별로 취약점 데이터를 검색하고 분리했습니다.
취약점 관리 메뉴에서 결과 페이지에서는 취약점 데이터를 제공합니다. 페이지 상단에 있는 탭을 클릭하여 취약점 데이터를 카테고리별로 볼 수 있습니다. 탭에는 다음 범주가 포함됩니다.
- 사용자 워크로드
- 이 탭에서는 배포한 시스템의 워크로드 및 이미지에 영향을 미치는 취약점에 대한 정보를 제공합니다. 이러한 워크로드는 사용자가 배포하고 관리하기 때문에 사용자 워크로드 라고 합니다.
- 플랫폼
이 탭에서는 RHACS가 플랫폼과 관련된 취약점(예: OpenShift 플랫폼 및 계층화된 서비스가 배포하는 워크로드 및 이미지의 취약점)에 대한 정보를 제공합니다. RHACS는 정규식 패턴을 사용하여 워크로드의 네임스페이스를 검사하고 플랫폼 구성 요소에 속하는 워크로드를 식별합니다. 예를 들어 현재 RHACS는 다음 네임스페이스의 취약점을 플랫폼에 속하는 것으로 식별합니다.
-
OpenShift Container Platform: 네임스페이스는
openshift-
또는kube-
로 시작합니다. 계층화된 제품:
- 네임스페이스는 rhacs-operator로 시작
- 네임스페이스는 open-cluster-management로 시작
-
namespace는
stackrox
,multicluster-engine
,aap
또는hive
입니다.
-
타사 파트너: 네임스페이스는
nvidia-gpu-operator
-
OpenShift Container Platform: 네임스페이스는
- 노드
- 이 탭에서는 사용자 관리 및 플랫폼 워크로드 및 이미지를 포함하여 노드의 취약점 보기를 제공합니다.
- 더 많은 보기
이 메뉴에서는 다음 보기를 포함하여 취약점 정보를 볼 수 있는 추가 방법에 액세스할 수 있습니다.
- 취약한 모든 이미지
- 비활성 이미지
- CVE가 없는 이미지
- Kubernetes 구성 요소
15.2.2. 사용자 워크로드 취약점 보기
취약점 관리 → 결과 페이지에서 시스템의 클러스터에서 실행되는 애플리케이션의 취약점에 대한 정보를 얻을 수 있습니다. 이 정보를 사용하면 이미지 및 배포에서 취약점의 우선 순위를 지정하고 관리할 수 있습니다.
사용자 워크로드 취약점 페이지에서 취약점 을 사용하여 이미지 및 배포를 보고 이미지, 배포, 네임스페이스, 클러스터, CVE, 구성 요소 소스로 필터링할 수 있습니다.
프로세스
- RHACS 포털에서 취약점 관리 → 결과 로 이동합니다.
- 사용자 워크로드 탭을 선택합니다. 기본적으로 Observed 탭이 선택됩니다.
선택 사항: 관찰된 취약점 또는 잘못된 긍정으로 표시된 취약점을 확인하도록 선택할 수 있습니다. 다음 탭 중 하나를 클릭합니다.
- observed: RHACS가 사용자 워크로드에서 관찰한 취약점을 나열합니다.
- 지연됨: 관찰되었지만 예외 관리 워크플로우에서 제출 및 승인 요청이 지연된 취약점을 나열합니다.
- false positives: 관찰되었지만 예외 관리 워크플로우에서 false positives로 식별된 취약점을 나열합니다.
선택 사항: 다음 옵션을 선택하여 결과 목록을 구체화할 수 있습니다.
- 네임스페이스 보기별 우선순위: 위험 우선 순위에 따라 정렬된 네임스페이스 목록을 표시합니다. 이 보기를 사용하여 가장 중요한 영역을 신속하게 식별하고 해결할 수 있습니다. 이 보기에서 테이블 행에서 < number> 배포를 클릭하여 선택한 네임스페이스에 대한 배포만 표시하도록 필터를 적용하여 취약점 결과 보기로 돌아갑니다.
- 기본 필터: 이 페이지의 모든 보기에 자동으로 적용되는 CVE 심각도 및 CVE 상태에 대한 필터를 선택할 수 있습니다. 이러한 필터는 RHACS 웹 포털의 다른 섹션 또는 북마크 URL에서 페이지를 방문할 때 적용됩니다. 브라우저의 로컬 스토리지에 저장됩니다.
예를 들어 엔터티별 결과 목록을 필터링하려면 이름이 지정된 특정 CVE를 검색하려면 적절한 필터와 특성을 선택합니다.
여러 엔터티 및 특성을 선택하려면 오른쪽 화살표 아이콘을 클릭하여 다른 기준을 추가합니다. 선택 사항에 따라 텍스트와 같은 적절한 정보를 입력하거나 날짜 또는 개체를 선택합니다.
필터 엔터티 및 속성은 다음 표에 나열되어 있습니다.
참고필터링된 뷰 아이콘은 선택한 기준에 따라 표시된 결과가 필터링 되었음을 나타냅니다. 필터 지우기 를 클릭하여 모든 필터를 제거하거나 개별 필터를 클릭하여 제거할 수 있습니다.
표 15.1. 필터 옵션 엔터티 속성 이미지
- name: 이미지의 이름입니다.
- 운영 체제: 이미지의 운영 체제입니다.
- tag : 이미지의 태그입니다.
- label : 이미지의 레이블입니다.
- registry: 이미지가 있는 레지스트리입니다.
CVE
- name: CVE의 이름입니다.
- 검색된 시간: RHACS가 CVE를 발견한 날짜입니다.
CVSS: CVE의 심각도 수준입니다.
다음 값은 CVE의 심각도 수준과 관련이 있습니다.
- 보다 크거나
- 크거나 같음
- 이 값과 같습니다
- 작거나 같음
- 보다 작음
- CryostatS 확률: EPSS (Exploit Prediction Scoring System) 에 따라 취약점이 악용될 가능성이 있습니다. 이 data는 향후 30일 내에 이 취약점의 악용이 관찰될 가능성에 대한 백분율을 제공합니다. CryostatS는 파트너로부터 관찰된 악용 활동에 대한 데이터를 수집하고 악용 활동이 시도된 악용이 성공했음을 의미하지는 않습니다. CVE의 나이와 같은 다른 정보와 함께 단일 데이터 포인트로 사용하여 취약점을 해결하기 위한 우선 순위를 정하는 데 도움이 됩니다. 자세한 내용은 RHACS 및 CryostatS를 참조하십시오.
이미지 구성 요소
-
name : 이미지 구성 요소의 이름 (예:
activerecord-sql-server-adapter
) 소스:
- OS
- Python
- Java
- Ruby
- Node.js
- Go
- dotnet Core Runtime
- 인프라
-
버전: 이미지 구성 요소의 버전 (예:
3.4.21
). 이를 사용하여 구성 요소 이름과 함께 특정 버전의 구성 요소(예:)를 검색할 수 있습니다.
Deployment
- name: 배포 이름입니다.
- label: 배포의 레이블입니다.
- annotation: 배포에 대한 주석입니다.
- status: 배포가 비활성화 또는 활성 상태인지 여부입니다.
네임스페이스
-
ID: Kubernetes에서 생성한 네임스페이스의
metadata.uid
입니다. - name: 네임스페이스의 이름입니다.
- label : 네임스페이스의 레이블입니다.
- annotation: 네임스페이스의 주석입니다.
Cluster
- id: 클러스터의 영숫자 ID입니다. RHACS에서 추적을 위해 할당하는 내부 식별자입니다.
- name: 클러스터의 이름입니다.
- label : 클러스터의 레이블입니다.
- type : 클러스터 유형 (예: OCP)입니다.
- 플랫폼 유형: 플랫폼 유형 (예: OpenShift 4 클러스터)
- CVE 심각도: 하나 이상의 수준을 선택할 수 있습니다.
- CVE 상태: 수정 가능 또는 수정할 수 없음을 선택할 수 있습니다.
다음 탭 중 하나를 클릭하여 원하는 데이터를 확인합니다.
- <number> CVE: CVE로 구성된 취약점 표시
- <number> 이미지: 발견된 취약점이 포함된 이미지를 표시합니다.
- <number> Deployments: 검색된 취약점이 포함된 배포를 표시합니다.
선택 사항: 사용자 워크로드 탭에서 정보를 재구성하는 적절한 방법을 선택합니다.
- 테이블을 오름차순 또는 내림차순으로 정렬하려면 열 제목을 선택합니다.
표에 표시할 카테고리를 선택하려면 다음 단계를 수행합니다.
- 열을 클릭합니다.
열을 관리할 적절한 방법을 선택합니다.
- 모든 카테고리를 보려면 Select all 을 클릭합니다.
- 기본 카테고리로 재설정하려면 기본값으로 재설정을 클릭합니다.
- 선택한 카테고리만 보려면 볼 카테고리 중 하나 이상을 선택한 다음 저장을 클릭합니다.
결과 목록에서 CVE, 이미지 이름 또는 배포 이름을 클릭하여 항목에 대한 자세한 정보를 확인합니다. 예를 들어 항목 유형에 따라 다음 정보를 볼 수 있습니다.
- CVE를 수정할 수 있는지 여부
- 이미지가 활성화되어 있는지 여부
- CVE가 포함된 이미지의 Dockerfile 행
- Red Hat 및 기타 CVE 데이터베이스의 CVE에 대한 외부 링크
15.2.3. 플랫폼 취약점 보기
플랫폼 취약점 페이지는 RHACS가 플랫폼과 관련된 취약점 (예: OpenShift Platform 및 계층화된 서비스에서 사용하는 워크로드 및 이미지의 취약점)에 대한 정보를 제공합니다.
프로세스
- RHACS 포털에서 취약점 관리 → 결과 로 이동합니다.
- 플랫폼 탭을 선택합니다. 기본적으로 Observed 탭이 선택됩니다.
선택 사항: 관찰된 취약점 또는 잘못된 긍정으로 표시된 취약점을 확인하도록 선택할 수 있습니다. 다음 탭 중 하나를 클릭합니다.
- observed: RHACS가 플랫폼 워크로드 및 이미지에서 관찰한 취약점을 나열합니다.
- 지연됨: 관찰되었지만 예외 관리 워크플로우에서 제출 및 승인 요청이 지연된 취약점을 나열합니다.
- false positives: 관찰되었지만 예외 관리 워크플로우에서 false positives로 식별된 취약점을 나열합니다.
선택 사항: 다음 옵션을 선택하여 결과 목록을 구체화할 수 있습니다.
- 네임스페이스 보기별 우선순위: 위험 우선 순위에 따라 정렬된 네임스페이스 목록을 표시합니다. 이 보기를 사용하여 가장 중요한 영역을 신속하게 식별하고 해결할 수 있습니다. 이 보기에서 테이블 행에서 < number> 배포를 클릭하여 선택한 네임스페이스에 대한 배포만 표시하도록 필터가 적용되고 플랫폼 취약점 보기로 돌아갑니다.
- 기본 필터: 이 페이지의 모든 보기에 자동으로 적용되는 CVE 심각도 및 CVE 상태에 대한 필터를 선택할 수 있습니다. 이러한 필터는 RHACS 웹 포털의 다른 섹션 또는 북마크 URL에서 페이지를 방문할 때 적용됩니다. 브라우저의 로컬 스토리지에 저장됩니다.
예를 들어 엔터티별 결과 목록을 필터링하려면 이름이 지정된 특정 CVE를 검색하려면 적절한 필터와 특성을 선택합니다.
여러 엔터티 및 특성을 선택하려면 오른쪽 화살표 아이콘을 클릭하여 다른 기준을 추가합니다. 선택 사항에 따라 텍스트와 같은 적절한 정보를 입력하거나 날짜 또는 개체를 선택합니다.
필터 엔터티 및 속성은 다음 표에 나열되어 있습니다.
참고필터링된 뷰 아이콘은 선택한 기준에 따라 표시된 결과가 필터링 되었음을 나타냅니다. 필터 지우기 를 클릭하여 모든 필터를 제거하거나 개별 필터를 클릭하여 제거할 수 있습니다.
표 15.2. 필터 옵션 엔터티 속성 이미지
- name: 이미지의 이름입니다.
- 운영 체제: 이미지의 운영 체제입니다.
- tag : 이미지의 태그입니다.
- label : 이미지의 레이블입니다.
- registry: 이미지가 있는 레지스트리입니다.
CVE
- name: CVE의 이름입니다.
- 검색된 시간: RHACS가 CVE를 발견한 날짜입니다.
CVSS: CVE의 심각도 수준입니다.
다음 값은 CVE의 심각도 수준과 관련이 있습니다.
- 보다 크거나
- 크거나 같음
- 이 값과 같습니다
- 작거나 같음
- 보다 작음
- CryostatS 확률: EPSS (Exploit Prediction Scoring System) 에 따라 취약점이 악용될 가능성이 있습니다. 이 data는 향후 30일 내에 이 취약점의 악용이 관찰될 가능성에 대한 백분율을 제공합니다. CryostatS는 파트너로부터 관찰된 악용 활동에 대한 데이터를 수집하고 악용 활동이 시도된 악용이 성공했음을 의미하지는 않습니다. CVE의 나이와 같은 다른 정보와 함께 단일 데이터 포인트로 사용하여 취약점을 해결하기 위한 우선 순위를 정하는 데 도움이 됩니다. 자세한 내용은 RHACS 및 CryostatS를 참조하십시오.
이미지 구성 요소
-
name : 이미지 구성 요소의 이름 (예:
activerecord-sql-server-adapter
) 소스:
- OS
- Python
- Java
- Ruby
- Node.js
- Go
- dotnet Core Runtime
- 인프라
-
버전: 이미지 구성 요소의 버전 (예:
3.4.21
). 이를 사용하여 구성 요소 이름과 함께 특정 버전의 구성 요소(예:)를 검색할 수 있습니다.
Deployment
- name: 배포 이름입니다.
- label: 배포의 레이블입니다.
- annotation: 배포에 대한 주석입니다.
- status: 배포가 비활성화 또는 활성 상태인지 여부입니다.
네임스페이스
-
ID: Kubernetes에서 생성한 네임스페이스의
metadata.uid
입니다. - name: 네임스페이스의 이름입니다.
- label : 네임스페이스의 레이블입니다.
- annotation: 네임스페이스의 주석입니다.
Cluster
- id: 클러스터의 영숫자 ID입니다. RHACS에서 추적을 위해 할당하는 내부 식별자입니다.
- name: 클러스터의 이름입니다.
- label : 클러스터의 레이블입니다.
- type : 클러스터 유형 (예: OCP)입니다.
- 플랫폼 유형: 플랫폼 유형 (예: OpenShift 4 클러스터)
- CVE 심각도: 하나 이상의 수준을 선택할 수 있습니다.
- CVE 상태: 수정 가능 또는 수정할 수 없음을 선택할 수 있습니다.
다음 탭 중 하나를 클릭하여 원하는 데이터를 확인합니다.
- <number> CVE: CVE로 구성된 취약점 표시
- <number> 이미지: 발견된 취약점이 포함된 이미지를 표시합니다.
- <number> Deployments: 검색된 취약점이 포함된 배포를 표시합니다.
선택 사항: 사용자 워크로드 탭에서 정보를 재구성하는 적절한 방법을 선택합니다.
- 테이블을 오름차순 또는 내림차순으로 정렬하려면 열 제목을 선택합니다.
표에 표시할 카테고리를 선택하려면 다음 단계를 수행합니다.
- 열을 클릭합니다.
열을 관리할 적절한 방법을 선택합니다.
- 모든 카테고리를 보려면 Select all 을 클릭합니다.
- 기본 카테고리로 재설정하려면 기본값으로 재설정을 클릭합니다.
- 선택한 카테고리만 보려면 볼 카테고리 중 하나 이상을 선택한 다음 저장을 클릭합니다.
결과 목록에서 CVE, 이미지 이름 또는 배포 이름을 클릭하여 항목에 대한 자세한 정보를 확인합니다. 예를 들어 항목 유형에 따라 다음 정보를 볼 수 있습니다.
- CVE를 수정할 수 있는지 여부
- 이미지가 활성화되어 있는지 여부
- CVE가 포함된 이미지의 Dockerfile 행
- Red Hat 및 기타 CVE 데이터베이스의 CVE에 대한 외부 링크
15.2.4. 노드의 취약점 보기
RHACS를 사용하여 노드의 취약점을 식별할 수 있습니다. 확인된 취약점은 다음과 같습니다.
- 핵심 Kubernetes 구성 요소의 취약점
- Docker, CRI-O, runC 및 containerd와 같은 컨테이너 런타임의 취약점
RHACS에서 검사할 수 있는 운영 체제에 대한 자세한 내용은 "지원되는 운영 체제"를 참조하십시오.
RHACS는 현재 StackRox 스캐너 및 스캐너 V4로 노드 스캔 기능을 지원합니다. 구성된 스캐너에 따라 취약점 목록에 다른 결과가 표시될 수 있습니다. 자세한 내용은 " StackRox 스캐너 및 스캐너 V4 간의 스캔 결과에 대한 이해"를 참조하십시오.
프로세스
- RHACS 포털에서 취약점 관리 → 결과 로 이동합니다.
- 노드 탭을 선택합니다.
- 선택 사항: 페이지가 기본적으로 관찰된 CVE 목록으로 설정됩니다. Show sno#159ed CVE를 클릭하여 확인합니다.
선택 사항: 엔터티에 따라 CVE를 필터링하려면 적절한 필터 및 속성을 선택합니다. 필터링 기준을 추가하려면 다음 단계를 따르십시오.
- 목록에서 엔터티 또는 특성을 선택합니다.
- 선택 사항에 따라 텍스트와 같은 적절한 정보를 입력하거나 날짜 또는 개체를 선택합니다.
- 오른쪽 화살표 아이콘을 클릭합니다.
선택 사항: 추가 엔터티 및 특성을 선택한 다음 오른쪽 화살표 아이콘을 클릭하여 추가합니다. 필터 엔터티 및 속성은 다음 표에 나열되어 있습니다.
표 15.3. 필터 옵션 엔터티 속성 노드
- name: 노드의 이름입니다.
- 운영 체제: 노드의 운영 체제(예: RHEL(Red Hat Enterprise Linux))입니다.
- label: 노드의 레이블입니다.
- annotation: 노드의 주석입니다.
- 검사 시간: 노드의 검사 날짜입니다.
CVE
- name: CVE의 이름입니다.
- 검색된 시간: RHACS가 CVE를 발견한 날짜입니다.
CVSS: CVE의 심각도 수준입니다.
다음 값은 CVE의 심각도 수준과 관련이 있습니다.
- 보다 크거나
- 크거나 같음
- 이 값과 같습니다
- 작거나 같음
- 보다 작음
노드 구성 요소
- name: 구성 요소의 이름입니다.
-
Version: 구성 요소의 버전입니다(예:
4.15.0-2024
). 이를 사용하여 구성 요소 이름과 함께 특정 버전의 구성 요소(예:)를 검색할 수 있습니다.
Cluster
- id: 클러스터의 영숫자 ID입니다. RHACS에서 추적을 위해 할당하는 내부 식별자입니다.
- name: 클러스터의 이름입니다.
- label : 클러스터의 레이블입니다.
- type: 클러스터 유형입니다(예: OCP).
- 플랫폼 유형: 플랫폼의 유형입니다(예: OpenShift 4 클러스터).
선택 사항: 결과 목록을 구체화하려면 다음 작업 중 하나를 수행합니다.
- CVE 심각도 를 클릭한 다음 하나 이상의 수준을 선택합니다.
- CVE 상태를 클릭한 다음 Fixable 또는 Not fixable 을 선택합니다.
데이터를 보려면 다음 탭 중 하나를 클릭합니다.
- <number> CVE: 모든 노드에 영향을 미치는 모든 CVE 목록을 표시합니다.
- <number> 노드: CVE가 포함된 노드 목록을 표시합니다.
- 노드의 세부 정보와 CVSS 점수 및 수정 가능한 CVE에 대한 정보를 보려면 노드 목록에서 노드 이름을 클릭합니다.
15.2.4.1. 노드의 취약점 식별 비활성화
노드의 취약점 식별은 기본적으로 활성화되어 있습니다. RHACS 포털에서 비활성화할 수 있습니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 통합으로 이동합니다.
- 이미지 통합 에서 StackRox 스캐너 를 선택합니다.
- 스캐너 목록에서 StackRox 스캐너 를 선택하여 세부 정보를 확인합니다.
- 편집을 클릭합니다.
- 노드 스캐너가 아닌 이미지 스캐너만 사용하려면 이미지 스캐너 를 클릭합니다.
- 저장을 클릭합니다.
15.2.5. 취약점 관리에서 추가 보기 액세스
추가 보기 탭에서는 다음 보기를 포함하여 시스템의 취약점을 볼 수 있는 추가 방법을 제공합니다.
- 취약한 모든 이미지: 사용자 워크로드, 플랫폼 취약점 및 동일한 페이지에 있는 비활성 이미지의 취약점을 표시합니다.
- 비활성 이미지: 현재 워크로드로 배포되지 않은 감시된 이미지 및 이미지의 취약점을 표시합니다. 이미지 보존 설정에 따라 이미지에 대한 취약점이 보고됩니다.
- CVE가 없는 이미지: 모니터링된 CVE 없이 이미지 및 워크로드를 표시합니다. "Analyze images and deployments without observed CVEs"를 참조하십시오.
- Kubernetes 구성 요소: 기본 Kubernetes 구조에 영향을 미치는 취약점을 표시합니다.
15.2.5.1. 취약한 모든 이미지 보기
사용자 워크로드, 플랫폼 취약점 및 비활성 이미지의 취약점 목록을 동일한 페이지에서 볼 수 있습니다.
프로세스
- RHACS 포털에서 취약점 관리 → 결과 로 이동합니다.
- 더 많은 보기를 클릭하고 모든 취약한 이미지를 선택합니다.
선택 사항: 관찰된 취약점 또는 잘못된 긍정으로 표시된 취약점을 확인하도록 선택할 수 있습니다. 다음 탭 중 하나를 클릭합니다.
- observed: RHACS가 모든 이미지 및 워크로드에서 관찰하는 취약점을 나열합니다.
- 지연됨: 관찰되었지만 예외 관리 워크플로우에서 제출 및 승인 요청이 지연된 취약점을 나열합니다.
- false positives: 관찰되었지만 예외 관리 워크플로우에서 false positives로 식별된 취약점을 나열합니다.
선택 사항: 다음 옵션을 선택하여 결과 목록을 구체화할 수 있습니다.
- 네임스페이스 보기별 우선순위: 위험 우선 순위에 따라 정렬된 네임스페이스 목록을 표시합니다. 이 보기를 사용하여 가장 중요한 영역을 신속하게 식별하고 해결할 수 있습니다. 이 보기에서 테이블 행에서 < number> 배포를 클릭하여 선택한 네임스페이스에 대한 배포만 표시하도록 필터가 적용된 모든 취약한 이미지 뷰로 돌아갑니다.
- 기본 필터: 이 페이지의 모든 보기에 자동으로 적용되는 CVE 심각도 및 CVE 상태에 대한 필터를 선택할 수 있습니다. 이러한 필터는 RHACS 웹 포털의 다른 섹션 또는 북마크 URL에서 페이지를 방문할 때 적용됩니다. 브라우저의 로컬 스토리지에 저장됩니다.
다음 탭 중 하나를 클릭하여 원하는 데이터를 확인합니다.
- <number> CVE: CVE로 구성된 취약점 표시
- <number> 이미지: 발견된 취약점이 포함된 이미지를 표시합니다.
- <number> Deployments: 검색된 취약점이 포함된 배포를 표시합니다.
선택 사항: 사용자 워크로드 탭에서 정보를 재구성하는 적절한 방법을 선택합니다.
- 테이블을 오름차순 또는 내림차순으로 정렬하려면 열 제목을 선택합니다.
- 테이블을 필터링하려면 필터 표시줄을 사용합니다.
표에 표시할 카테고리를 선택하려면 다음 단계를 수행합니다.
- 열을 클릭합니다.
열을 관리할 적절한 방법을 선택합니다.
- 모든 카테고리를 보려면 Select all 을 클릭합니다.
- 기본 카테고리로 재설정하려면 기본값으로 재설정을 클릭합니다.
- 선택한 카테고리만 보려면 볼 카테고리 중 하나 이상을 선택한 다음 저장을 클릭합니다.
예를 들어 엔터티별 결과 목록을 필터링하려면 이름이 지정된 특정 CVE를 검색하려면 적절한 필터와 특성을 선택합니다.
여러 엔터티 및 특성을 선택하려면 오른쪽 화살표 아이콘을 클릭하여 다른 기준을 추가합니다. 선택 사항에 따라 텍스트와 같은 적절한 정보를 입력하거나 날짜 또는 개체를 선택합니다.
필터 엔터티 및 속성은 다음 표에 나열되어 있습니다.
표 15.4. CVE 필터링 엔터티 속성 이미지
- name: 이미지의 이름입니다.
- 운영 체제: 이미지의 운영 체제입니다.
- tag : 이미지의 태그입니다.
- label : 이미지의 레이블입니다.
- registry: 이미지가 있는 레지스트리입니다.
CVE
- name: CVE의 이름입니다.
- 검색된 시간: RHACS가 CVE를 발견한 날짜입니다.
CVSS: CVE의 심각도 수준입니다.
다음 값은 CVE의 심각도 수준과 관련이 있습니다.
- 보다 크거나
- 크거나 같음
- 이 값과 같습니다
- 작거나 같음
- 보다 작음
- CryostatS 확률: EPSS (Exploit Prediction Scoring System) 에 따라 취약점이 악용될 가능성이 있습니다. 이 data는 향후 30일 내에 이 취약점의 악용이 관찰될 가능성에 대한 백분율을 제공합니다. CryostatS는 파트너로부터 관찰된 악용 활동에 대한 데이터를 수집하고 악용 활동이 시도된 악용이 성공했음을 의미하지는 않습니다. CVE의 나이와 같은 다른 정보와 함께 단일 데이터 포인트로 사용하여 취약점을 해결하기 위한 우선 순위를 정하는 데 도움이 됩니다. 자세한 내용은 RHACS 및 CryostatS를 참조하십시오.
이미지 구성 요소
-
name : 이미지 구성 요소의 이름 (예:
activerecord-sql-server-adapter
) 소스:
- OS
- Python
- Java
- Ruby
- Node.js
- Go
- dotnet Core Runtime
- 인프라
-
버전: 이미지 구성 요소의 버전 (예:
3.4.21
). 이를 사용하여 구성 요소 이름과 함께 특정 버전의 구성 요소(예:)를 검색할 수 있습니다.
Deployment
- name: 배포 이름입니다.
- label: 배포의 레이블입니다.
- annotation: 배포에 대한 주석입니다.
- status: 배포가 비활성화 또는 활성 상태인지 여부입니다.
네임스페이스
-
ID: Kubernetes에서 생성한 네임스페이스의
metadata.uid
입니다. - name: 네임스페이스의 이름입니다.
- label : 네임스페이스의 레이블입니다.
- annotation: 네임스페이스의 주석입니다.
Cluster
- id: 클러스터의 영숫자 ID입니다. RHACS에서 추적을 위해 할당하는 내부 식별자입니다.
- name: 클러스터의 이름입니다.
- label : 클러스터의 레이블입니다.
- type : 클러스터 유형 (예: OCP)입니다.
- 플랫폼 유형: 플랫폼 유형 (예: OpenShift 4 클러스터)
- CVE 심각도: 하나 이상의 수준을 선택할 수 있습니다.
- CVE 상태: 수정 가능 또는 수정할 수 없음을 선택할 수 있습니다.
필터링된 뷰 아이콘은 선택한 기준에 따라 표시된 결과가 필터링 되었음을 나타냅니다. 필터 지우기 를 클릭하여 모든 필터를 제거하거나 개별 필터를 클릭하여 제거할 수 있습니다.
결과 목록에서 CVE, 이미지 이름 또는 배포 이름을 클릭하여 항목에 대한 자세한 정보를 확인합니다. 예를 들어 항목 유형에 따라 다음 정보를 볼 수 있습니다.
- CVE를 수정할 수 있는지 여부
- 이미지가 활성화되어 있는지 여부
- CVE가 포함된 이미지의 Dockerfile 행
- Red Hat 및 기타 CVE 데이터베이스의 CVE에 대한 외부 링크
15.2.5.2. 비활성 이미지 스캔
RHACS(Red Hat Advanced Cluster Security for Kubernetes)는 4시간마다 모든 활성(배포) 이미지를 검사하고 최신 취약점 정의를 반영하도록 이미지 검사 결과를 업데이트합니다.
RHACS를 구성하여 비활성 (배포되지 않음) 이미지를 자동으로 스캔할 수도 있습니다.
프로세스
- RHACS 포털에서 취약점 관리 → 결과를 클릭합니다.
- 추가 보기 → 비활성 이미지를 클릭합니다.
- 감시된 이미지 관리를 클릭합니다.
-
이미지 이름 필드에 레지스트리로 시작하고 이미지 태그(예:
docker.io/nginx:latest
)로 끝나는 정규화된 이미지 이름을 입력합니다. - 이미지 추가를 클릭하여 목록을 조사합니다.
선택 사항: 감시된 이미지를 제거하려면 감시된 이미지 관리 창에서 이미지를 찾고 감시 제거를 클릭합니다.
중요RHACS 포털에서 플랫폼 구성 → 시스템 구성 을 클릭하여 데이터 보존 구성을 확인합니다.
감시된 이미지 목록에서 제거된 이미지와 관련된 모든 데이터는 시스템 구성 페이지에서 언급된 일수의 기간 동안 RHACS 포털에 계속 표시되고 해당 기간이 종료된 후에만 제거됩니다.
- 닫기 를 클릭하여 비활성 이미지 페이지로 돌아갑니다.
15.2.5.3. 관찰된 CVE 없이 이미지 및 배포 분석
취약점이 없는 이미지 목록을 볼 때 RHACS에는 다음 조건 중 하나 이상을 충족하는 이미지가 표시됩니다.
- CVE가 없는 이미지
- CVE가 없는 잘못된 정보가 발생할 수 있는 스캐너 오류를 보고하는 이미지
실제로 취약점이 포함된 이미지는 실수로 이 목록에 표시될 수 있습니다. 예를 들어 스캐너에서 이미지를 스캔할 수 있고 RHACS(Red Hat Advanced Cluster Security for Kubernetes)로 알려져 있지만 검사가 성공적으로 완료되지 않은 경우 RHACS에서 취약점을 감지할 수 없습니다.
이 시나리오는 RHACS 스캐너에서 지원하지 않는 운영 체제가 이미지에 있는 경우 발생합니다. RHACS는 이미지 목록에서 이미지를 마우스로 가리키거나 이미지 이름을 클릭하면 검사 오류가 표시됩니다.
프로세스
- RHACS 포털에서 취약점 관리 → 결과 로 이동합니다.
- More Views 를 클릭하고 CVE가 없는 이미지를 선택합니다.
예를 들어 특정 이미지를 검색하려면 적절한 필터 및 특성을 선택하여 엔터티별 결과 목록을 필터링합니다.
여러 엔터티 및 특성을 선택하려면 오른쪽 화살표 아이콘을 클릭하여 다른 기준을 추가합니다. 선택 사항에 따라 텍스트와 같은 적절한 정보를 입력하거나 날짜 또는 개체를 선택합니다.
필터 엔터티 및 속성은 다음 표에 나열되어 있습니다.
참고필터링된 뷰 아이콘은 선택한 기준에 따라 표시된 결과가 필터링 되었음을 나타냅니다. 필터 지우기 를 클릭하여 모든 필터를 제거하거나 개별 필터를 클릭하여 제거할 수 있습니다.
표 15.5. 필터 옵션 엔터티 속성 이미지
- name: 이미지의 이름입니다.
- 운영 체제: 이미지의 운영 체제입니다.
- tag : 이미지의 태그입니다.
- label : 이미지의 레이블입니다.
- registry: 이미지가 있는 레지스트리입니다.
이미지 구성 요소
-
name : 이미지 구성 요소의 이름 (예:
activerecord-sql-server-adapter
) 소스:
- OS
- Python
- Java
- Ruby
- Node.js
- Go
- dotnet Core Runtime
- 인프라
-
버전: 이미지 구성 요소의 버전 (예:
3.4.21
). 이를 사용하여 구성 요소 이름과 함께 특정 버전의 구성 요소(예:)를 검색할 수 있습니다.
Deployment
- name: 배포 이름입니다.
- label: 배포의 레이블입니다.
- annotation: 배포에 대한 주석입니다.
- status: 배포가 비활성화 또는 활성 상태인지 여부입니다.
네임스페이스
-
ID: Kubernetes에서 생성한 네임스페이스의
metadata.uid
입니다. - name: 네임스페이스의 이름입니다.
- label : 네임스페이스의 레이블입니다.
- annotation: 네임스페이스의 주석입니다.
Cluster
- id: 클러스터의 영숫자 ID입니다. RHACS에서 추적을 위해 할당하는 내부 식별자입니다.
- name: 클러스터의 이름입니다.
- label : 클러스터의 레이블입니다.
- type : 클러스터 유형 (예: OCP)입니다.
- 플랫폼 유형: 플랫폼 유형 (예: OpenShift 4 클러스터)
다음 탭 중 하나를 클릭하여 원하는 데이터를 확인합니다.
- <number> 이미지: 발견된 취약점이 포함된 이미지를 표시합니다.
- <number> Deployments: 검색된 취약점이 포함된 배포를 표시합니다.
선택 사항: 페이지의 정보를 재구성하는 적절한 방법을 선택합니다.
표에 표시할 카테고리를 선택하려면 다음 단계를 수행합니다.
- 열을 클릭합니다.
열을 관리할 적절한 방법을 선택합니다.
- 모든 카테고리를 보려면 Select all 을 클릭합니다.
- 기본 카테고리로 재설정하려면 기본값으로 재설정을 클릭합니다.
- 선택한 카테고리만 보려면 볼 카테고리 중 하나 이상을 선택한 다음 저장을 클릭합니다.
- 테이블을 오름차순 또는 내림차순으로 정렬하려면 열 제목을 선택합니다.
- 결과 목록에서 이미지 이름 또는 배포 이름을 클릭하여 항목에 대한 자세한 정보를 확인합니다.
15.2.5.4. Kubernetes 취약점 보기
기본 Kubernetes 구조에 영향을 미치는 클러스터의 취약점을 볼 수 있습니다.
프로세스
- 취약점 관리 → 결과 로 이동합니다.
- 더 많은 보기를 클릭하고 Kubernetes 구성 요소를 선택합니다.
- CVE 또는 클러스터에 의해 표시하려면 < number > CVE 또는 <number> 클러스터를 클릭합니다.
선택 사항: 결과 목록에서 클러스터 및 CVE로 결과를 필터링할 수 있습니다. 엔터티를 기반으로 취약점을 필터링하려면 적절한 필터 및 특성을 선택합니다.
여러 엔터티 및 특성을 선택하려면 오른쪽 화살표 아이콘을 클릭하여 다른 기준을 추가합니다. 선택 사항에 따라 텍스트와 같은 적절한 정보를 입력하거나 날짜 또는 개체를 선택합니다.
필터 엔터티 및 속성은 다음 표에 나열되어 있습니다.
표 15.6. 필터 옵션 엔터티 속성 Cluster
- id: 클러스터의 영숫자 ID입니다. RHACS에서 추적을 위해 할당하는 내부 식별자입니다.
- name: 클러스터의 이름입니다.
- label : 클러스터의 레이블입니다.
- type : 클러스터 유형 (예: OCP)입니다.
- 플랫폼 유형: 플랫폼 유형 (예: OpenShift 4 클러스터)
CVE
- name: CVE의 이름입니다.
- 검색된 시간: RHACS가 CVE를 발견한 날짜입니다.
CVSS: CVE의 심각도 수준입니다.
다음 값은 CVE의 심각도 수준과 관련이 있습니다.
- 보다 크거나
- 크거나 같음
- 이 값과 같습니다
- 작거나 같음
- 보다 작음
Type: CVE의 유형입니다.
- Kubernetes
- Istio
- OpenShift
선택 사항: CVE 상태 드롭다운 목록에서 CVE 상태를 기반으로 테이블을 필터링하려면 하나 이상의 상태를 선택합니다.
다음 값은 CVE 상태와 연결되어 있습니다.
-
수정 가능
-
수정할 수 없음
-
필터링된 뷰 아이콘은 선택한 기준에 따라 표시된 결과가 필터링 되었음을 나타냅니다. 필터 지우기 를 클릭하여 모든 필터를 제거하거나 개별 필터를 클릭하여 제거할 수 있습니다.
결과 목록에서 CVE 또는 클러스터 이름을 클릭하여 항목에 대한 자세한 정보를 확인합니다. 예를 들어 항목 유형에 따라 다음 정보를 볼 수 있습니다.
- 처음 발견된 날짜
- CVE를 수정할 수 있는지 여부
- Red Hat 및 기타 CVE 데이터베이스의 CVE에 대한 외부 링크
15.2.6. CVE 제외
노드 및 플랫폼 CVE를 스노우팅하여 RHACS의 CVE를 제외하거나 무시하고 노드, 플랫폼 및 이미지 CVE를 잘못된 긍정으로 지연하거나 무시할 수 있습니다. CVE가 잘못된 긍정이거나 CVE를 완화하기 위한 단계를 이미 수행한 경우 CVE를 제외할 수 있습니다. sno Cryostated CVE는 취약점 보고에 표시되지 않거나 정책 위반을 트리거하지 않습니다.
CVE를 스누핑하여 지정된 기간 동안 전 세계적으로 무시하도록 할 수 있습니다. CVE를 스노우하는 것은 승인이 필요하지 않습니다.
노드 및 플랫폼 CVE에서 ROX_VULN_MGMT_LEGACY_SNOOZE
환경 변수가 true
로 설정되어야 합니다.
CVE를 예외 관리 워크플로우를 통해 잘못 구성하거나 잘못된 것으로 표시합니다. 이 워크플로는 보류 중, 승인, 거부된 지연 및 잘못된 긍정 요청을 볼 수 있는 기능을 제공합니다. CVE 예외의 범위를 단일 이미지, 단일 이미지의 모든 태그 또는 모든 이미지에 대해 전역적으로 지정할 수 있습니다.
요청을 승인하거나 거부할 때 주석을 추가해야 합니다. CVE는 예외 요청이 승인될 때까지 관찰된 상태에 남아 있습니다. 다른 사용자가 거부한 deferral에 대한 보류 중인 요청은 보고서, 정책 위반 및 시스템의 기타 위치에 계속 표시되지만 취약점 관리 → 결과로 이동한 후 다음 페이지를 방문할 때 CVE 옆에 Pending 예외 레이블로 표시됩니다.
- 사용자 워크로드
- 플랫폼
- 취약한 모든 이미지
- 비활성 이미지
deferral 또는 false positive에 대한 승인된 예외는 다음과 같은 효과가 있습니다.
- 사용자 워크로드 탭의 Observed 탭에서 CVE를 유추 또는 False positive 탭으로 제거합니다.
- CVE가 CVE와 관련된 정책 위반을 트리거하지 못하도록 합니다.
- CVE가 자동으로 생성된 취약점 보고서에 표시되지 않도록 합니다.
15.2.6.1. 플랫폼 및 노드 CVE
인프라와 관련이 없는 플랫폼 및 노드 CVE를 스누핑할 수 있습니다. 영향을 받지 않을 때까지 CVE를 1일, 1주, 2주, 2주, 1개월, 무기한으로 제거할 수 있습니다. CVE는 즉시 적용되며 추가 승인 단계가 필요하지 않습니다.
CVE를 스누핑하는 기능은 웹 포털 또는 API에서 기본적으로 활성화되어 있지 않습니다. CVE를 스누핑할 수 있도록 하려면 런타임 환경 변수 ROX_VULN_MGMT_LEGACY_SNOOZE
를 true
로 설정합니다.
프로세스
RHACS 포털에서 다음 작업을 수행합니다.
- 플랫폼 CVE를 보려면 취약점 관리 → 플랫폼 CVE를 클릭합니다.
- 노드 CVE를 보려면 취약점 관리 → 노드 CVE를 클릭합니다.
- 하나 이상의 CVE를 선택합니다.
CVE를 스누핑할 적절한 방법을 선택합니다.
-
단일 CVE를 선택한 경우 오버플로 메뉴인
를 클릭한 다음 Snooze CVE 를 선택합니다.
- 여러 CVE를 선택한 경우 Bulk actions → Snooze CVE를 클릭합니다.
-
단일 CVE를 선택한 경우 오버플로 메뉴인
- 간과할 시간을 선택합니다.
Snooze CVE를 클릭합니다.
CVE를 스누핑할 것을 요청했는지 확인 메시지가 표시됩니다.
15.2.6.2. Unsno Cryostating 플랫폼 및 노드 CVE
이전에 스케줄링한 플랫폼 및 노드 CVE를 해제할 수 있습니다.
CVE를 스누핑하는 기능은 웹 포털 또는 API에서 기본적으로 활성화되어 있지 않습니다. CVE를 스누핑할 수 있도록 하려면 런타임 환경 변수 ROX_VULN_MGMT_LEGACY_SNOOZE
를 true
로 설정합니다.
프로세스
RHACS 포털에서 다음 작업을 수행합니다.
- 플랫폼 CVE 목록을 보려면 취약점 관리 → 플랫폼 CVE를 클릭합니다.
- 노드 CVE 목록을 보려면 취약점 관리 → 노드 CVE를 클릭합니다.
- sno Cryostated CVE 목록을 보려면 헤더 보기에서 Show sno Cryostated CVEs 를 클릭합니다.
- 조각된 CVE 목록에서 하나 이상의 CVE를 선택합니다.
CVE를 분리할 적절한 방법을 선택합니다.
-
단일 CVE를 선택한 경우 오버플로 메뉴
를 클릭한 다음 Unsnooze CVE 를 선택합니다.
- 여러 CVE를 선택한 경우 Bulk actions → Unsnooze CVE 를 클릭합니다.
-
단일 CVE를 선택한 경우 오버플로 메뉴
Unsnooze CVE 를 다시 클릭합니다.
CVE를 분리할 것을 요청했음을 확인합니다.
15.2.6.3. Sno Cryostated CVE 보기
클러스터된 플랫폼 및 노드 CVE 목록을 볼 수 있습니다.
CVE를 스누핑하는 기능은 웹 포털 또는 API에서 기본적으로 활성화되어 있지 않습니다. CVE를 스누핑할 수 있도록 하려면 런타임 환경 변수 ROX_VULN_MGMT_LEGACY_SNOOZE
를 true
로 설정합니다.
프로세스
RHACS 포털에서 다음 작업을 수행합니다.
- 플랫폼 CVE 목록을 보려면 취약점 관리 → 플랫폼 CVE를 클릭합니다.
- 노드 CVE 목록을 보려면 취약점 관리 → 노드 CVE를 클릭합니다.
- Show sno#159ed CVEs 를 클릭하여 목록을 확인합니다.
15.2.6.4. 취약점을 전 세계적으로 false positive로 표시
전역적으로 또는 모든 이미지에서 잘못된 긍정으로 표시하여 취약점에 대한 예외를 생성할 수 있습니다. 취약점을 예외 관리 워크플로우에서 잘못된 긍정 승인으로 표시하려면 요청을 받아야 합니다.
사전 요구 사항
-
VulnerabilityManagementRequests
리소스에 대한쓰기
권한이 있습니다.
프로세스
- RHACS 포털에서 취약점 관리 → 결과를 클릭합니다.
- 사용자 워크로드 를 클릭합니다.
CVE를 표시하는 적절한 방법을 선택합니다.
단일 CVE를 표시하려면 다음 단계를 수행합니다.
- 조치를 취할 CVE가 포함된 행을 찾습니다.
-
식별한 CVE의 오버플로 메뉴
를 클릭한 다음 Mark as false positive 를 선택합니다.
여러 CVE를 표시하려면 다음 단계를 수행합니다.
- 각 CVE를 선택합니다.
- Bulk 작업 드롭다운 목록에서 Mark as false positives 를 선택합니다.
- 예외를 요청하기 위한 근거를 입력합니다.
- 선택 사항: 예외 요청에 포함된 CVE를 검토하려면 CVE 선택을 클릭합니다.
요청 제출을 클릭합니다.
예외를 요청했다는 확인 메시지가 표시됩니다.
- 선택 사항: 승인 링크를 복사하여 조직의 예외 승인자와 공유하려면 복사 아이콘을 클릭합니다.
- 닫기를 클릭합니다.
15.2.6.5. 취약점을 이미지 또는 이미지 태그에 대한 잘못된 긍정으로 표시
취약점에 대한 예외를 만들려면 단일 이미지 또는 이미지와 연결된 모든 태그에 대해 잘못된 긍정으로 표시할 수 있습니다. 취약점을 예외 관리 워크플로우에서 잘못된 긍정 승인으로 표시하려면 요청을 받아야 합니다.
사전 요구 사항
-
VulnerabilityManagementRequests
리소스에 대한쓰기
권한이 있습니다.
프로세스
- RHACS 포털에서 취약점 관리 → 결과를 클릭합니다.
- 사용자 워크로드 탭을 클릭합니다.
- 이미지 목록을 보려면 < number> 이미지를 클릭합니다.
- false positive로 표시할 이미지를 나열하고 이미지 이름을 클릭합니다.
CVE를 표시하는 적절한 방법을 선택합니다.
단일 CVE를 표시하려면 다음 단계를 수행합니다.
- 조치를 취할 CVE가 포함된 행을 찾습니다.
-
식별한 CVE의 오버플로 메뉴
를 클릭한 다음 Mark as false positive 를 선택합니다.
여러 CVE를 표시하려면 다음 단계를 수행합니다.
- 각 CVE를 선택합니다.
- Bulk 작업 드롭다운 목록에서 Mark as false positives 를 선택합니다.
- 범위를 선택합니다. 이미지와 연결된 모든 태그 또는 이미지만 선택할 수 있습니다.
- 예외를 요청하기 위한 근거를 입력합니다.
- 선택 사항: 예외 요청에 포함된 CVE를 검토하려면 CVE 선택을 클릭합니다.
요청 제출을 클릭합니다.
예외를 요청했다는 확인 메시지가 표시됩니다.
- 선택 사항: 승인 링크를 복사하여 조직의 예외 승인자와 공유하려면 복사 아이콘을 클릭합니다.
- 닫기를 클릭합니다.
15.2.6.6. 지연 및 잘못된 긍정적인 CVE 보기
사용자 워크로드 페이지를 사용하여 지연되거나 잘못된 것으로 표시된 CVE를 볼 수 있습니다.
프로세스
- 승인자가 승인한 예외와 함께 지연되거나 잘못된 것으로 표시된 CVE를 보려면 취약점 관리 → 결과를 클릭합니다.
- 사용자 워크로드 탭을 클릭합니다.
다음 작업 중 하나를 완료합니다.
- 지연된 CVE를 보려면 거부 탭을 클릭합니다.
false positives로 표시된 CVE를 보려면 False positives 탭을 클릭합니다.
참고지연되거나 잘못된 영향을 미치는 CVE를 승인, 거부 또는 변경하려면 취약점 관리 → 예외 관리를 클릭합니다.
- 선택 사항: deferral 또는 false positive에 대한 추가 정보를 보려면 요청 세부 정보 열에서 보기를 클릭합니다. 예외 관리 페이지가 표시됩니다.
15.2.6.7. CVE 지연
완화 및 CVE 지연으로 위험을 감수할 수 있습니다. 예외 관리 워크플로우에서 지연된 요청이 승인되어야 합니다.
사전 요구 사항
-
VulnerabilityManagementRequests
리소스에 대한쓰기
권한이 있습니다.
프로세스
- RHACS 포털에서 취약점 관리 → 결과를 클릭합니다.
- 사용자 워크로드 탭을 클릭합니다.
CVE를 지연할 적절한 방법을 선택합니다.
단일 CVE를 지연하려면 다음 단계를 수행합니다.
- false positive로 표시할 CVE가 포함된 행을 찾습니다.
-
식별한 CVE의 오버플로 메뉴
를 클릭한 다음 Defer CVE 를 클릭합니다.
여러 CVE를 지연하려면 다음 단계를 수행합니다.
- 각 CVE를 선택합니다.
- Bulk actions → Defer CVE를 클릭합니다.
- deferral의 기간을 선택합니다.
- 예외를 요청하기 위한 근거를 입력합니다.
- 선택 사항: 예외 메뉴에 포함된 CVE를 검토하려면 CVE 선택을 클릭합니다.
요청 제출을 클릭합니다.
잘못 요청하신 것으로 확인 메시지가 표시됩니다.
- 선택 사항: 승인 링크를 조직의 예외 승인자와 공유하려면 복사 아이콘을 클릭합니다.
- 닫기를 클릭합니다.
15.2.6.7.1. 취약점 예외 만료 기간 구성
취약점 관리 예외에 사용할 수 있는 기간을 구성할 수 있습니다. 이러한 옵션은 사용자가 CVE 지연을 요청할 때 사용할 수 있습니다.
사전 요구 사항
-
VulnerabilityManagementRequests
리소스에 대한쓰기
권한이 있습니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 예외 구성으로 이동합니다.
- 사용자가 CVE 지연을 요청할 때 선택할 수 있는 만료 시간을 구성할 수 있습니다. 기간을 활성화하면 사용자가 사용할 수 있고 비활성화하면 사용자 인터페이스에서 제거할 수 있습니다.
15.2.6.8. CVE를 지연하거나 잘못된 것으로 표시하는 예외 요청 검토 및 관리
CVE를 잘못된 것으로 표시하고 있다는 예외 요청을 검토, 업데이트, 승인 또는 거부할 수 있습니다.
사전 요구 사항
-
VulnerabilityManagementRequests
리소스에 대한쓰기
권한이 있습니다.
프로세스
보류 중인 요청 목록을 보려면 다음 작업 중 하나를 수행합니다.
- 승인 링크를 브라우저에 붙여넣습니다.
- Vulnerability Management → Exception Management 를 클릭한 다음 Pending requests 탭에서 요청 이름을 클릭합니다.
- 취약점의 범위를 검토하고 이를 승인할지 여부를 결정합니다.
보류 중인 요청을 관리하려면 적절한 옵션을 선택합니다.
요청을 거부하고 CVE를 observed 상태로 되돌리려면 거부 요청을 클릭합니다.
거부 에 대한 합리를 입력하고 거부를 클릭합니다.
요청을 승인하려면 승인 요청을 클릭합니다.
승인 근거를 입력하고 승인을 클릭합니다.
- 생성한 요청을 취소하고 CVE를 observed 상태로 되돌리려면 취소 요청을 클릭합니다. 생성한 요청만 취소할 수 있습니다.
생성한 요청의 deferral time period 또는 rationale를 업데이트하려면 Update request 를 클릭합니다. 생성한 요청만 업데이트할 수 있습니다.
변경 후 요청 제출 을 클릭합니다.
요청을 제출했음을 확인합니다.
15.2.7. CVE를 사용한 구성 요소를 도입한 이미지에서 Dockerfile 행 식별
CVE를 사용하여 구성 요소를 도입한 이미지에서 특정 Dockerfile 행을 식별할 수 있습니다.
프로세스
문제가 있는 행을 보려면 다음을 수행합니다.
- RHACS 포털에서 취약점 관리 → 결과를 클릭합니다.
- 사용자 워크로드 를 클릭합니다.
탭을 클릭하여 CVE 유형을 확인합니다. 다음 탭을 사용할 수 있습니다.
- 모니터링됨
- Deferred
- False positives
- CVE 목록에서 CVE 이름을 클릭하여 CVE 세부 정보가 포함된 페이지를 엽니다. 영향을 받는 구성 요소 열에는 CVE가 포함된 구성 요소가 나열됩니다.
- CVE를 확장하여 구성 요소를 도입한 Dockerfile 행을 포함하여 추가 정보를 표시합니다.
15.2.8. 새 구성 요소 버전 찾기
다음 절차에서는 업그레이드할 새 구성 요소 버전을 찾습니다.
프로세스
- RHACS 포털에서 취약점 관리 → 결과를 클릭합니다.
- 사용자 워크로드 탭을 클릭합니다.
- & lt;number> 이미지를 클릭하고 이미지를 선택합니다.
추가 정보를 보려면 CVE를 찾아 확장 아이콘을 클릭합니다.
추가 정보에는 CVE가 있는 구성 요소 및 수정 가능한 경우 CVE가 수정된 버전이 포함됩니다.
- 이미지를 최신 버전으로 업데이트합니다.
15.2.9. API를 사용하여 워크로드 취약점 내보내기
API를 사용하여 Red Hat Advanced Cluster Security for Kubernetes에서 워크로드 취약점을 내보낼 수 있습니다.
이러한 예제의 경우 워크로드는 배포 및 관련 이미지로 구성됩니다. 내보내기는 /v1/export/vuln-mgmt/workloads
스트리밍 API를 사용합니다. 배포 및 이미지를 결합하여 내보낼 수 있습니다. 이미지
페이로드에는 전체 취약점 정보가 포함되어 있습니다. 출력은 스트리밍되며 다음 스키마가 있습니다.
{"result": {"deployment": {...}, "images": [...]}} ... {"result": {"deployment": {...}, "images": [...]}}
다음 예제에서는 이러한 환경 변수가 설정되어 있다고 가정합니다.
-
ROX_API_TOKEN
:배포
및이미지
리소스에 대한보기
권한이 있는 API 토큰 -
ROX_ENDPOINT
: 중부 API를 사용할 수 있는 끝점 모든 워크로드를 내보내려면 다음 명령을 입력합니다.
$ curl -H "Authorization: Bearer $ROX_API_TOKEN" $ROX_ENDPOINT/v1/export/vuln-mgmt/workloads
쿼리 제한 시간이 60초인 모든 워크로드를 내보내려면 다음 명령을 입력합니다.
$ curl -H "Authorization: Bearer $ROX_API_TOKEN" $ROX_ENDPOINT/v1/export/vuln-mgmt/workloads?timeout=60
쿼리
Deployment:app Namespace:default
와 일치하는 모든 워크로드를 내보내려면 다음 명령을 입력합니다.$ curl -H "Authorization: Bearer $ROX_API_TOKEN" $ROX_ENDPOINT/v1/export/vuln-mgmt/workloads?query=Deployment%3Aapp%2BNamespace%3Adefault
추가 리소스
15.3. 취약점 보고
RHACS 웹 포털의 취약점 관리 → 취약점 보고 메뉴에서 온디맨드 이미지 취약점 보고서를 생성하고 다운로드할 수 있습니다. 이 보고서에는 RHACS의 워크로드 CVE 또는 사용자 워크로드라고 하는 이미지 및 배포의 일반적인 취약점 및 노출에 대한 포괄적인 목록이 포함되어 있습니다.
이 보고서를 감사자 또는 내부 이해 관계자와 공유하려면 RHACS에서 이메일을 예약하거나 다른 방법을 사용하여 보고서를 다운로드하고 공유할 수 있습니다.
15.3.1. 팀에 취약점 보고
조직은 취약점을 지속적으로 재평가하고 보고해야 하므로 일부 조직은 취약점 관리 프로세스에 도움이 되도록 주요 이해 관계자와의 통신을 예약하는 것이 도움이 될 수 있습니다.
Red Hat Advanced Cluster Security for Kubernetes를 사용하여 이메일을 통해 이러한 반복 통신을 예약할 수 있습니다. 이러한 통신은 주요 이해 관계자가 필요로 하는 가장 적절한 정보로 범위가 지정되어야 합니다.
이러한 통신을 보내려면 다음 질문을 고려해야 합니다.
- 이해 관계자와 통신할 때 가장 큰 영향을 미치는 일정은 무엇입니까?
- 대상자는 무엇입니까?
- 보고서에 특정 심각도 취약점만 전송해야 합니까?
- 보고서에 수정 가능한 취약점만 보내야 합니까?
15.3.2. 취약점 관리 보고서 구성 생성
RHACS는 취약점 관리 보고서 구성 생성 프로세스를 안내합니다. 이 구성에서는 예약된 시간에 실행되거나 필요에 따라 실행되는 보고서 작업에 포함될 정보가 결정됩니다.
프로세스
- RHACS 포털에서 취약점 관리 → 취약점 보고 를 클릭합니다.
- 보고서 생성을 클릭합니다.
보고서 매개 변수 구성 페이지에서 다음 정보를 제공합니다.In the Configure report parameters page, provide the following information:
- 보고서 이름: 보고서 구성의 이름을 입력합니다.
- 보고서 설명: 보고서 구성을 설명하는 텍스트를 입력합니다. 이는 선택 사항입니다.
- CVE 심각도: 보고서 구성에 포함할 CVE(Common vulnerabilities and exposures)의 심각도를 선택합니다.
CVE 상태: 하나 이상의 CVE 상태를 선택합니다.
CVE 상태와 관련된 값은 다음과 같습니다.
- 수정 가능
- 수정되지 않음
이미지 유형: 하나 이상의 이미지 유형을 선택합니다.
다음 값은 이미지 유형과 연결됩니다.
- 배포된 이미지
- 모니터링된 이미지
- CVE에서 발견된 CVE: 보고서 구성에 CVE를 포함할 기간을 선택합니다.
- 선택 사항: 보고서 구성에 NVD CVSS 열을 포함 하려면 NVD CVSS 포함 확인란을 선택합니다.
포함된 컬렉션 구성: 하나 이상의 컬렉션을 구성하려면 다음 작업을 수행합니다.
포함할 기존 컬렉션을 선택합니다.
컬렉션 정보를 보려면 컬렉션을 편집하고 컬렉션 결과의 프리뷰를 보려면 보기를 클릭합니다.
컬렉션을 볼 때 필드에 텍스트를 입력하면 해당 텍스트 문자열과 일치하는 컬렉션을 검색합니다.
새 컬렉션을 생성하려면 컬렉션 생성을 클릭합니다.
참고컬렉션에 대한 자세한 내용은 "배포 컬렉션 생성 및 사용"을 참조하십시오.
- 전달 대상을 구성하고 선택적으로 전달 일정을 설정하려면 다음을 클릭합니다.
15.3.2.1. 전달 대상 및 스케줄링 구성
이전 페이지에서 마지막으로 예약된 보고서 이후 발견된 CVE를 포함하는 옵션을 선택하지 않은 경우 취약점 보고서에 대한 대상 및 제공 일정 구성은 선택 사항입니다. 해당 옵션을 선택한 경우 취약점 보고서에 대한 대상 및 제공 일정을 구성해야 합니다.
프로세스
- 전달 대상 구성 섹션에서 대상을 구성하려면 전달 대상을 추가하고 보고 일정을 설정할 수 있습니다.
보고서를 이메일로 보내려면 이메일 알림기를 하나 이상 구성해야 합니다. 기존 알림기를 선택하거나 새 이메일 알림기를 만들어 이메일로 보고서를 보냅니다. 이메일 알림 생성에 대한 자세한 내용은 "추가 리소스" 섹션의 "이메일 플러그인 구성"을 참조하십시오.
알림기를 선택하면 기본 수신자 가 배포 목록 필드에 표시되므로 notifier에 구성된 이메일 주소가 표시됩니다. 쉼표로 구분된 추가 이메일 주소를 추가할 수 있습니다.
기본 이메일 템플릿이 자동으로 적용됩니다. 이 기본 템플릿을 편집하려면 다음 단계를 수행합니다.
- 편집 아이콘을 클릭하고 편집 탭에 사용자 지정 제목 및 이메일 본문을 입력합니다.
- 프리뷰 탭을 클릭하여 제안된 템플릿을 확인합니다.
적용을 클릭하여 템플릿에 대한 변경 사항을 저장합니다.
참고특정 보고서의 보고서 작업을 검토할 때 보고서를 만들 때 기본 템플릿 또는 사용자 지정된 템플릿이 사용되었는지 여부를 확인할 수 있습니다.
- Configure schedule 섹션에서 보고서의 빈도 및 요일을 선택합니다.
- 다음을 클릭하여 취약점 보고서 구성을 검토하고 생성을 완료합니다.
15.3.2.2. 보고서 구성 검토 및 생성
취약점 보고서 구성의 세부 정보를 생성하기 전에 검토할 수 있습니다.
프로세스
- 검토 및 생성 섹션에서는 이메일 전달, 전달 일정 및 보고서 형식을 선택한 경우 사용되는 보고서 구성 매개 변수, 전달 대상, 이메일 템플릿을 검토할 수 있습니다. 변경하려면 이전 섹션으로 이동하여 변경할 필드를 편집합니다.
- 만들기 를 클릭하여 보고서 구성을 생성하고 저장합니다.
15.3.3. 취약점 보고서 권한
보고서를 생성, 보기 및 다운로드하는 기능은 사용자 계정에 대한 액세스 제어 설정 또는 역할 및 권한 세트에 따라 다릅니다.
예를 들어 사용자 계정에 액세스할 수 있는 데이터에 대한 보고서만 보고, 만들고, 다운로드할 수 있습니다. 또한 다음과 같은 제한 사항이 적용됩니다.
- 생성한 보고서만 다운로드할 수 있습니다. 다른 사용자가 생성한 보고서를 다운로드할 수 없습니다.
- 보고서 권한은 사용자 계정의 액세스 설정에 따라 제한됩니다. 계정 액세스 설정이 변경되면 이전 보고서에 변경 사항이 반영되지 않습니다. 예를 들어 새 권한이 부여되고 해당 권한에서 현재 허용되는 취약점 데이터를 보려면 새 취약점 보고서를 생성해야 합니다.
15.3.4. 취약점 보고서 구성 편집
보고서 구성 목록에서 기존 취약점 보고서 구성을 편집하거나 개별 보고서 구성을 먼저 선택할 수 있습니다.
프로세스
- RHACS 웹 포털에서 취약점 관리 → 취약점 보고 를 클릭합니다.
기존 취약점 보고서 구성을 편집하려면 다음 작업을 완료합니다.
-
보고서 구성 목록에서 편집할 보고서 구성을 찾습니다. 오버플로 메뉴
를 클릭한 다음 보고서 편집을 선택합니다.
- 보고서 구성 목록에서 보고서 구성 이름을 클릭합니다. 그런 다음 작업을 클릭하고 보고서 편집을 선택합니다.
-
보고서 구성 목록에서 편집할 보고서 구성을 찾습니다. 오버플로 메뉴
- 보고서 구성을 변경하고 저장합니다.
15.3.5. 취약점 보고서 다운로드
온디맨드 취약점 보고서를 생성한 다음 다운로드할 수 있습니다.
생성한 보고서만 다운로드할 수 있습니다. 다른 사용자가 생성한 보고서를 다운로드할 수 없습니다.
프로세스
- RHACS 웹 포털에서 취약점 관리 → 취약점 보고 를 클릭합니다.
- 보고서 구성 목록에서 다운로드 가능한 보고서를 만드는 데 사용할 보고서 구성을 찾습니다.In the list of report configurations, locate the report configuration that you want to use to create the downloadable report.
다음 방법 중 하나를 사용하여 취약점 보고서를 생성합니다.
목록에서 보고서를 생성하려면 다음을 수행합니다.
-
오버플로 메뉴
를 클릭한 다음 다운로드 생성 을 선택합니다. 내 활성 작업 상태 열에는 보고서 생성 상태가 표시됩니다. 처리 상태가 종료되면 보고서를 다운로드할 수 있습니다.
-
오버플로 메뉴
보고서 창에서 보고서를 생성하려면 다음을 수행합니다.
- 보고서 구성 이름을 클릭하여 구성 세부 정보 창을 엽니다.
- 작업을 클릭하고 다운로드 생성 을 선택합니다.
- 보고서를 다운로드하려면 보고서 구성 목록을 보는 경우 보고서 구성 이름을 클릭하여 엽니다.
- 헤더의 메뉴에서 모든 보고서 작업을 클릭합니다.
-
보고서가 완료되면 Status 열에서 다운로드 준비 링크를 클릭합니다. 이 보고서는
.csv
형식으로 되어 있으며 다운로드를 위해.zip
파일로 압축됩니다.
15.3.6. 필요에 따라 취약점 보고 전송
예약된 전송 시간을 기다리지 않고 즉시 취약점 보고서를 보낼 수 있습니다.
프로세스
- RHACS 웹 포털에서 취약점 관리 → 취약점 보고 를 클릭합니다.
- 보고서 구성 목록에서 보낼 보고서의 보고서 구성을 찾습니다.In the list of report configurations, locate the report configuration for the report that you want to send.
-
오버플로 메뉴
를 클릭한 다음 지금 보고서 보내기 를 선택합니다.
15.3.7. 취약점 보고서 구성 복제
취약점 보고서 구성의 복사본을 복제하여 만들 수 있습니다. 이 기능은 다양한 배포 또는 네임스페이스의 취약점 보고와 같이 약간의 변경 사항으로 보고서 구성을 재사용하려는 경우에 유용합니다.
프로세스
- RHACS 웹 포털에서 취약점 관리 → 취약점 보고 를 클릭합니다.
- 보고서 구성 목록에서 복제할 보고서 구성을 찾습니다.
- 보고서 복제 를 클릭합니다.
- 보고서 매개 변수 및 전달 대상으로 변경할 수 있습니다.Make any changes that you want to the report parameters and delivery destinations.
- 생성을 클릭합니다.
15.3.8. 취약점 보고서 구성 삭제
보고서 구성을 삭제하면 이 구성을 사용하여 이전에 실행된 보고서와 구성이 삭제됩니다.
프로세스
- RHACS 웹 포털에서 취약점 관리 → 취약점 보고 를 클릭합니다.
- 보고서 목록에서 삭제할 보고서 구성을 찾습니다.
-
오버플로 메뉴
를 클릭한 다음 보고서 삭제 를 선택합니다.
15.3.9. 취약점 관리 보고서 작업 보존 설정 구성
보고서 작업 요청이 만료되는 시기 및 보고서 작업에 대한 기타 보존 설정을 결정하는 설정을 구성할 수 있습니다.
이러한 설정은 다음 취약점 보고서 작업에 영향을 미치지 않습니다.
-
WAITING
또는PREPARING
상태의 작업 (작업 제외) - 마지막으로 성공한 예약된 보고서 작업
- 마지막으로 성공적인 온 디맨드 이메일 보고서 작업
- 마지막으로 성공적인 다운로드 보고서 작업
- 수동 삭제로 또는 다운로드 가능한 보고서 정리 설정을 구성하여 보고서 파일이 삭제되지 않은 다운로드 가능한 보고서 작업
프로세스
RHACS 웹 포털에서 플랫폼 구성 → 시스템 구성으로 이동합니다. 취약점 보고서 작업에 대해 다음 설정을 구성할 수 있습니다.
취약점 보고서 실행 기록 보존: 실행된 취약점 보고서 작업에 대해 레코드가 유지되는 일 수입니다. 이 설정은 보고서 구성을 선택할 때 취약점 관리 → 취약점 보고의 모든 보고서 작업 탭에 작업을 보고하는 일 수를 제어합니다. 제외 날짜가 삭제된 후 전체 보고서 기록은 다음 작업을 제외하고 삭제됩니다.
- 완료되지 않은 작업
- 준비된 다운로드 가능한 보고서가 시스템에 남아 있는 작업이 있습니다.
- 각 작업 유형(스케줄링 이메일, 온디맨드 이메일 또는 다운로드)에 대해 마지막으로 성공한 보고서 작업. 이렇게 하면 각 유형의 마지막 실행 작업에 대한 정보가 사용자에게 제공됩니다.
- 사전 다운로드 가능한 취약점 보고일: 준비된 일수에 따라 다운로드 가능한 취약성 보고 작업은 취약점 관리의 모든 보고서 작업 탭에서 다운로드할 수 있습니다. 보고서 구성이 선택될 때 취약점 보고 를 참조하십시오.
- 준비된 다운로드 가능한 취약점 보고서 제한: 다운로드 가능한 취약점 보고 작업을 준비하기 위해 할당된 공간의 제한(MB)입니다. 제한에 도달하면 다운로드 큐에서 가장 오래된 보고서 작업이 제거됩니다.
- 이러한 값을 변경하려면 편집 을 클릭하고 변경 사항을 수행한 다음 저장을 클릭합니다.
15.3.10. 추가 리소스
15.4. 취약점 관리 대시보드 사용(더 이상 사용되지 않음)
RHACS는 취약점 관리 대시보드에서 시스템에서 발견된 취약점을 볼 수 있습니다. 대시보드를 사용하면 이미지, 노드 또는 플랫폼에서 취약점을 볼 수 있습니다. 클러스터, 네임스페이스, 배포, 노드 구성 요소, 이미지 구성 요소별로 취약점을 볼 수도 있습니다. 대시보드는 RHACS 4.5에서 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다.
취약점에 대한 추가 정보 보기, 취약점을 지연하거나 취약점을 잘못된 것으로 표시하는 등 취약점에 대한 작업을 수행하려면 취약점 관리 → 결과로 이동하여 사용자 워크로드 탭을 클릭합니다. CVE를 잘못된 것으로 표시하고 표시하는 요청을 검토하려면 취약점 관리 → 예외 관리를 클릭합니다.
15.4.1. 대시보드를 사용하여 애플리케이션 취약점 보기
대시보드를 사용하여 Red Hat Advanced Cluster Security for Kubernetes에서 애플리케이션 취약점을 볼 수 있습니다.
프로세스
- RHACS 포털에서 취약점 관리 → 대시보드 로 이동합니다.
- 대시보드 보기 헤더에서 애플리케이션 및 인프라 → 네임스페이스 또는 배포를 선택합니다.
- 목록에서 검토할 네임스페이스 또는 배포를 검색하고 선택합니다.
- 애플리케이션에 대한 자세한 정보를 얻으려면 오른쪽에 있는 관련 엔티티 에서 엔터티를 선택합니다.
15.4.2. 대시보드를 사용하여 이미지 취약점 보기
대시보드를 사용하여 Red Hat Advanced Cluster Security for Kubernetes에서 이미지 취약점을 볼 수 있습니다.
프로세스
- RHACS 포털에서 취약점 관리 → 대시보드 로 이동합니다.
- 대시보드 보기 헤더에서 < number> 이미지를 선택합니다.
이미지 목록에서 조사할 이미지를 선택합니다. 다음 단계 중 하나를 수행하여 목록을 필터링할 수도 있습니다.
- 검색 창에 Image 를 입력한 다음 Image 특성을 선택합니다.
- 검색 창에 이미지 이름을 입력합니다.
- 이미지 세부 정보 뷰에서 나열된 CVE를 검토하고 영향을 받는 구성 요소를 해결하기 위한 조치의 우선 순위를 지정합니다.
- 오른쪽에 있는 관련 엔티티 의 구성 요소를 선택하여 선택한 이미지의 영향을 받는 모든 구성 요소에 대한 자세한 정보를 가져옵니다. 또는 특정 CVE의 영향을 받는 구성 요소 목록에 대해 이미지 검사 섹션 아래의 영향을 받는 구성 요소 열에서 구성 요소를 선택합니다.
15.4.3. 대시보드를 사용하여 클러스터 취약점 보기
Red Hat Advanced Cluster Security for Kubernetes를 사용하여 클러스터의 취약점을 볼 수 있습니다.
프로세스
- RHACS 포털에서 취약점 관리 → 대시보드 로 이동합니다.
- 대시보드 보기 헤더에서 애플리케이션 및 인프라 → 클러스터를 선택합니다.
- 클러스터 목록에서 조사할 클러스터를 선택합니다.
- 클러스터의 취약점을 검토하고 클러스터의 영향을 받는 노드에서 작업을 우선순위로 지정합니다.
15.4.4. 대시보드를 사용하여 노드 취약점 보기
Red Hat Advanced Cluster Security for Kubernetes를 사용하여 특정 노드의 취약점을 볼 수 있습니다.
프로세스
- RHACS 포털에서 취약점 관리 → 대시보드 로 이동합니다.
- 대시보드 보기 헤더에서 노드를 선택합니다.
- 노드 목록에서 조사할 노드를 선택합니다.
- 선택한 노드의 취약점을 검토하고 작업 우선순위를 지정합니다.
- 노드에서 영향을 받는 구성 요소에 대한 자세한 내용을 보려면 오른쪽에 있는 관련 엔티티 의 구성 요소를 선택합니다.
15.4.5. 대시보드를 사용하여 가장 취약한 이미지 구성 요소 찾기
취약점 관리 보기를 사용하여 고도로 취약한 이미지 구성 요소를 식별합니다.
프로세스
- RHACS 포털로 이동하여 탐색 메뉴에서 취약점 관리 → 대시보드 를 클릭합니다.
- 취약점 관리 보기 헤더에서 애플리케이션 및 인프라 → 이미지 구성 요소를 선택합니다.
- 이미지 구성 요소 보기에서 이미지 CVEs 열 헤더를 선택하여 CVE 수에 따라 구성 요소를 내림차순(가장 높음)으로 구성합니다.
15.4.6. 대시보드를 사용하여 수정 가능한 CVE에만 대한 세부 정보 보기
취약점 관리 보기를 사용하여 수정 가능한 CVE만 필터링하고 표시합니다.
프로세스
- RHACS 포털에서 취약점 관리 → 대시보드 로 이동합니다.
- 취약점 관리 보기 헤더 의 CVE 필터링 에서 수정 가능 을 클릭합니다.
15.4.7. 대시보드를 사용하여 기본 이미지의 운영 체제 식별
취약점 관리 보기를 사용하여 기본 이미지의 운영 체제를 식별합니다.
프로세스
- RHACS 포털로 이동하여 탐색 메뉴에서 취약점 관리 → 대시보드 를 클릭합니다.
- 취약점 관리 보기 헤더에서 이미지를 선택합니다.
- 이미지 OS 열에서 모든 이미지의 기본 운영 체제(OS) 및 OS 버전을 확인합니다.
- 세부 정보를 볼 이미지를 선택합니다. 기본 운영 체제는 이미지 요약 → 세부 정보 및 메타데이터 섹션에서도 사용할 수 있습니다.
Red Hat Advanced Cluster Security for Kubernetes는 다음과 같은 경우 Image OS 를 알 수 없는 것으로 나열합니다.
- 운영 체제 정보를 사용할 수 없거나
- 사용 중인 이미지 스캐너가 이 정보를 제공하지 않는 경우
Docker Trusted Registry, Google Container Registry 및 Anchore는 이 정보를 제공하지 않습니다.
15.4.8. 대시보드를 사용하여 가장 위험한 오브젝트 확인
취약점 관리 보기를 사용하여 환경에서 가장 위험한 개체를 식별합니다. Top Risky 위젯은 사용자 환경의 위험한 이미지, 배포, 클러스터 및 네임스페이스에 대한 정보를 표시합니다. 위험은 취약점 수와 CVSS 점수에 따라 결정됩니다.
프로세스
- RHACS 포털로 이동하여 탐색 메뉴에서 취약점 관리 → 대시보드 를 클릭합니다.
Top Risky widget 헤더를 선택하여 가장 위험한 이미지, 배포, 클러스터 및 네임스페이스 중에서 선택합니다.
차트의 작은 원은 선택한 오브젝트(이미지, 배포, 클러스터, 네임스페이스)를 나타냅니다. 원점 위로 마우스를 가져가면 표시되는 오브젝트의 개요를 확인할 수 있습니다. 선택한 개체, 관련 엔터티 및 이들 간의 연결에 대한 자세한 정보를 보려면 원을 선택합니다.And select a circle to view detailed information about the selected object, its related entities, and the connections between them.
예를 들어 CVE 수 및 CVSS 점수로 Top Risky Deployments 를 보는 경우 차트의 각 원이 배포를 나타냅니다.
- 배포를 마우스로 가리키면 배포 이름, 클러스터 및 네임스페이스, 심각도, 위험 우선 순위, CVSS 및 CVE 수(수정 포함)가 포함된 배포 개요가 표시됩니다.
- 배포를 선택하면 선택한 배포에 대한 배포 보기가 열립니다. 배포 보기에는 배포에 대한 심층적인 세부 정보가 표시되고 정책 위반, 일반적인 취약점, CVE 및 해당 배포에 가장 위험한 이미지에 대한 정보가 포함되어 있습니다.
- 위젯 헤더에서 View All 을 선택하여 선택한 유형의 모든 개체를 확인합니다. 예를 들어 CVE 수 및 CVSS 점수로 Top Risky Deployments 를 선택한 경우 모두 보기를 선택하여 인프라의 모든 배포에 대한 자세한 정보를 볼 수 있습니다.
15.4.9. 대시보드를 사용하여 가장 위험한 이미지 및 구성 요소 식별
Top Risky 와 마찬가지로 Top Riskiest 위젯에는 가장 위험한 이미지 및 구성 요소의 이름이 나열됩니다. 이 위젯에는 총 CVE 수와 나열된 이미지의 수정 가능한 CVE 수가 포함됩니다.
프로세스
- RHACS 포털로 이동하여 탐색 메뉴에서 취약점 관리를 클릭합니다.
Top Riskiest Images widget 헤더를 선택하여 가장 위험한 이미지와 구성 요소 중에서 선택합니다. 가장 큰 위험 이미지를 보는 경우:
- 목록에 이미지를 마우스로 올리면 이미지 이름, 검사 시간 및 심각도(심각, 높음, 중간 및 낮음)와 함께 CVE 수가 포함된 이미지에 대한 개요가 표시됩니다.
- 이미지를 선택하면 선택한 이미지에 대한 이미지 보기가 열립니다. 이미지 보기에는 이미지에 대한 심층적인 세부 정보가 표시되고 CVSS 점수별 CVE, 가장 위험한 구성 요소, 수정 가능한 CVE, 이미지에 대한 Dockerfile에 대한 정보가 포함되어 있습니다.
- 위젯 헤더에서 View All 을 선택하여 선택한 유형의 모든 개체를 확인합니다. 예를 들어 Top Riskiest Components 를 선택한 경우 모두 보기를 선택하여 인프라의 모든 구성 요소에 대한 세부 정보를 볼 수 있습니다.
15.4.10. 대시보드를 사용하여 이미지의 Dockerfile 보기
취약점 관리 보기를 사용하여 이미지에서 취약점의 근본 원인을 찾습니다. Dockerfile을 보고 Dockerfile에서 해당 단일 명령과 관련된 취약점 및 모든 구성 요소를 도입한 명령을 정확히 찾을 수 있습니다.
Dockerfile 섹션에는 다음에 대한 정보가 표시됩니다.
- Dockerfile의 모든 계층
- 각 계층의 지침 및 해당 값
- 각 계층에 포함된 구성 요소
- 각 계층의 구성 요소의 CVE 수
특정 계층에 의해 구성 요소가 도입되면 확장 아이콘을 선택하여 구성 요소에 대한 요약을 볼 수 있습니다. 해당 구성 요소에 CVE가 있는 경우 개별 구성 요소의 확장 아이콘을 선택하여 해당 구성 요소에 영향을 미치는 CVE에 대한 자세한 정보를 얻을 수 있습니다.
프로세스
- RHACS 포털에서 취약점 관리 → 대시보드 로 이동합니다.
- 상위 위험 이미지 위젯에서 이미지를 선택하거나 대시보드 상단에 있는 이미지 버튼을 클릭하고 이미지를 선택합니다.
- 이미지 세부 정보 뷰에서 Dockerfile 옆에 있는 확장 아이콘을 선택하여 명령, 값, 생성 날짜 및 구성 요소에 대한 요약을 확인합니다.
- 개별 구성 요소의 확장 아이콘을 선택하여 자세한 정보를 확인합니다.
15.4.11. 대시보드를 사용하여 취약점을 유발하는 컨테이너 이미지 계층 식별
취약점 관리 대시보드를 사용하여 취약한 구성 요소 및 해당 구성 요소가 표시되는 이미지 계층을 식별할 수 있습니다.
프로세스
- RHACS 포털로 이동하여 탐색 메뉴에서 취약점 관리 → 대시보드 를 클릭합니다.
- 상위 위험 이미지 위젯에서 이미지를 선택하거나 대시보드 상단에 있는 이미지 버튼을 클릭하고 이미지를 선택합니다.
- Dockerfile 옆에 있는 이미지 세부 정보 뷰에서 확장 아이콘을 선택하여 이미지 구성 요소에 대한 요약을 확인합니다.
- 선택한 구성 요소에 영향을 미치는 CVE에 대한 자세한 내용을 보려면 특정 구성 요소의 확장 아이콘을 선택합니다.
15.4.12. 대시보드를 사용하여 최근 감지된 취약점 보기
취약점 관리 → 대시보드 보기의 최근 탐지된 취약점 위젯에는 검사 시간 및 CVSS 점수에 따라 검사된 이미지에서 최근 발견된 취약점 목록이 표시됩니다. 또한 CVE의 영향을 받는 이미지 수 및 사용자의 환경에 미치는 영향(최근)에 대한 정보도 포함되어 있습니다.
- 목록에서 CVE를 마우스로 가리키면 검사 시간, CVSS 점수, 설명, 영향 및 CVSS v2 또는 v3을 사용하여 점수가 높은지 여부가 포함된 CVE에 대한 개요가 표시됩니다.
- CVE를 선택하면 선택한 CVE에 대한 CVE 세부 정보 보기가 열립니다. CVE 세부 정보 보기에는 CVE 및 구성 요소, 이미지, 배포 및 배포에 대한 세부 정보가 표시됩니다.
- 최근 감지된 취약점 위젯 헤더에서 View All 을 선택하여 인프라의 모든 CVE 목록을 확인합니다. CVE 목록을 필터링할 수도 있습니다.
15.4.13. 대시보드를 사용하여 가장 일반적인 취약점 보기
취약점 관리 → 대시보드 보기의 가장 일반적인 취약점 위젯에는 CVSS 점수에 따라 정렬된 배포 및 이미지 수에 영향을 미치는 취약점 목록이 표시됩니다.
- 목록에서 CVE를 마우스로 가리키면 CVSS v2 또는 v3을 사용하여 점수가 평가되는지 여부, 검사 시간, CVSS 점수, 설명, 영향 등이 포함된 CVE에 대한 개요가 표시됩니다.
- CVE를 선택하면 선택한 CVE에 대한 CVE 세부 정보 보기가 열립니다. CVE 세부 정보 보기에는 CVE 및 구성 요소, 이미지, 배포 및 배포에 대한 세부 정보가 표시됩니다.
- 가장 일반적인 취약점 위젯 헤더에서 View All 을 선택하여 인프라에 있는 모든 CVE 목록을 확인합니다. CVE 목록을 필터링할 수도 있습니다. CVE를 CSV 파일로 내보내려면 내보내기 → CVES 다운로드를 CSV로 선택합니다.
15.4.14. 대시보드를 사용하여 대부분의 Kubernetes 및 Istio 취약점이 있는 클러스터 찾기
취약점 관리 대시보드를 사용하여 사용자 환경에서 대부분의 Kubernetes, Red Hat OpenShift 및 Istio 취약점(더 이상 사용되지 않음)이 있는 클러스터를 식별할 수 있습니다.
프로세스
- RHACS 포털에서 취약점 관리→ 대시보드 를 클릭합니다. 오케스트레이터 및 Istio 취약점 위젯이 가장 많이 있는 클러스터는 각 클러스터에서 Kubernetes, Red Hat OpenShift 및 Istio 취약점(더 이상 사용되지 않음)에 따라 순위가 매겨진 클러스터 목록을 보여줍니다. 목록 상단에 있는 클러스터는 취약점이 가장 많은 클러스터입니다.
목록에서 클러스터 중 하나를 클릭하여 클러스터에 대한 세부 정보를 확인합니다. 클러스터 보기에는 다음이 포함됩니다.
- 클러스터 세부 정보 및 메타데이터, 주요 위험 개체(배포, 네임스페이스 및 이미지)를 표시하는 클러스터 요약 섹션은 최근 취약점, 위험 가능한 이미지 및 가장 심각한 정책 위반이 있는 배포를 감지합니다.
- Cluster Findings 섹션에는 실패한 정책 목록과 수정 가능한 CVE 목록이 포함됩니다.
- 클러스터에 포함된 네임스페이스, 배포, 정책, 이미지, 구성 요소 및 CVE 수를 보여주는 관련 엔티티 섹션. 이러한 엔터티를 선택하여 자세한 내용을 볼 수 있습니다.
- 위젯 헤더에서 View All 을 클릭하여 모든 클러스터 목록을 확인합니다.
15.4.15. 대시보드를 사용하여 노드의 취약점 식별
취약점 관리 보기를 사용하여 노드의 취약점을 식별할 수 있습니다. 확인된 취약점에는 핵심 Kubernetes 구성 요소의 취약점 및 Docker, CRI-O, runC 및 containerd와 같은 컨테이너 런타임이 포함됩니다. RHACS에서 검사할 수 있는 운영 체제에 대한 자세한 내용은 "지원되는 운영 체제"를 참조하십시오.
프로세스
- RHACS 포털에서 취약점 관리 → 대시보드 로 이동합니다.
- 헤더 에서 노드를 선택하여 노드에 영향을 미치는 모든 CVE 목록을 확인합니다.
목록에서 노드를 선택하여 해당 노드에 영향을 미치는 모든 CVE의 세부 정보를 확인합니다.
- 노드를 선택하면 선택한 노드에 대한 노드 세부 정보 패널이 열립니다. 노드 보기에는 노드에 대한 심층적인 세부 정보가 표시되고 CVSS 점수별 CVE 및 해당 노드의 수정 가능한 CVE에 대한 정보가 포함되어 있습니다.
- CVSS별 CVE 점수 위젯 헤더에서 View All on the CVEs by CVSS score widget 헤더를 선택하여 선택한 노드의 모든 CVE 목록을 확인합니다. CVE 목록을 필터링할 수도 있습니다.
- 수정 가능한 CVE를 CSV 파일로 내보내려면 Node Findings 섹션에서 CSV로 내보내기 를 선택합니다.
추가 리소스
15.4.16. 대시보드를 사용하여 특정 CVE를 차단하는 정책 생성
취약점 관리 보기에서 새 정책을 만들거나 기존 정책에 특정 CVE를 추가할 수 있습니다.
프로세스
- 취약점 관리 보기 헤더에서 CVE 를 클릭합니다.
-
하나 이상의 CVE의 확인란을 선택한 다음 Add selected CVE to Policy (
추가
아이콘)를 클릭하거나 목록에서 CVE 위로 마우스를 이동하고 추가 아이콘을 선택할 수 있습니다. 정책 이름:
- 기존 정책에 CVE를 추가하려면 드롭다운 목록 상자에서 기존 정책을 선택합니다.
- 새 정책을 생성하려면 새 정책의 이름을 입력하고 Create <policy_name>을 선택합니다.
- 심각도 값을 선택합니다( 심각도 , 높음,중간 또는 낮음 ).
- 정책을 적용할 수 있는 라이프사이클 단계, Build 또는 Deploy 를 선택합니다. 두 라이프사이클 단계를 모두 선택할 수도 있습니다.
- 설명 상자에 정책에 대한 세부 정보를 입력합니다.
- 정책을 생성하지만 나중에 활성화 하려는 경우 정책 활성화 토글을 끕니다. 정책 활성화 토글은 기본적으로 켜져 있습니다.
- 이 정책에 포함된 나열된 CVE를 확인합니다.
- Save Policy 를 클릭합니다.
15.5. RHCOS 노드 호스트 스캔
OpenShift Container Platform의 경우 RHCOS(Red Hat Enterprise Linux CoreOS)는 컨트롤 플레인에서 지원되는 유일한 운영 체제입니다. 노드 호스트의 경우 OpenShift Container Platform은 RHCOS 및 RHEL (Red Hat Enterprise Linux)을 모두 지원합니다. RHACS(Red Hat Advanced Cluster Security for Kubernetes)를 사용하면 RHCOS 노드에서 취약점을 스캔하고 잠재적인 보안 위협을 감지할 수 있습니다.
RHACS는 RHCOS 설치의 일부로 노드 호스트에 설치된 RHCOS RPM을 검사하여 알려진 취약점을 검사합니다.
먼저 RHACS는 RHCOS 구성 요소를 분석하고 감지합니다. 그런 다음 RHEL 및 다음 데이터 스트림을 사용하여 식별된 구성 요소의 취약점과 일치합니다.
- 노드 검사에 StackRox Scanner를 사용하는 경우 OpenShift 4.X OVAL(Open Vulnerability and Assessment Language) v2 보안 데이터 스트림이 사용됩니다.
- 스캐너 V4를 노드 스캔에 사용하는 경우 Red Hat Common Security Advisory Framework (CSAF) Vulnerability Exploitability eXchange (VEX)가 사용됩니다.
-
roxctl
CLI를 사용하여 RHACS를 설치한 경우 RHCOS 노드 검사 기능을 수동으로 활성화해야 합니다. OpenShift Container Platform에서 Helm 또는 Operator 설치 방법을 사용하는 경우 이 기능은 기본적으로 활성화됩니다.
15.5.1. StackRox 스캐너를 사용하여 RHCOS 노드 스캔 활성화
OpenShift Container Platform을 사용하는 경우 RHACS(Red Hat Advanced Cluster Security for Kubernetes)를 사용하여 취약점에 대해 RHCOS(Red Hat Enterprise Linux CoreOS) 노드 검사를 활성화할 수 있습니다.
사전 요구 사항
- 보안 클러스터의 RHCOS 노드 호스트를 스캔하려면 OpenShift Container Platform 4.12 이상에 Secured Cluster 서비스를 설치해야 합니다. 지원되는 플랫폼 및 아키텍처에 대한 자세한 내용은 Red Hat Advanced Cluster Security for Kubernetes 지원 매트릭스 를 참조하십시오. RHACS에 대한 라이프 사이클 지원 정보는 Red Hat Advanced Cluster Security for Kubernetes 지원 정책을 참조하십시오.
- 다음 절차에서는 처음으로 노드 스캔을 활성화하는 방법을 설명합니다. 스캐너 V4 대신 StackRox 스캐너를 사용하도록 Red Hat Advanced Cluster Security for Kubernetes를 재구성하는 경우 " StackRox 스캐너로 RHCOS 노드 스캔 복원" 절차를 따르십시오.
프로세스
다음 명령 중 하나를 실행하여 규정 준수 컨테이너를 업데이트합니다.
메트릭이 비활성화된 기본 규정 준수 컨테이너의 경우 다음 명령을 실행합니다.
$ oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"containers":[{"name":"compliance","env":[{"name":"ROX_METRICS_PORT","value":"disabled"},{"name":"ROX_NODE_SCANNING_ENDPOINT","value":"127.0.0.1:8444"},{"name":"ROX_NODE_SCANNING_INTERVAL","value":"4h"},{"name":"ROX_NODE_SCANNING_INTERVAL_DEVIATION","value":"24m"},{"name":"ROX_NODE_SCANNING_MAX_INITIAL_WAIT","value":"5m"},{"name":"ROX_RHCOS_NODE_SCANNING","value":"true"},{"name":"ROX_CALL_NODE_INVENTORY_ENABLED","value":"true"}]}]}}}}'
Prometheus 지표가 활성화된 규정 준수 컨테이너의 경우 다음 명령을 실행합니다.
$ oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"containers":[{"name":"compliance","env":[{"name":"ROX_METRICS_PORT","value":":9091"},{"name":"ROX_NODE_SCANNING_ENDPOINT","value":"127.0.0.1:8444"},{"name":"ROX_NODE_SCANNING_INTERVAL","value":"4h"},{"name":"ROX_NODE_SCANNING_INTERVAL_DEVIATION","value":"24m"},{"name":"ROX_NODE_SCANNING_MAX_INITIAL_WAIT","value":"5m"},{"name":"ROX_RHCOS_NODE_SCANNING","value":"true"},{"name":"ROX_CALL_NODE_INVENTORY_ENABLED","value":"true"}]}]}}}}'
다음 단계를 수행하여 Collector DaemonSet(DS)를 업데이트합니다.
다음 명령을 실행하여 수집기 DS에 새 볼륨 마운트를 추가합니다.
$ oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"volumes":[{"name":"tmp-volume","emptyDir":{}},{"name":"cache-volume","emptyDir":{"sizeLimit":"200Mi"}}]}}}}'
다음 명령을 실행하여 새
NodeScanner
컨테이너를 추가합니다.$ oc -n stackrox patch daemonset/collector -p '{"spec":{"template":{"spec":{"containers":[{"command":["/scanner","--nodeinventory","--config=",""],"env":[{"name":"ROX_NODE_NAME","valueFrom":{"fieldRef":{"apiVersion":"v1","fieldPath":"spec.nodeName"}}},{"name":"ROX_CLAIR_V4_SCANNING","value":"true"},{"name":"ROX_COMPLIANCE_OPERATOR_INTEGRATION","value":"true"},{"name":"ROX_CSV_EXPORT","value":"false"},{"name":"ROX_DECLARATIVE_CONFIGURATION","value":"false"},{"name":"ROX_INTEGRATIONS_AS_CONFIG","value":"false"},{"name":"ROX_NETPOL_FIELDS","value":"true"},{"name":"ROX_NETWORK_DETECTION_BASELINE_SIMULATION","value":"true"},{"name":"ROX_NETWORK_GRAPH_PATTERNFLY","value":"true"},{"name":"ROX_NODE_SCANNING_CACHE_TIME","value":"3h36m"},{"name":"ROX_NODE_SCANNING_INITIAL_BACKOFF","value":"30s"},{"name":"ROX_NODE_SCANNING_MAX_BACKOFF","value":"5m"},{"name":"ROX_PROCESSES_LISTENING_ON_PORT","value":"false"},{"name":"ROX_QUAY_ROBOT_ACCOUNTS","value":"true"},{"name":"ROX_ROXCTL_NETPOL_GENERATE","value":"true"},{"name":"ROX_SOURCED_AUTOGENERATED_INTEGRATIONS","value":"false"},{"name":"ROX_SYSLOG_EXTRA_FIELDS","value":"true"},{"name":"ROX_SYSTEM_HEALTH_PF","value":"false"},{"name":"ROX_VULN_MGMT_WORKLOAD_CVES","value":"false"}],"image":"registry.redhat.io/advanced-cluster-security/rhacs-scanner-slim-rhel8:4.7.2","imagePullPolicy":"IfNotPresent","name":"node-inventory","ports":[{"containerPort":8444,"name":"grpc","protocol":"TCP"}],"volumeMounts":[{"mountPath":"/host","name":"host-root-ro","readOnly":true},{"mountPath":"/tmp/","name":"tmp-volume"},{"mountPath":"/cache","name":"cache-volume"}]}]}}}}'
15.5.2. 스캐너 V4로 RHCOS 노드 스캔 활성화
OpenShift Container Platform을 사용하는 경우 RHACS(Red Hat Advanced Cluster Security for Kubernetes)를 사용하여 취약점에 대해 RHCOS(Red Hat Enterprise Linux CoreOS) 노드 검사를 활성화할 수 있습니다.
사전 요구 사항
보안 클러스터의 RHCOS 노드 호스트를 스캔하려면 다음 소프트웨어를 설치해야 합니다.
- OpenShift Container Platform 4.12 이상에서 보안 클러스터 서비스
RHACS 버전 4.6 이상
지원되는 플랫폼 및 아키텍처에 대한 자세한 내용은 Red Hat Advanced Cluster Security for Kubernetes 지원 매트릭스 를 참조하십시오. RHACS에 대한 라이프 사이클 지원 정보는 Red Hat Advanced Cluster Security for Kubernetes 지원 정책을 참조하십시오.
프로세스
스캐너 V4를 사용하여 노드 인덱싱 (노드 스캔이라고도 함)을 활성화하려면 다음을 수행합니다.
scanner V4가 Central 클러스터에 배포되었는지 확인합니다.
$ kubectl -n stackrox get deployment scanner-v4-indexer scanner-v4-matcher scanner-v4-db1
- 1
- OpenShift Container Platform의 경우
kubectl
대신oc
를 사용합니다.
중앙 포드에서
중앙
컨테이너에서ROX_NODE_INDEX_ENABLED
및ROX_SCANNER_V4
변수를 Central 클러스터에서 다음 명령을 실행하여true
로 설정합니다.$ kubectl -n stackrox set env deployment/central ROX_NODE_INDEX_ENABLED=true ROX_SCANNER_V4=true1
- 1
- OpenShift Container Platform의 경우
kubectl
대신oc
를 사용합니다.
센서
컨테이너에서 노드 검사를 활성화하려는 모든 보안 클러스터에서 다음 명령을 실행하여 센서 컨테이너에서ROX_NODE_INDEX_ENABLED
및ROX_SCANNER_V4
변수를true
로 설정합니다.$ kubectl -n stackrox set env deployment/sensor ROX_NODE_INDEX_ENABLED=true ROX_SCANNER_V4=true1
- 1
- OpenShift Container Platform의 경우
kubectl
대신oc
를 사용합니다.
수집기 데몬 세트에서 노드 스캔을 활성화하려는 모든 보안 클러스터에서 다음 명령을 실행하여
규정 준수
컨테이너에서ROX_NODE_INDEX_ENABLED
및ROX_SCANNER_V4
변수를true
로 설정합니다.$ kubectl -n stackrox set env daemonset/collector ROX_NODE_INDEX_ENABLED=true ROX_SCANNER_V4=true1
- 1
- OpenShift Container Platform의 경우
kubectl
대신oc
를 사용합니다.
노드 검사가 작동하는지 확인하려면 중앙 로그에서 다음 메시지를 검사합니다.
Scanned index report and found <number> components for node <node_name>.
다음과 같습니다.
- <number>
- 검색된 구성 요소의 수를 지정합니다.
- <node_name>
- 노드의 이름을 지정합니다.
15.5.3. StackRox 스캐너를 사용하여 RHCOS 노드 스캔 복원
OpenShift Container Platform을 사용하는 경우 RHACS(Red Hat Advanced Cluster Security for Kubernetes)를 사용하여 취약점에 대해 RHCOS(Red Hat Enterprise Linux CoreOS) 노드 검사를 활성화할 수 있습니다. 이 기능은 StackRox 스캐너 및 스캐너 V4 모두에서 사용할 수 있습니다. StackRox 스캐너를 사용하여 RHCOS(Red Hat Enterprise Linux CoreOS) 노드를 검사하지만 스캐너 V4를 계속 사용하여 다른 노드를 스캔하려면 다음 절차를 따르십시오.
사전 요구 사항
- 보안 클러스터의 RHCOS 노드 호스트를 스캔하려면 OpenShift Container Platform 4.12 이상에 Secured Cluster 서비스를 설치해야 합니다. 지원되는 플랫폼 및 아키텍처에 대한 자세한 내용은 Red Hat Advanced Cluster Security for Kubernetes 지원 매트릭스 를 참조하십시오. RHACS에 대한 라이프 사이클 지원 정보는 Red Hat Advanced Cluster Security for Kubernetes 지원 정책을 참조하십시오.
프로세스
StackRox 스캐너를 사용하여 노드 인덱싱 (노드 스캔이라고도 함)을 활성화하려면 다음을 수행합니다.
StackRox 스캐너가 중앙 클러스터에 배포되었는지 확인합니다.
$ kubectl -n stackrox get deployment scanner scanner-db1
- 1
- OpenShift Container Platform의 경우
kubectl
대신oc
를 사용합니다.
중앙 포드에서 중앙 컨테이너에서 다음 명령을 실행하여
중앙
컨테이너에서ROX_NODE_INDEX_ENABLED
를false
로 설정합니다.$ kubectl -n stackrox set env deployment/central ROX_NODE_INDEX_ENABLED=false1
- 1
- OpenShift Container Platform의 경우
kubectl
대신oc
를 사용합니다.
수집기 데몬 세트에서 노드 스캔을 활성화하려는 모든 보안 클러스터에서 다음 명령을 실행하여
규정 준수
컨테이너에서ROX_CALL_NODE_INVENTORY_ENABLED
를true
로 설정합니다.$ kubectl -n stackrox set env daemonset/collector ROX_CALL_NODE_INVENTORY_ENABLED=true1
- 1
- OpenShift Container Platform의 경우
kubectl
대신oc
를 사용합니다.
노드 검사가 작동하는지 확인하려면 중앙 로그에서 다음 메시지를 검사합니다.
Scanned node inventory <node_name> (id: <node_id>) with <number> components.
다음과 같습니다.
- <number>
- 검색된 구성 요소의 수를 지정합니다.
- <node_name>
- 노드의 이름을 지정합니다.
- <node_id>
- 노드의 내부 ID를 지정합니다.
15.5.4. 분석 및 탐지
OpenShift Container Platform과 함께 RHACS를 사용하는 경우 RHACS는 규정 준수 컨테이너와 Node-inventory 컨테이너를 분석 및 탐지하기 위해 두 가지 조정 컨테이너를 생성합니다. Compliance 컨테이너는 이미 이전 RHACS 버전의 일부였습니다. 그러나 Node-inventory 컨테이너는 RHACS 4.0의 새로운 기능이며 OpenShift Container Platform 클러스터 노드에서만 작동합니다.
시작 시 Compliance 및 Node-inventory 컨테이너는 5분 이내에 RHCOS(Red Hat Enterprise Linux CoreOS) 소프트웨어 구성 요소의 첫 번째 인벤토리 검사를 시작합니다. 다음으로 Node-inventory 컨테이너는 노드의 파일 시스템을 검사하여 설치된 RPM 패키지를 식별하고 RHCOS 소프트웨어 구성 요소를 보고합니다. 이후 인벤토리 검색은 일반적으로 4시간마다 주기적인 간격으로 수행됩니다. Compliance 컨테이너에 대해 ROX_NODE_SCANNING_INTERVAL 환경 변수를 구성하여 기본 간격을 사용자 지정할 수 있습니다.
15.5.5. RHCOS 노드에서의 취약점 일치
중앙 및 스캐너를 포함하는 중앙 서비스는 취약점 일치를 수행합니다. 노드 스캔은 다음 스캐너를 사용하여 수행됩니다.
- StackRox 스캐너: 기본 스캐너입니다. StackRox Scanner는 Red Hat의 OVAL(Open Vulnerability and Assessment Language) v2 보안 데이터 스트림을 사용하여 RHCOS(Red Hat Enterprise Linux CoreOS) 소프트웨어 구성 요소의 취약점과 일치합니다.
- 스캐너 V4: 스캐너 V4는 노드 스캔에 기술 프리뷰 기능으로 사용할 수 있습니다. 스캐너 V4를 명시적으로 활성화해야 합니다. 자세한 내용은 "추가 리소스"의 설명서를 참조하십시오.
RHCOS 노드를 스캔할 때 4.0 후 RHACS 릴리스는 더 이상 Kubernetes 노드 메타데이터를 사용하여 커널 및 컨테이너 런타임 버전을 찾지 않습니다. 대신 RHACS는 설치된 RHCOS RPM을 사용하여 해당 정보를 평가합니다.
15.5.6. 관련 환경 변수
다음 환경 변수를 사용하여 RHACS에서 RHCOS 노드 스캔을 구성할 수 있습니다.
환경 변수 | 설명 |
---|---|
|
캐시된 인벤토리가 오래된 것으로 간주되는 시간입니다. 기본값은 |
|
노드 검사의 초기 시간(초)은 백오프 파일이 발견되면 지연됩니다. 기본값은 |
| backoff의 상한값입니다. 기본값은 5m이며 Kubernetes 재시작 정책 안정성 타이머의 50%입니다. |
환경 변수 | 설명 |
---|---|
|
이 클러스터에 노드 인덱싱이 활성화되어 있는지 여부를 제어합니다. 기본값은 |
|
노드 검사 사이의 간격 기간의 기본 값입니다. 기본값은 |
|
노드 검사 기간은 기본 간격 시간과 다를 수 있습니다. 그러나 최대값은 |
|
임의로 생성되는 첫 번째 노드 검사 전의 최대 대기 시간입니다. 이 값을 |
15.5.7. 대시보드를 사용하여 노드의 취약점 식별
취약점 관리 보기를 사용하여 노드의 취약점을 식별할 수 있습니다. 확인된 취약점에는 핵심 Kubernetes 구성 요소의 취약점 및 Docker, CRI-O, runC 및 containerd와 같은 컨테이너 런타임이 포함됩니다. RHACS에서 검사할 수 있는 운영 체제에 대한 자세한 내용은 "지원되는 운영 체제"를 참조하십시오.
프로세스
- RHACS 포털에서 취약점 관리 → 대시보드 로 이동합니다.
- 헤더 에서 노드를 선택하여 노드에 영향을 미치는 모든 CVE 목록을 확인합니다.
목록에서 노드를 선택하여 해당 노드에 영향을 미치는 모든 CVE의 세부 정보를 확인합니다.
- 노드를 선택하면 선택한 노드에 대한 노드 세부 정보 패널이 열립니다. 노드 보기에는 노드에 대한 심층적인 세부 정보가 표시되고 CVSS 점수별 CVE 및 해당 노드의 수정 가능한 CVE에 대한 정보가 포함되어 있습니다.
- CVSS별 CVE 점수 위젯 헤더에서 View All on the CVEs by CVSS score widget 헤더를 선택하여 선택한 노드의 모든 CVE 목록을 확인합니다. CVE 목록을 필터링할 수도 있습니다.
- 수정 가능한 CVE를 CSV 파일로 내보내려면 Node Findings 섹션에서 CSV로 내보내기 를 선택합니다.
15.5.8. 노드의 취약점 보기
RHACS를 사용하여 노드의 취약점을 식별할 수 있습니다. 확인된 취약점은 다음과 같습니다.
- 핵심 Kubernetes 구성 요소의 취약점
- Docker, CRI-O, runC 및 containerd와 같은 컨테이너 런타임의 취약점
RHACS에서 검사할 수 있는 운영 체제에 대한 자세한 내용은 "지원되는 운영 체제"를 참조하십시오.
RHACS는 현재 StackRox 스캐너 및 스캐너 V4로 노드 스캔 기능을 지원합니다. 구성된 스캐너에 따라 취약점 목록에 다른 결과가 표시될 수 있습니다. 자세한 내용은 " StackRox 스캐너 및 스캐너 V4 간의 스캔 결과에 대한 이해"를 참조하십시오.
프로세스
- RHACS 포털에서 취약점 관리 → 결과 로 이동합니다.
- 노드 탭을 선택합니다.
- 선택 사항: 페이지가 기본적으로 관찰된 CVE 목록으로 설정됩니다. Show sno#159ed CVE를 클릭하여 확인합니다.
선택 사항: 엔터티에 따라 CVE를 필터링하려면 적절한 필터 및 속성을 선택합니다. 필터링 기준을 추가하려면 다음 단계를 따르십시오.
- 목록에서 엔터티 또는 특성을 선택합니다.
- 선택 사항에 따라 텍스트와 같은 적절한 정보를 입력하거나 날짜 또는 개체를 선택합니다.
- 오른쪽 화살표 아이콘을 클릭합니다.
선택 사항: 추가 엔터티 및 특성을 선택한 다음 오른쪽 화살표 아이콘을 클릭하여 추가합니다. 필터 엔터티 및 속성은 다음 표에 나열되어 있습니다.
표 15.9. 필터 옵션 엔터티 속성 노드
- name: 노드의 이름입니다.
- 운영 체제: 노드의 운영 체제(예: RHEL(Red Hat Enterprise Linux))입니다.
- label: 노드의 레이블입니다.
- annotation: 노드의 주석입니다.
- 검사 시간: 노드의 검사 날짜입니다.
CVE
- name: CVE의 이름입니다.
- 검색된 시간: RHACS가 CVE를 발견한 날짜입니다.
CVSS: CVE의 심각도 수준입니다.
다음 값은 CVE의 심각도 수준과 관련이 있습니다.
- 보다 크거나
- 크거나 같음
- 이 값과 같습니다
- 작거나 같음
- 보다 작음
노드 구성 요소
- name: 구성 요소의 이름입니다.
-
Version: 구성 요소의 버전입니다(예:
4.15.0-2024
). 이를 사용하여 구성 요소 이름과 함께 특정 버전의 구성 요소(예:)를 검색할 수 있습니다.
Cluster
- id: 클러스터의 영숫자 ID입니다. RHACS에서 추적을 위해 할당하는 내부 식별자입니다.
- name: 클러스터의 이름입니다.
- label : 클러스터의 레이블입니다.
- type: 클러스터 유형입니다(예: OCP).
- 플랫폼 유형: 플랫폼의 유형입니다(예: OpenShift 4 클러스터).
선택 사항: 결과 목록을 구체화하려면 다음 작업 중 하나를 수행합니다.
- CVE 심각도 를 클릭한 다음 하나 이상의 수준을 선택합니다.
- CVE 상태를 클릭한 다음 Fixable 또는 Not fixable 을 선택합니다.
데이터를 보려면 다음 탭 중 하나를 클릭합니다.
- <number> CVE: 모든 노드에 영향을 미치는 모든 CVE 목록을 표시합니다.
- <number> 노드: CVE가 포함된 노드 목록을 표시합니다.
- 노드의 세부 정보와 CVSS 점수 및 수정 가능한 CVE에 대한 정보를 보려면 노드 목록에서 노드 이름을 클릭합니다.
15.5.9. Stackrox 스캐너와 스캐너 V4 간의 스캔 결과의 차이점 이해
scanner V4를 사용하여 RHCOS 노드 호스트를 스캔하면 동일한 운영 체제 버전에 대해 더 많은 CVE를 보고합니다. 예를 들어 scanner V4는 StackRox 스캐너에서 보고한 약 50개의 CVE와 비교하여 약 390개의 CVE를 보고합니다. 선택한 취약점을 수동으로 검토하면 다음과 같은 원인이 발견되었습니다.
- scanner V4에서 사용되는 VEX( Vulnerability Exploitability eXchange) 데이터가 더 정확합니다.
- VEX 데이터에는 "안정된 수정" 및 "고정된 수정"과 같은 세분화된 상태가 포함됩니다.
- StackRox Scanner에서 보고한 일부 취약점은 잘못된 프록시입니다.
그 결과 scanner V4는 보다 정확하고 이해할 수 있는 취약점 평가를 제공합니다.
보고된 취약점의 불일치를 찾을 수 있습니다. 특히 일부 보안 클러스터에서 StackRox 스캐너에서 이전 RHACS 버전을 계속 사용하는 경우 scanner V4를 사용할 수 있습니다. 이러한 차이점을 이해하는 데 도움이 되도록 다음 예제에서는 보고된 취약점을 수동으로 확인하는 방법에 대한 설명과 지침을 제공합니다.
15.5.9.1. 보고된 취약점의 불일치 예
이 예제에서는 임의로 선택한 RHCOS 버전 세 개에 대해 보고된 CVE의 차이점을 분석했습니다. 이 예에서는 RHCOS 버전 417.94.202501071621-0
에 대한 결과를 제공합니다. 이 버전의 RHACS는 다음 검사 결과를 제공했습니다.
- StackRox Scanner는 49 CVE를 보고했습니다.
- 스캐너 V4는 389 CVE를 보고했습니다.
분석 결과는 다음과 같습니다.
- 1 CVE는 StackRox 스캐너에서만 보고됩니다.
- 두 스캐너 모두에 의해 48 개의 CVE가 보고됩니다.
- 341 CVE는 스캐너 V4에서만 보고됩니다.
15.5.9.1.1. StackRox 스캐너에서만 보고된 CVE
StackRox 스캐너에서만 보고된 단일 CVE는 잘못된 긍정이었습니다. CVE-2022-4122는 버전 5:5.2.2-1.rhaos4.17.el9.x86_64
의 podman
패키지에 플래그가 지정되었습니다. 그러나 RHSA-2024:9102 의 VEX 데이터를 수동으로 검토하면 이 취약점이 버전 5:5.2.2-1.el9
에서 수정되었음을 나타냅니다. 따라서 스캔한 패키지 버전은 수정 사항을 포함하는 첫 번째 문제였으며 더 이상 영향을 받지 않았습니다.
15.5.9.1.2. Scanner V4에서만 보고된 CVE
341에서 스캐너 V4로 고유 한 10 개의 CVE를 무작위로 선택하고 VEX 데이터를 사용하여 자세한 분석을 수행했습니다. 이 취약점은 다음 두 가지 범주로 분류되었습니다.
- 수정 사항이 계획되어 있지 않음을 나타내는 세분화된 상태의 영향을 받는 패키지
- 수정 사항에 대한 추가 상태 세부 정보가 없는 영향을 받는 패키지
예를 들어 다음 결과가 분석되었습니다.
-
git-core
패키지(버전2.43.5-1.el9_4
)는 CVE-2024-50349(VEX 데이터)용으로 플래그가 지정되었으며 "Fix deferred" 상태로 "Affected"로 표시되었습니다. 즉 우선 순위가 높은 개발 작업으로 인해 수정이 보장되지 않습니다. 이 패키지는 총 세 가지 CVE의 영향을 받습니다. -
vim-minimal
패키지(버전2:8.2.2637-20.el9_1
)는 109 CVE로 플래그가 지정되었으며, 그 중 108은 CVSS 점수가 낮습니다. 대부분은 "수정되지 않음"이라는 세분화된 상태로 "영향을 받는"으로 표시됩니다. -
krb5-libs
패키지(버전1.21.1-2.el9_4.1
)는 CVE-2025-24528(VEX 데이터)에 대해 플래그가 지정되었지만 세분화된 상태는 사용할 수 없었습니다. 이 CVE가 최근 분석 시 발견되었으므로 곧 해당 상태가 업데이트될 수 있습니다.
15.5.9.1.3. 두 스캐너에서 보고한 CVE
무작위로 선택한 세 개의 패키지를 수동으로 검증하여 StackRox 스캐너 및 스캐너 V4에서 사용되는 VEX 데이터에 사용된 OVAL v2 데이터가 탐지된 CVE에 대한 일관된 설명을 제공했음을 확인했습니다. 경우에 따라 CVSS 점수가 약간 다르며 VEX 게시자 데이터의 변형으로 인해 예상되는 경우가 있습니다.
15.5.9.2. 취약점 상태 확인
공개적으로 사용 가능한 VEX 데이터를 사용하여 환경에 중요한 노드 호스트 구성 요소의 취약점의 세분화된 상태를 확인하십시오. VEX 데이터는 사람이 읽을 수 있는 형식과 머신에서 읽을 수 있는 형식으로 모두 액세스할 수 있습니다. VEX 데이터 해석에 대한 자세한 내용은 Red Hat Enterprise Linux CoreOS 보안 데이터의 최근 개선 사항을 참조하십시오.
15.6. 스캔한 이미지에서 SBOM 생성
RHACS를 사용하여 스캔된 컨테이너 이미지에서 SBOM(SoftwareServiceVersion of materials)을 생성할 수 있습니다.
스캔된 컨테이너 이미지에서 SBOM 생성은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. Red Hat은 프로덕션 환경에서 사용하는 것을 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
SBOM을 생성하려면 스캐너 V4를 활성화해야 합니다. 스캐너 V4 활성화에 대한 자세한 내용은 다음 리소스를 참조하십시오.
OpenShift Container Platform의 경우:
- Operator 방법을 사용하여 Central 설치
- 스캐너 V4 (Helm 설치)
Kubernetes의 경우:
- 스캐너 V4 (Helm 설치)
SBOM은 애플리케이션 내에서 소프트웨어 구성 요소, 종속성 및 라이브러리에 대한 자세한 개요를 제공합니다. RHACS는 scanner V4에서 수행한 검사 결과를 사용하여 SBOM을 생성합니다. RHACS 포털, roxctl
CLI 또는 RHACS API를 사용하여 SBOM을 생성할 수 있습니다.
스캐너 V4는 위임된 검사 결과에서 SBOM을 생성할 수 없습니다. 위임된 검사에서는 보안 클러스터를 사용하여 이미지를 인덱싱하고 취약점 일치를 위해 이미지를 Central로 전송합니다. SBOM 생성은 Central에서 구성된 scanner V4를 사용하는 경우에만 사용할 수 있습니다.
15.6.1. SBOM 정보
Software bill of materials (SBOM)는 소프트웨어의 구성 요소와 출처를 나열하는 디지털 레코드입니다. 조직은 SBOM을 사용하여 취약한 소프트웨어 패키지 및 구성 요소를 찾고 보다 신속하게 대응하여 위험을 완화할 수 있습니다. 또한 SBOM을 생성할 수 있는 것은 조직이 Executive Order 14028을 준수하는 데 도움이 됩니다: Nations Cybersecurity 개선
SBOM은 데이터 수집 방법 및 생성 방법에 따라 다양한 유형의 정보를 포함할 수 있습니다. CISA(Cybersecurity & Infrastructure Security Agency)는 SBOM 의 유형을 요약하는 SBOM(Software bill of material) 유형을 제공합니다.
RHACS에서 생성하는 SBOM 유형은 "Analyzed"입니다. CISA는 이러한 유형의 SBOM은 실행 파일, 패키지, 컨테이너 및 가상 머신 이미지와 같은 아티팩트 분석을 통해 생성됩니다. 분석 SBOM은 CISA에 의해 요약된 다음과 같은 이점을 제공합니다.
- 활성 개발 환경 없이 소프트웨어에 대한 정보를 제공할 수 있습니다.
- 빌드 프로세스에 액세스하지 않고 생성할 수 있습니다.
- 다른 도구에서 누락할 수 있는 숨겨진 종속성을 검색하는 데 사용할 수 있습니다.
RHACS에서 생성된 SBOM은 SPDX(System Package Data Exchange) 2.3 형식입니다.
15.6.2. SBOM 생성
다음 방법을 사용하여 SBOM을 생성할 수 있습니다.
- RHACS 포털 사용
취약점 관리 → 결과로 이동하여 사용하려는 이미지를 찾습니다. 다음 작업 중 하나를 수행합니다.
-
이미지 행에서 오버플로 메뉴
를 클릭한 다음 SBOM 생성 을 선택합니다.
- 이미지 세부 정보를 볼 이미지를 선택한 다음 SBOM 생성 을 클릭합니다.
생성된 이미지와 SBOM 형식에 대한 정보를 제공하는 창이 열립니다. SBOM 생성 을 클릭하면 RHACS가 JSON 형식으로 파일을 생성합니다. 브라우저 구성에 따라 브라우저가 파일을 컴퓨터에 자동으로 다운로드할 수 있습니다.
-
이미지 행에서 오버플로 메뉴
roxctl
CLI 사용roxctl
CLI에서 다음 명령을 실행합니다.$ roxctl image sbom --image=image-name 1
- 1
- SBOM을 생성할 이미지의 이름 및 참조를 문자열 형식으로 입력합니다. 예를 들어
nginx:latest
또는nginx@sha256:…
.
이 명령에는 다음과 같은 옵션이 있습니다.
옵션 | 설명 |
---|---|
|
이미지의 Central 캐시를 무시하고 스캐너에서 새 가져오기를 강제 적용합니다. 기본값은 |
| 재시도 횟수를 초 단위로 대기할 시간을 설정합니다. 기본값은 3입니다. |
|
이미지 이름 및 참조(예: |
| 오류로 종료하기 전에 scanner V4가 재시도해야 하는 횟수를 설정합니다. 기본값은 3입니다. |
- API 사용
-
RHACS API를 사용하여 SBOM을 생성할 수 있습니다.
ROX_API_TOKEN
을 사용하여 엔드포인트에 연결하고 SBOM을 생성해야 합니다. 요청 페이로드는 JSON 형식으로 생성됩니다.
자세한 내용은 API 참조의 "GenerateSBOM"을 참조하십시오.
16장. 위반에 응답
RHACS(Red Hat Advanced Cluster Security for Kubernetes)를 사용하면 정책 위반을 확인하고 위반의 실제 원인으로 이동하여 수정 조치를 취할 수 있습니다.
RHACS의 기본 제공 정책은 취약점(CVE), DevOps 모범 사례 위반, 위험이 높은 빌드 및 배포 관행, 의심스러운 런타임 동작을 포함하여 다양한 보안 결과를 식별합니다. 기본 기본 보안 정책을 사용하거나 사용자 지정 정책을 사용하는 경우 RHACS는 활성화된 정책이 실패할 때 위반을 보고합니다.
16.1. 플랫폼 구성 요소에 대한 네임스페이스 조건
플랫폼 구성 요소의 네임스페이스 조건을 이해하면 해당 환경의 OpenShift Container Platform, 계층화된 제품 및 타사 파트너에 속하는 네임스페이스를 식별하고 관리할 수 있습니다.
플랫폼 구성 요소 | 네임스페이스 조건 |
---|---|
OpenShift Container Platform |
|
계층화된 제품 |
|
타사 파트너 |
|
Red Hat Advanced Cluster Security for Kubernetes(RHACS)는 다음 regex 패턴을 사용하여 플랫폼 구성 요소에 속하는 워크로드를 식별합니다.
^kube-.*|^openshift-.*|^stackrox$|^rhacs-operator$|^open-cluster-management$|^multicluster-engine$|^aap$|^hive$|^nvidia-gpu-operator$
플랫폼 정의는 아직 사용자 정의할 수 없습니다. 글로벌 검색을 사용하여 사용자 환경에서 정의의 영향을 확인할 수 있습니다. 글로벌 검색을 수행하려면 다음 단계를 따르십시오.
- Search를 클릭합니다
- Orchestrator 구성 요소 표시를 선택합니다.
-
필터
플랫폼 구성 요소 적용: true
.
16.2. 모든 위반 분석
위반 페이지를 보면 모든 위반 사항을 분석하고 수정 조치를 취할 수 있습니다.
프로세스
- RHACS 포털에서 가시성을 클릭합니다.
다음 탭 중 하나를 클릭하여 카테고리별 위반을 확인합니다.
- 사용자 워크로드: 사용자 관리 워크로드에 대한 위반을 표시합니다.
- Platform: OpenShift Container Platform 및 계층화된 서비스에서 사용하는 워크로드에 대한 위반을 표시합니다.
- 모든 위반: 사용자 워크로드 및 플랫폼 구성 요소에 대한 위반을 표시합니다. 클러스터 리소스에 대한 감사 로그 위반도 표시합니다.
다음 탭 중 하나를 클릭하여 유형별 위반을 확인합니다.
- 활성: 빌드의 위반 및 배포 단계 또는 해결되지 않은 런타임 위반을 표시합니다.
해결 방법: 다음 위반을 표시합니다.
- 규정 준수로 제거되거나 수정된 워크로드에 대한 빌드 및 배포 단계 위반
- 수동으로 해결된 런타임 위반
- 정책 제외를 추가하기 전에 생성된 위반
- 재시도: 적용 정책 평가에 의해 시도되었지만 차단된 배포 작업에 대한 위반을 표시합니다. 예를 들어 승인 컨트롤러에서 배포 생성, 업데이트 또는 스케일링과 같은 배포 작업이 시도된 것을 감지하면 정책 위반으로 인해 클러스터에서 작업이 실행되지 않습니다.
선택 사항: 분류 페이지에서 정보를 재구성하거나 필터링하는 방법을 선택합니다.
- 위반을 오름차순이나 내림차순으로 정렬하려면 열 제목을 선택합니다.
- 위반을 필터링하려면 필터 표시줄을 사용합니다.
- 위반에 대한 자세한 내용을 보려면 위반 페이지에서 위반 을 선택합니다.
선택 사항: 정책에서 배포를 제외하는 적절한 방법을 선택합니다.
-
단일 배포를 선택한 경우 오버플로 메뉴
를 클릭한 다음 정책에서 배포 제외 를 선택합니다.
- 여러 배포를 선택한 경우 행 작업 드롭다운 목록에서 정책에서 배포 제외 를 선택합니다.
-
단일 배포를 선택한 경우 오버플로 메뉴
16.3. 위반 페이지 개요
위반 목록이 표시되고 다음 그룹에 정보를 구성합니다.
- 정책: 위반된 정책의 이름입니다.
- entity: 위반이 발생한 엔터티입니다.
Type: 엔티티의 유형입니다.
워크로드 위반의 경우 유형은 워크로드 유형을 나타냅니다(예:
Deployment
,Pod
,DaemonSet
등).다른 리소스 위반의 경우 유형은 리소스 유형(예:
Secrets
,ConfigMaps
,ClusterRoles
등)을 나타냅니다.- 적용됨: 위반이 발생했을 때 정책이 적용되었는지 여부를 나타냅니다.
심각도: 위반의 심각도입니다.
다음은 위반 심각도와 관련된 값입니다.
-
낮음 (LOW)
-
중간
-
높음
-
심각
-
분류: 위반된 정책의 범주입니다.
정책 카테고리를 보려면 다음을 수행합니다.
- RHACS 포털에서 플랫폼 구성 → 정책 관리 → 정책 카테고리 탭을 클릭합니다.
라이프사이클: 정책이 적용되는 라이프사이클 단계입니다.
다음은 라이프사이클 단계와 연결된 값입니다.
-
Build
-
배포
-
런타임
-
- Time: 위반이 발생한 날짜와 시간입니다.
16.4. 위반 세부 정보 보기
Violations 보기에서 위반을 선택하면 위반에 대한 자세한 정보가 포함된 창이 열립니다. 여러 탭으로 그룹화된 자세한 정보를 제공합니다.
16.4.1. 위반 탭
격리 세부 정보 패널의 가시성 탭에서는 정책이 위반 된 방법을 설명합니다. 정책이 배포상 속성을 대상으로 하는 경우 정책 위반 이름과 같은 정책을 위반하는 특정 값을 볼 수 있습니다. 정책이 런타임 활동을 대상으로 하는 경우 인수를 비롯한 정책을 위반하는 프로세스에 대한 자세한 정보와 해당 인수를 생성한 상위 프로세스를 볼 수 있습니다.
16.4.2. 배포 탭
세부 정보 패널의 배포 탭에는 위반이 적용되는 배포에 대한 세부 정보가 표시됩니다.
개요 섹션
배포 개요 섹션에는 다음 정보가 나열됩니다.
- Deployment ID: 배포의 영숫자 식별자입니다.
- Deployment name: 배포 이름입니다.
- 배포 유형: 배포 유형입니다.
- Cluster: 컨테이너가 배포된 클러스터의 이름입니다.
- namespace: 배포된 클러스터의 고유 식별자입니다.
- replicas: 복제된 배포 수입니다.
- created: 배포가 생성된 시간 및 날짜입니다.
- updated: 배포가 업데이트된 시간 및 날짜입니다.
- labels: 선택한 배포에 적용되는 라벨입니다.
- annotations: 선택한 배포에 적용되는 주석입니다.
- Service Account: 선택한 배포에 대한 서비스 계정의 이름입니다.
컨테이너 구성 섹션
컨테이너 구성 섹션에는 다음 정보가 나열됩니다.
containers: 각 컨테이너마다 다음 정보를 제공합니다.
- Image name: 선택한 배포에 대한 이미지의 이름입니다. 이미지에 대한 자세한 정보를 보려면 이름을 클릭합니다.
resources: 이 섹션에서는 다음 필드에 대한 정보를 제공합니다.
- CPU 요청(코어): 컨테이너에서 요청한 코어 수입니다.
- CPU 제한(코어): 컨테이너에서 요청할 수 있는 최대 코어 수입니다.
- 메모리 요청(MB): 컨테이너에서 요청한 메모리 크기입니다.
- 메모리 제한(MB): 컨테이너에서 요청할 수 있는 최대 메모리입니다.
- volumes: 컨테이너에 마운트된 볼륨(있는 경우).
secrets: 선택한 배포와 관련된 시크릿입니다. 각 시크릿에 다음 필드에 대한 정보를 제공합니다.
- name: 시크릿의 이름입니다.
- 컨테이너 경로: 보안이 저장되는 위치입니다.
- name: 서비스를 마운트할 위치의 이름입니다.
- Source: 데이터 소스 경로입니다.
- destination: 데이터가 저장되는 경로입니다.
- type: 볼륨의 유형입니다.
포트 구성 섹션
포트 구성 섹션에서는 다음 필드를 포함하여 배포의 포트에 대한 정보를 제공합니다.
ports: 배포에서 노출된 모든 포트 및 이 배포 및 포트가 있는 경우 이 배포 및 포트와 연결된 모든 Kubernetes 서비스. 각 포트에 대해 다음 필드가 나열됩니다.
- containerPort: 배포에서 표시하는 포트 번호입니다.
- 프로토콜: 포트에서 사용하는 TCP 또는 UDP와 같은 프로토콜입니다.
- exposure: 서비스의 노출 방법(예: 로드 밸런서 또는 노드 포트)
exposureInfo: 이 섹션에서는 다음 필드에 대한 정보를 제공합니다.
- level: 서비스가 내부적으로 또는 외부에서 포트를 노출하는지 나타냅니다.
- ServiceName: Kubernetes 서비스의 이름입니다.
- ServiceID: RHACS에 저장된 Kubernetes 서비스의 ID입니다.
- serviceClusterIp: 클러스터 내 의 다른 배포 또는 서비스에서 서비스에 연결하는 데 사용할 수 있는 IP 주소입니다. 외부 IP 주소가 아닙니다.
- servicePort: 서비스에서 사용하는 포트입니다.
- NodePort: 외부 트래픽이 노드에 들어오는 노드의 포트입니다.
- externalIPs: 클러스터 외부에서 서비스에 액세스하는 데 사용할 수 있는 IP 주소입니다(있는 경우). 이 필드는 내부 서비스에 사용할 수 없습니다.
보안 컨텍스트 섹션
보안 컨텍스트 섹션에는 컨테이너가 권한 있는 컨테이너로 실행되는지 여부가 나열됩니다.
privileged:
-
권한이 있는 경우
true
입니다. -
권한이 없는 경우
false
입니다.
-
권한이 있는 경우
네트워크 정책 섹션
네트워크 정책 섹션에는 위반이 포함된 네임스페이스의 네임스페이스 및 모든 네트워크 정책이 나열됩니다. 네트워크 정책 이름을 클릭하여 네트워크 정책의 전체 YAML 파일을 확인합니다.
16.4.3. 정책 탭
세부 정보 패널의 정책 탭에는 위반을 초래한 정책의 세부 정보가 표시됩니다.
정책 개요 섹션
정책 개요 섹션에는 다음 정보가 나열되어 있습니다.
- 심각도: 필요한 관심 정도에 대한 정책의 순위(심각, 높음, 중간 또는 낮음)입니다.
- categories: 정책의 정책 범주입니다. 정책 범주는 정책 범주 탭의 플랫폼 구성 → 정책 관리에 나열됩니다.
- type: 정책이 사용자 생성(사용자에 의해 생성된 정책) 또는 시스템 정책(기본적으로 RHACS에 빌드됨)인지 여부입니다.
- Description: 정책 경고에 대한 자세한 설명입니다.
- 이유: 정책 설정 및 중요한 이유에 대한 정보입니다.
- 지침: 위반을 처리하는 방법에 대한 제안
- MITRE ATT&CK: 이 정책에 적용되는 MITRE 전략 및 기술이 있는지 여부를 나타냅니다.
정책 동작
Policy behavior 섹션에는 다음과 같은 정보가 있습니다.
-
라이프사이클 단계: 정책이 속하는 라이프사이클 단계,
빌드
,배포
또는런타임
. 이벤트 소스: 이 필드는 라이프사이클 단계가
Runtime
인 경우에만 적용됩니다. 다음 중 하나일 수 있습니다.- Deployment: RHACS는 이벤트 소스에 프로세스 및 네트워크 활동, Pod 실행 및 Pod 포트 전달이 포함된 경우 정책 위반을 트리거합니다.
- 감사 로그: RHACS는 이벤트 소스가 Kubernetes 감사 로그 레코드와 일치하는 경우 정책 위반을 트리거합니다.
응답: 응답은 다음 중 하나일 수 있습니다.
- 정보 정책 위반은 위반 목록에 위반을 생성합니다.
- 정보 및 적용: 위반이 적용됩니다.
적용: 응답을 Inform으로 설정하고 강제 적용하는 경우 다음 단계에 설정된 시행 유형을 나열합니다.
- Build: RHACS는 이미지가 정책의 기준과 일치할 때 CI(Continuous Integration) 빌드에 실패합니다.
배포 단계의 경우 RHACS는 RHACS 승인 컨트롤러가 구성되어 실행되는 경우 정책 조건과 일치하는 배포의 생성 및 업데이트를 차단합니다.
- 승인 컨트롤러 적용이 있는 클러스터에서 Kubernetes 또는 OpenShift Container Platform API 서버는 호환되지 않는 모든 배포를 차단합니다. 다른 클러스터에서 RHACS는 비호환 배포를 편집하여 Pod가 예약되지 않도록 합니다.
- 기존 배포의 경우 정책 변경으로 인해 Kubernetes 이벤트가 발생하는 경우 다음 기준을 탐지할 때만 적용됩니다. 적용 단계에 대한 자세한 내용은 "배포 단계에 대한 보안 정책 적용"을 참조하십시오.
- Runtime: RHACS는 Pod의 이벤트가 정책 기준과 일치하면 모든 Pod를 삭제합니다.
정책 기준 섹션
Policy criteria 섹션에는 정책에 대한 정책 기준이 나열됩니다.
16.4.3.1. 배포 단계에 대한 보안 정책 적용
Red Hat Advanced Cluster Security for Kubernetes는 배포 정책에 대한 두 가지 유형의 보안 정책 시행을 지원합니다. 즉, RHACS 센서의 승인 컨트롤러 및 소프트 시행을 통한 하드 시행입니다. 승인 컨트롤러는 정책을 위반하는 배포의 생성 또는 업데이트를 차단합니다. 승인 컨트롤러가 비활성화되거나 사용할 수 없는 경우 Sensor는 정책을 위반하는 배포의 복제본을 0
으로 축소하여 시행을 수행할 수 있습니다.
정책 적용은 실행 중인 애플리케이션 또는 개발 프로세스에 영향을 미칠 수 있습니다. 시행 옵션을 활성화하기 전에 모든 이해 관계자에게 알리고 자동화된 적용 작업에 대응하는 방법을 계획하십시오.
16.4.3.1.1. 하드 적용
하드 적용은 RHACS 승인 컨트롤러에서 수행합니다. 승인 컨트롤러 적용이 있는 클러스터에서 Kubernetes 또는 OpenShift Container Platform API 서버는 호환되지 않는 모든 배포를 차단합니다. 승인 컨트롤러는 CREATE
및 UPDATE
작업을 차단합니다. 배포 시간 적용이 활성화된 정책을 충족하는 Pod 생성 또는 업데이트 요청이 실패합니다.
Kubernetes 승인 Webhook는 CREATE
,UPDATE
,DELETE
또는 CONNECT
작업만 지원합니다. RHACS 승인 컨트롤러는 CREATE
및 UPDATE
작업만 지원합니다. kubectl 패치
,kubectl set
, kubectl scale
과 같은 작업은 UPDATE 작업이 아닌 PATCH 작업입니다. PATCH 작업은 Kubernetes에서 지원되지 않으므로 RHACS는 PATCH 작업에 대한 적용을 수행할 수 없습니다.
차단 적용의 경우 RHACS의 클러스터에 대해 다음 설정을 활성화해야 합니다.
- 오브젝트 생성: 동적 구성 섹션의 이 토글은 승인 제어 서비스의 동작을 제어합니다. 이 작업이 작동하려면 정적 구성 섹션에서 오브젝트 생성 토글을 수신 대기하려면 Configure Admission Controller Webhook 가 있어야 합니다.
- 오브젝트 업데이트 적용: 동적 구성 섹션의 이 토글은 승인 제어 서비스의 동작을 제어합니다. 이 작업이 작동하려면 정적 구성 섹션의 오브젝트 업데이트 토글을 수신 대기하려면 Configure Admission Controller Webhook 가 있어야 합니다.
정적 구성 설정에서 설정을 변경하는 경우 해당 변경 사항을 적용하려면 보안 클러스터를 재배포해야 합니다.
16.4.3.1.2. 소프트 적용
소프트 적용은 RHACS 센서가 수행합니다. 이러한 적용으로 인해 작업이 시작되지 않습니다. 소프트 적용 기능을 사용하면 센서가 복제본을 0으로 스케일링하고 Pod가 예약되지 않습니다. 이 적용에서는 클러스터에서 준비되지 않은 배포를 사용할 수 있습니다.
소프트 적용이 구성되고 센서가 다운된 경우 RHACS는 적용을 수행할 수 없습니다.
16.4.3.1.3. 네임스페이스 제외
기본적으로 RHACS는 stackrox
,kube-system
, istio-system
네임스페이스와 같은 특정 관리 네임스페이스를 시행 차단에서 제외합니다. 그 이유는 RHACS가 제대로 작동하려면 이러한 네임스페이스의 일부 항목을 배포해야 하기 때문입니다.
16.4.3.1.4. 기존 배포에 적용
기존 배포의 경우 정책 변경으로 인해 Kubernetes 이벤트가 발생하는 경우 다음 기준을 탐지할 때만 적용됩니다. 정책을 변경하는 경우 정책 관리를 선택하고 Reassess all을 클릭하여 정책을 재평가해야 합니다. 이 작업은 들어오는 새 Kubernetes 이벤트가 있는지 여부에 관계없이 기존의 모든 배포에 배포 정책을 적용합니다. 정책을 위반하는 경우 RHACS는 적용을 수행합니다.
추가 리소스
16.4.4. 네트워크 정책 탭
네트워크 정책 섹션에는 네임스페이스와 연결된 네트워크 정책이 나열됩니다.
17장. 배포 컬렉션 생성 및 사용
RHACS의 컬렉션을 사용하여 일치하는 패턴을 사용하여 리소스 그룹을 정의하고 이름을 지정할 수 있습니다. 그런 다음 이러한 컬렉션을 사용하도록 시스템 프로세스를 구성할 수 있습니다.
현재 컬렉션은 다음 조건에서만 사용할 수 있습니다.
- 컬렉션은 배포에만 사용할 수 있습니다.
- 취약점 보고가 있는 컬렉션만 사용할 수 있습니다. 자세한 내용은 추가 리소스 섹션의 "적용성 보고"를 참조하십시오.
배포 컬렉션은 PostgreSQL 데이터베이스를 사용하는 경우에만 RHACS 고객이 사용할 수 있습니다.
참고기본적으로 RHACS 클라우드 서비스는 PostgreSQL 데이터베이스를 사용하며 RHACS 릴리스 4.0 이상을 설치할 때 기본적으로 사용됩니다. 3.74 이전 릴리스를 사용하는 RHACS 고객은 Red Hat의 도움을 받아 PostgreSQL 데이터베이스로 마이그레이션할 수 있습니다.
17.1. 사전 요구 사항
사용자 계정에는 컬렉션 기능을 사용하려면 다음과 같은 권한이 있어야 합니다.
-
WorkflowAdministration
: 컬렉션을 보고 컬렉션을 추가, 변경 또는 삭제하려면 쓰기 액세스 권한이 있어야 합니다. -
배포
: 구성된 규칙이 배포와 일치하는 방식을 이해하려면 읽기 액세스 또는 쓰기 액세스 권한이 필요합니다.
이러한 권한은 Admin
시스템 역할에 포함됩니다. 역할 및 권한에 대한 자세한 내용은 "추가 리소스"의 "RHACS에서 RBAC 관리"를 참조하십시오.
17.2. 배포 컬렉션 이해
배포 컬렉션은 PostgreSQL 데이터베이스를 사용하는 RHACS 사용자만 사용할 수 있습니다. 기본적으로 RHACS 클라우드 서비스는 PostgreSQL 데이터베이스를 사용하며 RHACS 릴리스 4.0 이상을 설치할 때 기본적으로 사용됩니다. 3.74 이전 릴리스를 사용하는 RHACS 고객은 Red Hat의 도움을 받아 PostgreSQL 데이터베이스로 마이그레이션할 수 있습니다.
RHACS 컬렉션은 사용자 정의 참조로 이름이 지정된 참조입니다. 선택 규칙을 사용하여 논리 그룹화를 정의합니다. 이러한 규칙은 배포, 네임스페이스 또는 클러스터 이름 또는 레이블과 일치할 수 있습니다. 정확한 일치 또는 정규식을 사용하여 규칙을 지정할 수 있습니다. 컬렉션은 런타임에 해결되며 컬렉션 정의 시 존재하지 않는 오브젝트를 참조할 수 있습니다. 컬렉션은 다른 컬렉션을 사용하여 복잡한 계층을 설명하여 구성할 수 있습니다.
컬렉션은 동적 인프라를 구성하는 방법을 설명하는 언어를 제공하므로 포함 및 제외 범위와 같은 RHACS 속성 복제 및 반복 편집이 필요하지 않습니다.
컬렉션을 사용하여 다음과 같은 시스템 배포 그룹을 식별할 수 있습니다.
- 특정 개발 팀이 소유한 인프라 영역
- 개발 또는 프로덕션 클러스터에서 실행할 때 다른 정책 예외가 필요한 애플리케이션
- 공통 배포 레이블로 정의된 여러 네임스페이스를 확장하는 분산 애플리케이션
- 전체 프로덕션 또는 테스트 환경
RHACS 포털을 사용하여 컬렉션을 생성하고 관리할 수 있습니다. 컬렉션 편집기를 사용하면 배포, 네임스페이스 및 클러스터 수준에서 선택 규칙을 적용할 수 있습니다. 정규식을 포함하여 단순하고 복잡한 규칙을 사용할 수 있습니다. 정규식의 경우 RE2 구문 이 지원됩니다. Perl 구문은 지원되지 않습니다.
다음 이미지에 표시된 대로 하나 이상의 배포, 네임스페이스 또는 클러스터를 선택하여 컬렉션을 정의할 수 있습니다. 이 이미지에는 이름 보고가 포함된 배포가 포함되어 있거나
이름에 db
가 포함된 컬렉션이 표시됩니다. 컬렉션에는 네임스페이스의 해당 이름과 kubernetes.io/metadata.name=medical
이라는 특정 레이블이 있고 production
이라는 클러스터에는 배포가 포함됩니다.

또한 컬렉션 편집기를 사용하면 다른 컬렉션을 연결하거나 중첩하여 복잡한 계층을 설명할 수 있습니다. 편집기는 구성된 규칙에 결과 일치 항목을 표시하여 적용 중인 규칙을 이해하는 데 도움이 되는 실시간 프리뷰 측면 패널을 제공합니다. 다음 이미지는 컬렉션 규칙 집합과 함께 "Sensitive User Data"라는 컬렉션의 결과(표시되지 않음)의 예를 제공합니다. "Sensitive User Data" 컬렉션에는 두 개의 연결된 컬렉션인 "Credit 카드 프로세서"와 "Medical records"가 있으며 각 컬렉션에는 자체 컬렉션 규칙이 있습니다. 측면 패널에 표시된 결과에는 세 가지 컬렉션에 대해 구성된 규칙과 일치하는 항목이 포함됩니다.

17.3. 배포 컬렉션에 액세스
컬렉션을 사용하려면 플랫폼 구성 → 컬렉션을 클릭합니다. 페이지에는 현재 구성된 컬렉션 목록이 표시됩니다. 다음 작업을 수행할 수 있습니다.
- 이름으로 검색 필드에 텍스트를 입력하여 컬렉션을 검색한 다음 → 를 누릅니다.
- 컬렉션을 읽기 전용 모드로 보려면 컬렉션 목록에서 컬렉션을 클릭합니다.
기존 컬렉션이 편집, 복제 또는 삭제할 경우
를 클릭합니다.
참고RHACS에서 적극적으로 사용되는 컬렉션을 삭제할 수 없습니다.
- 컬렉션 생성 을 클릭하여 새 배포 컬렉션을 생성합니다.
17.4. 배포 컬렉션 생성
컬렉션을 생성할 때 이름을 지정하고 컬렉션에 대한 규칙을 정의해야 합니다.
프로세스
- 컬렉션 페이지에서 컬렉션 생성 을 클릭합니다.
- 컬렉션의 이름 및 설명을 입력합니다.
컬렉션 규칙 섹션에서는 다음 작업 중 하나 이상을 수행해야 합니다.
- 컬렉션에 대한 규칙 정의: 자세한 내용은 "컬렉션 규칙 생성" 섹션을 참조하십시오.
- 기존 컬렉션을 컬렉션에 연결: 자세한 내용은 "연결된 컬렉션 추가" 섹션을 참조하십시오.
- 규칙 구성 또는 연결된 컬렉션을 선택한 결과는 컬렉션 결과 라이브 프리뷰 패널에서 사용할 수 있습니다. 결과 숨기기 를 클릭하여 디스플레이에서 이 패널을 제거합니다.
- 저장을 클릭합니다.
17.4.1. 컬렉션 규칙 생성
컬렉션을 생성할 때 하나 이상의 규칙을 구성하거나 생성 중인 새 컬렉션에 다른 컬렉션을 연결해야 합니다.
현재 컬렉션은 배포에만 사용할 수 있습니다.
컬렉션에 포함할 리소스를 선택하도록 규칙을 구성합니다. 프리뷰 패널을 사용하여 컬렉션 규칙 결과를 구성할 때 확인합니다. 규칙을 순서에 따라 구성할 수 있습니다.
프로세스
Deployments 섹션의 드롭다운 목록에서 다음 옵션 중 하나를 선택합니다.
- 배포가 지정되지 않음: 검색에서 배포 기준을 사용하지 않으려면 이 옵션을 선택합니다.
이름이 일치하는 배포: 이 옵션을 선택하여 이름으로 선택한 다음 다음 옵션 중 하나를 선택합니다.
- 정확한 값: 정확한 배포 이름을 입력합니다.
-
regex 값: 정규식을 사용하여 배포를 검색할 수 있습니다. 이 옵션은 정확한 배포 이름을 모르는 경우에 유용합니다. 정규식은 패턴을 정의하는 문자, 숫자 및 기호의 문자열입니다. RHACS는 이 패턴을 사용하여 문자 또는 문자 그룹과 일치하고 결과를 반환합니다. 정규식의 경우 RE2 구문 이 지원됩니다. Perl 구문은 지원되지 않습니다. 모든 배포를 선택하려면 이 옵션을 선택하고
.*
를 입력합니다. 자세한 내용 및 예제는 " 정규식 사용"을 참조하십시오.
-
정확히 일치하는 라벨이 있는 배포: 이 옵션을 선택하여 입력한 정확한 텍스트와 일치하는 라벨을 사용하여 배포를 선택합니다. 레이블은
key=value
형식의 유효한 Kubernetes 레이블이어야 합니다.
- 선택 사항: 포함을 위한 추가 기준과 일치하는 이름 또는 레이블이 있는 배포를 추가하려면 OR 를 클릭하고 다른 정확한 또는 정규식 값을 구성합니다.
17.4.1.1. 정규식 사용
RHACS는 배포를 포함하거나 제외하도록 컬렉션을 구성하는 경우를 포함하여 포털의 일부 영역에서 정규식을 사용합니다.
예를 들어 컬렉션을 구성할 때 정규식을 사용하여 배포를 검색할 수 있습니다. 이 옵션은 정확한 배포 이름을 모르는 경우에 유용합니다. 정규식은 패턴을 정의하는 문자, 숫자 및 기호의 문자열입니다. RHACS는 이 패턴을 사용하여 문자 또는 문자 그룹과 일치하고 결과를 반환합니다. 정규식의 경우 다음 지침을 참조하십시오.
- RE2 구문 이 지원됩니다.
- Perl 구문은 지원되지 않습니다.
- 정규식 구문을 테스트하는 것은 예를 들어 https://regex101.com/ 과 같은 사이트를 사용하는 데 유용합니다. Golang 을 플레이버로 선택합니다.
다음 예제에서는 프로덕션 클러스터에 이름에 prod
라는 단어가 포함된 이름 지정 규칙을 따르는 것으로 가정합니다.
프로덕션 클러스터 컬렉션을 생성하는 정규식 예
- 컬렉션 규칙에서 일치하는 이름이 있는 클러스터를 선택합니다.
드롭다운 목록에서 A regex 값을 선택하고 다음 텍스트를 입력합니다.
^prod.*
프로덕션 환경 외 클러스터 컬렉션을 생성하는 정규식 예
RE2 구문에서는 negative lookahead를 사용하여 일치시킬 수 없습니다. 즉, 요소가 없으면 정규 표현식을 일치시킬 수 없습니다. 이 문제를 해결하려면 prod
라는 단어가 클러스터 이름에 표시되지 않을 때 정규 표현식을 사용하여 일치시킬 수 있습니다. 즉, p
,r
,o
, d
가 순서대로 표시되지 않는 경우와 일치시킵니다.
- 컬렉션 규칙에서 일치하는 이름이 있는 클러스터를 선택합니다.
드롭다운 목록에서 A regex 값을 선택하고 다음 텍스트를 입력합니다.
^[^p]*(p([^r]|$|r([^o]|$|o([^d]|$))))*[^p]*$
클러스터, 네임스페이스 및 배포 계층 구조의 모든 엔터티와 일치하는 컬렉션을 생성하는 정규식 예
컬렉션 규칙에서 일치하는 이름이 있는 배포를 선택합니다.
-
드롭다운 목록에서 A regex 값을 선택하고
.*
를 입력합니다.
-
드롭다운 목록에서 A regex 값을 선택하고
일치하는 이름이 있는 네임스페이스 를 선택합니다.
-
드롭다운 목록에서 A regex 값을 선택하고
.*
를 입력합니다.
-
드롭다운 목록에서 A regex 값을 선택하고
일치하는 이름이 있는 클러스터를 선택합니다.
-
드롭다운 목록에서 A regex 값을 선택하고
.*
를 입력합니다.
-
드롭다운 목록에서 A regex 값을 선택하고
이름이 지정된 배포 및 데이터베이스 및 특정 라벨이 포함된 컬렉션을 생성하는 정규식 예
다음 예제에서는 의료 애플리케이션에 대한 컬렉션을 구성하는 단계를 제공합니다. 이 예제에서는 컬렉션에 보고
배포, patient-db
라는 데이터베이스, 그리고 key = kubernetes.io/metadata.name
및 value = medical
인 라벨이 있는 네임스페이스를 선택하려고 합니다. 이 예제에서는 다음 단계를 수행합니다.
- 컬렉션 규칙에서 일치하는 이름이 있는 배포를 선택합니다.
- 의 정확한 값을 클릭하고 reporting 를 입력합니다.
- 또는 을 클릭합니다.
의 정규 값을 클릭하고
.*-db
를 입력하여 환경에서db
로 끝나는 모든 배포를 선택합니다.regex value
옵션은 패턴 일치에 정규식을 사용합니다. 정규식의 경우 RE2 구문 이 지원됩니다. Perl 구문은 지원되지 않습니다. 오른쪽 패널에 포함되지 않으려는 데이터베이스가 표시될 수 있습니다. 추가 필터를 사용하여 해당 데이터베이스를 제외할 수 있습니다. 예를 들면 다음과 같습니다.-
정확히 일치하는 라벨이 있는 네임스페이스 를 클릭하고
kubernetes.io/metadata.name=
을 입력하여 의료 라벨이 레이블이 지정된 네임스페이스에만 배포만 포함하여 네임스페이스 라벨로 필터링합니다.medical
- 네임스페이스 이름을 알고 있는 경우 이름이 일치하는 네임스페이스를 클릭하고 이름을 입력합니다.
-
정확히 일치하는 라벨이 있는 네임스페이스 를 클릭하고
17.4.2. 연결된 컬렉션 추가
컬렉션을 그룹화하고 다른 컬렉션에 추가하는 것은 배포를 기반으로 작은 컬렉션을 만들려면 유용할 수 있습니다. 이러한 작은 컬렉션을 재사용하고 더 큰 계층적 컬렉션으로 결합할 수 있습니다. 생성 중인 컬렉션에 컬렉션을 추가하려면 다음을 수행합니다.
다음 작업 중 하나를 수행합니다.
- Filter by name 필드에 텍스트를 입력하고 → 를 눌러 일치하는 결과를 확인합니다.
- 사용 가능한 컬렉션 목록에서 컬렉션 이름을 클릭하여 컬렉션에 대한 정보(예: 컬렉션의 이름 및 해당 컬렉션과 일치하는 배포)를 확인합니다.
- 컬렉션 정보를 확인한 후 창을 닫고 연결된 컬렉션 페이지로 돌아갑니다.
+Attach 를 클릭합니다. 연결된 컬렉션 섹션에는 연결된 컬렉션이 나열됩니다.
참고연결된 컬렉션을 추가하면 연결된 컬렉션에는 구성된 선택 규칙에 따라 결과가 포함됩니다. 예를 들어 연결된 컬렉션에 부모 컬렉션에 사용된 규칙에 의해 필터링되는 리소스가 포함된 경우 연결된 컬렉션의 규칙으로 인해 해당 항목이 여전히 상위 컬렉션에 추가됩니다. 연결된 컬렉션은
OR
연산자를 사용하여 원래 컬렉션을 확장합니다.- 저장을 클릭합니다.
17.5. 컬렉션에 대한 액세스 범위 마이그레이션
rocksdb
에서 PostgreSQL으로의 RHACS의 데이터베이스 변경 사항은 릴리스 3.74부터 시작하여 기술 프리뷰로 제공되며 일반적으로 릴리스 4.0에서 사용할 수 있습니다. 데이터베이스가 rocksdb
에서 PostgreSQL으로 마이그레이션되면 취약점 보고에 사용되는 기존 액세스 범위가 컬렉션으로 마이그레이션됩니다. 취약점 관리 → 보고 및 보고서 정보 보기로 이동하여 마이그레이션으로 인해 기존 보고서에 대한 올바른 구성이 생성되었는지 확인할 수 있습니다.
마이그레이션 프로세스에서는 보고서 구성에 사용된 액세스 범위에 대한 컬렉션 오브젝트를 생성합니다. RHACS는 액세스 범위의 복잡성에 따라 단일 액세스 범위에 대해 두 개 이상의 컬렉션을 생성합니다. 지정된 액세스 범위에 대해 생성된 컬렉션에는 다음 유형이 포함됩니다.
임베디드 컬렉션: 원래 액세스 범위의 정확한 선택 논리를 모방하기 위해 RHACS는 일치하는 배포가 원래 액세스 범위와 동일한 클러스터 및 네임스페이스를 선택하는 컬렉션을 하나 이상 생성합니다. 컬렉션 이름은
숫자가 0부터 시작하는 범위에 대한 시스템 생성 포함 컬렉션
번호 형식입니다.참고이러한 포함된 컬렉션에는 연결된 컬렉션이 없습니다. 여기에는 클러스터 및 네임스페이스 선택 규칙이 있지만 원래 액세스 범위가 배포에서 필터링되지 않았기 때문에 배포 규칙이 없습니다.
-
액세스 범위에 대한 루트 컬렉션: 이 컬렉션은 보고서 구성에 추가됩니다. 컬렉션 이름은
범위가 시스템 생성 루트 컬렉션의 형식입니다
. 이 컬렉션은 규칙을 정의하지 않고 하나 이상의 포함된 컬렉션을 연결합니다. 이러한 포함된 컬렉션을 조합하면 원래 액세스 범위와 동일한 클러스터 및 네임스페이스가 선택됩니다.
클러스터 또는 네임스페이스 레이블 선택기를 정의하는 액세스 범위의 경우 RHACS는 키와 값 사이에 'IN' Operator가 있는 범위만 마이그레이션할 수 있습니다. RHACS 포털을 사용하여 생성된 라벨 선택기가 있는 액세스 범위는 기본적으로 'IN' Operator를 사용했습니다. 'NOT_IN', 'EXISTS' 및 'NOT_EXISTS' 연산자를 사용한 범위를 마이그레이션하는 것은 지원되지 않습니다. 액세스 범위에 대한 컬렉션을 생성할 수 없는 경우 마이그레이션 중에 로그 메시지가 생성됩니다. 로그 메시지의 형식은 다음과 같습니다.
Failed to create collections for scope _scope-name_: Unsupported operator NOT_IN in scope's label selectors. Only operator 'IN' is supported. The scope is attached to the following report configurations: [list of report configs]; Please manually create an equivalent collection and edit the listed report configurations to use this collection. Note that reports will not function correctly until a collection is attached.
취약점 관리 → 보고 에서 보고서를 클릭하여 보고서 정보 페이지를 볼 수도 있습니다. 이 페이지에는 보고서에 연결된 컬렉션이 필요한 경우 메시지가 포함되어 있습니다.
원래 액세스 범위는 마이그레이션 중에 제거되지 않습니다. 취약점 관리 보고서를 필터링하는 데만 액세스 범위를 생성한 경우 액세스 범위를 수동으로 제거할 수 있습니다.
17.6. API를 사용하여 컬렉션 관리
CollectionService
API 오브젝트를 사용하여 컬렉션을 구성할 수 있습니다. 예를 들어 CollectionService_DryRunCollection
을 사용하여 RHACS 포털의 라이브 프리뷰 패널에 해당하는 결과 목록을 반환할 수 있습니다. 자세한 내용은 RHACS 포털에서 도움말 → API 참조로 이동하십시오.
추가 리소스
18장. 검색 및 필터링
리소스를 즉시 찾는 기능은 클러스터를 보호하는 데 중요합니다. Red Hat Advanced Cluster Security for Kubernetes 검색 기능을 사용하여 관련 리소스를 더 빠르게 찾습니다. 예를 들어 새로 게시된 CVE에 노출되는 배포를 찾고 외부 네트워크 노출이 있는 모든 배포를 찾을 수 있습니다.
18.1. 검색 구문
검색 쿼리는 다음 두 부분으로 구성됩니다.
- 검색할 리소스 유형을 식별하는 속성입니다.
- 일치하는 리소스를 찾는 검색어입니다.
예를 들어 비자 프로세서 배포에서 모든 위반을 찾으려면 검색 쿼리는 Deployment:
입니다. 이 검색 쿼리에서 visa-processor
Deployment
는 특성이며 비자 프로세서는
검색 용어입니다.
검색어를 사용하려면 먼저 속성을 선택해야 합니다. 그러나 위험 보기 및 가시성 보기와 같은 일부 보기에서 Red Hat Advanced Cluster Security for Kubernetes는 입력한 검색어에 따라 관련 속성을 자동으로 적용합니다.
쿼리에 여러 특성을 사용할 수 있습니다. 둘 이상의 특성을 사용하는 경우 결과에 모든 특성과 일치하는 항목만 포함됩니다.
예
Namespace:frontend CVE:CVE-2018-11776
을 검색할 때frontend
네임스페이스에서 CVE-2018-11776을 위반하는 리소스만 반환합니다.각 속성에 둘 이상의 검색어를 사용할 수 있습니다. 두 개 이상의 검색어를 사용하는 경우 결과에는 검색 용어와 일치하는 모든 항목이 포함됩니다.
예
검색 쿼리
Namespace:
를 사용하는 경우 네임스페이스 프런트 엔드 또는frontend
backend백엔드
에서 일치하는 결과를 반환합니다.여러 속성 및 검색어 쌍을 결합할 수 있습니다.
예
검색 쿼리
Cluster:production Namespace:frontend CVE:CVE-2018-11776
은프로덕션
클러스터의frontend
네임스페이스에서 CVE-2018-11776을 위반하는 모든 리소스를 반환합니다.검색 용어는 단어의 일부일 수 있습니다. 이 경우 Kubernetes에 대한 Red Hat Advanced Cluster Security는 일치하는 모든 결과를 반환합니다.
예
Deployment:def
를 검색하는 경우 결과에def
로 시작하는 모든 배포가 포함됩니다.특정 용어를 명시적으로 검색하려면 따옴표 안의 검색 용어를 사용합니다.
예
Deployment:"
를 검색할 때 결과에 배포 조각만 포함됩니다.def
"검색어 앞에
r/
를 사용하여 정규식을 사용할 수도 있습니다.예
Namespace:r/st.*x
를 검색할 때 결과에 네임스페이스stackrox
및stix
의 일치 항목이 포함됩니다.결과에서 원하지 않는 검색어를 표시하려면
!
를 사용합니다.예
Namespace:!stackrox
를 검색하는 경우 결과에stackrox
네임스페이스를 제외한 모든 네임스페이스의 일치 항목이 포함됩니다.비교 연산자 > , < ,
=
예
CVSS:>=6
을 검색하는 경우 결과에 CVSS(Common Vulnerability Scoring System) 점수가 6 이상인 모든 취약점이 포함됩니다.
18.2. 검색 자동 완성
쿼리를 입력하면 Red Hat Advanced Cluster Security for Kubernetes가 속성 및 검색 조건에 대한 관련 제안 사항을 자동으로 표시합니다.
18.3. 글로벌 검색 사용
글로벌 검색을 사용하면 환경의 모든 리소스를 검색할 수 있습니다. 검색 쿼리에서 사용하는 리소스 유형에 따라 결과가 다음 범주로 그룹화됩니다.
- 모든 결과(모든 카테고리에서 일치하는 결과 나열)
- 클러스터
- 배포
- 이미지
- 네임스페이스
- 노드
- Policies
- 정책 카테고리 [1]
- 역할
- 역할 바인딩
- 보안
- Service accounts
- 사용자 및 그룹
- 위반
정책 카테고리 옵션은 다음을 사용하는 경우에만 사용할 수 있습니다.
- RHACS(Red Hat Advanced Cluster Security for Kubernetes)의 백엔드 데이터베이스로서의 PostgreSQL.
- Red Hat Advanced Cluster Security Cloud Service(RHACS 클라우드 서비스).
이러한 카테고리는 RHACS 포털 글로벌 검색 페이지의 표로 나열되며 범주 이름을 클릭하여 선택한 카테고리에 속하는 결과를 확인할 수 있습니다.
RHACS 포털에서 글로벌 검색을 수행하려면 검색을 선택합니다.
18.4. 로컬 페이지 필터링 사용
RHACS 포털의 모든 보기에서 로컬 페이지 필터링을 사용할 수 있습니다. 로컬 페이지 필터링은 글로벌 검색과 유사하게 작동하지만 관련 속성만 사용할 수 있습니다. 검색 표시줄을 선택하여 특정 뷰에 사용 가능한 모든 특성을 표시할 수 있습니다.
18.5. 일반적인 검색 쿼리
다음은 Red Hat Advanced Cluster Security for Kubernetes에서 실행할 수 있는 일반적인 검색 쿼리입니다.
특정 CVE의 영향을 받는 배포 찾기
쿼리 | 예 |
---|---|
|
|
실행 중인 권한 있는 배포 검색
쿼리 | 예 |
---|---|
|
|
외부 네트워크 노출이 있는 배포 검색
쿼리 | 예 |
---|---|
|
|
특정 프로세스를 실행 중인 배포 검색
쿼리 | 예 |
---|---|
|
|
심각하지만 수정 가능한 취약점이 있는 배포 찾기
쿼리 | 예 |
---|---|
|
|
환경 변수를 통해 노출된 암호를 사용하는 배포 찾기
쿼리 | 예 |
---|---|
|
|
특정 소프트웨어 구성 요소가 있는 실행 중인 배포 찾기
쿼리 | 예 |
---|---|
|
|
사용자 또는 그룹 검색
Kubernetes 라벨 및 선택기 와 주석 을 사용하여 배포에 메타데이터를 연결합니다. 그런 다음 적용된 주석 및 레이블을 기반으로 쿼리하여 개인 또는 그룹을 식별할 수 있습니다.
특정 배포를 소유한 사용자 찾기
쿼리 | 예 |
---|---|
deployment |
|
공개 레지스트리에서 이미지를 배포하는 사용자 찾기
쿼리 | 예 |
---|---|
|
|
기본 네임스페이스에 배포 중인 사용자 찾기
쿼리 | 예 |
---|---|
|
|
18.6. 검색 속성
다음은 Red Hat Advanced Cluster Security for Kubernetes에서 검색하고 필터링하는 동안 사용할 수 있는 검색 속성 목록입니다.
속성 | 설명 |
---|---|
기능 추가 | 컨테이너에 추가 Linux 기능을 제공합니다. 예를 들어 파일을 수정하거나 네트워크 작업을 수행할 수 있습니다. |
주석 | 오케스트레이터 오브젝트에 연결된 임의의 식별되지 않은 메타데이터입니다. |
CPU 코어 제한 | 리소스에서 사용할 수 있는 최대 코어 수입니다. |
CPU 코어 요청 | 지정된 리소스에 예약할 최소 코어 수입니다. |
CVE | 일반적인 취약점 및 노출은 특정 CVE 번호와 함께 사용합니다. |
CVSS | Common Vulnerability Scoring System, CVSS 점수 및 크거나 ( > ), < 미만( < ) 또는 ( = ) 기호와 함께 사용하십시오. |
카테고리 | 정책 카테고리에는 DevOps 모범 사례, 보안 모범 사례, 권한, 취약점 관리, 여러 사용자 지정 정책 범주가 포함됩니다. |
인증서 만료 | 인증서 만료 날짜. |
Cluster | Kubernetes 또는 OpenShift Container Platform 클러스터의 이름입니다. |
클러스터 ID | Kubernetes 또는 OpenShift Container Platform 클러스터의 고유 ID입니다. |
클러스터 역할 |
|
Component | 소프트웨어(daemond, docker), 오브젝트(이미지, 컨테이너, 서비스), 레지스트리(Docker 이미지용 리포지토리) |
구성 요소 수 | 이미지의 구성 요소 수입니다. |
구성 요소 버전 | 소프트웨어, 오브젝트 또는 레지스트리의 버전입니다. |
생성된 시간 | 보안 오브젝트가 생성된 시간 및 날짜입니다. |
Deployment | 배포 이름입니다. |
배포 유형 | 배포를 기반으로 하는 Kubernetes 컨트롤러 유형입니다. |
설명 | 배포에 대한 설명입니다. |
Dockerfile 지침 키워드 | 이미지의 Dockerfile 명령에 있는 키워드입니다. |
Dockerfile 명령 값 | 이미지의 Dockerfile 명령의 값입니다. |
드롭 기능 |
컨테이너에서 삭제된 Linux 기능. 예를 들어 |
적용 |
배포에 할당된 적용 유형. 예를 들어 |
환경 키 | 컨테이너 환경을 추가로 식별하고 구성하기 위한 메타데이터인 레이블 키-값 문자열의 주요 부분입니다. |
환경 값 | 컨테이너 환경을 추가로 식별하고 구성하기 위한 메타데이터인 레이블 키-값 문자열의 값 부분입니다. |
노출된 노드 포트 | 노출된 노드 포트의 포트 번호입니다. |
서비스 노출 | 노출된 서비스의 이름입니다. |
서비스 포트 노출 | 노출된 서비스의 포트 번호입니다. |
노출 수준 |
배포 포트의 노출 유형(예: |
외부 호스트 이름 | 배포를 위한 외부 포트 노출의 호스트 이름입니다. |
외부 IP | 배포를 위한 외부 포트 노출의 IP 주소입니다. |
수정 가능한 CVE 수 | 이미지의 수정 가능한 CVE 수입니다. |
수정자 | 이미지의 플래그가 지정된 취약점을 수정하는 패키지의 버전 문자열입니다. |
이미지 | 이미지 이름입니다. |
이미지 명령 | 이미지에 지정된 명령입니다. |
이미지 생성 시간 | 이미지가 생성된 시간 및 날짜입니다. |
이미지 Entrypoint | 이미지에 지정된 entrypoint 명령입니다. |
이미지 가져오기 시크릿 | 배포에 지정된 대로 이미지를 가져올 때 사용할 시크릿의 이름입니다. |
이미지 가져오기 시크릿 레지스트리 | 이미지 풀 시크릿의 레지스트리 이름입니다. |
이미지 레지스트리 | 이미지 레지스트리의 이름입니다. |
이미지 원격 이미지 | 원격으로 액세스할 수 있는 이미지를 나타냅니다. |
이미지 검사 시간 | 이미지를 마지막으로 스캔한 날짜와 시간입니다. |
이미지 태그 | 이미지의 식별자입니다. |
이미지 사용자 | 컨테이너 이미지가 실행될 때 사용하도록 구성된 사용자 또는 그룹의 이름입니다. |
이미지 볼륨 | 컨테이너 이미지에 구성된 볼륨의 이름입니다. |
비활성 배포 |
|
레이블 | 이미지, 컨테이너, 데몬, 볼륨, 네트워크 및 기타 리소스를 추가로 식별하고 구성하기 위한 메타데이터인 레이블 키-값 문자열의 주요 부분입니다. |
라이프사이클 단계 | 이 정책이 구성되거나 경고가 트리거된 라이프사이클 단계 유형입니다. |
최대 노출 수준 | 배포의 경우 지정된 모든 포트/서비스에 대한 최대 네트워크 노출 수준입니다. |
메모리 제한(MB) | 리소스에서 사용할 수 있는 최대 메모리 양입니다. |
메모리 요청(MB) | 지정된 리소스에 예약할 최소 메모리 양입니다. |
네임스페이스 | 네임스페이스의 이름입니다. |
네임스페이스 ID | 배포에 네임스페이스 오브젝트를 포함하는 의 고유 ID입니다. |
노드 | 노드 이름입니다. |
노드 ID | 노드의 고유 ID입니다. |
Pod 라벨 | 개별 Pod에 연결된 메타데이터를 식별하는 단일 조각입니다. |
정책 | 보안 정책의 이름입니다. |
포트 | 배포로 노출된 포트 번호입니다. |
포트 프로토콜 | 노출된 포트에서 사용하는 TCP 또는 UDP와 같은 IP 프로토콜. |
우선 순위 | 배포의 위험 우선 순위입니다. ( 위험 보기에서만 사용할 수 있습니다.) |
privileged |
|
프로세스 Ancestor | 배포에서 프로세스 표시기에 대한 상위 프로세스의 이름입니다. |
프로세스 인수 | 배포의 프로세스 표시기에 대한 명령 인수입니다. |
프로세스 이름 | 배포에서 프로세스 표시기에 대한 프로세스 이름입니다. |
프로세스 경로 | 배포에서 프로세스 표시기에 대한 컨테이너의 바이너리 경로입니다. |
프로세스 UID | 배포에서 프로세스 표시기의 UNIX 사용자 ID입니다. |
읽기 전용 루트 파일 시스템 |
|
Role | Kubernetes RBAC 역할의 이름입니다. |
역할 바인딩 | Kubernetes RBAC 역할 바인딩의 이름입니다. |
역할 ID | Kubernetes RBAC 역할 바인딩이 바인딩된 역할 ID입니다. |
Secret | 중요한 정보를 보유하는 시크릿 오브젝트의 이름입니다. |
시크릿 경로 | 파일 시스템의 시크릿 오브젝트 경로입니다. |
시크릿 유형 | 보안 유형(예: certificate 또는 RSA 공개 키) |
서비스 계정 | 서비스 계정 또는 배포의 서비스 계정 이름입니다. |
심각도 | 위반의 중요성의 수준: 심각, 높음, 중간, 낮음. |
제목 | Kubernetes RBAC의 제목 이름입니다. |
제목 종류 |
|
taint 효과 | 현재 노드에 적용되는 테인트의 유형입니다. |
테인트 키 | 현재 노드에 적용되는 테인트의 키입니다. |
taint 값 | 현재 노드에 적용되는 테인트에 허용되는 값입니다. |
허용 오차 키 | 배포에 적용되는 허용 오차의 키입니다. |
허용 오차 값 | 배포에 적용되는 허용 오차 값입니다. |
위반 | 정책에서 지정한 조건이 충족되지 않은 경우 Violations 페이지에 알림이 표시됩니다. |
위반 상태 | 이를 사용하여 해결된 위반을 검색합니다. |
위반 시간 | 위반이 처음 발생한 시간 및 날짜입니다. |
볼륨 대상 | 데이터 볼륨의 마운트 경로입니다. |
볼륨 이름 | 스토리지의 이름입니다. |
볼륨 읽기 전용 |
읽기 전용으로 마운트된 볼륨을 검색하려면 |
볼륨 소스 |
볼륨이 프로비저닝된 양식(예: |
볼륨 유형 | 볼륨 유형입니다. |
19장. 사용자 액세스 관리
19.1. Red Hat Advanced Cluster Security for Kubernetes에서 RBAC 관리
RHACS(Red Hat Advanced Cluster Security for Kubernetes)에는 역할을 구성하고 다양한 사용자를 위해 Red Hat Advanced Cluster Security에 대한 다양한 수준의 액세스 권한을 부여하는 데 사용할 수 있는 RBAC(역할 기반 액세스 제어)가 제공됩니다.
버전 3.63부터 RHACS에는 지정된 RHACS 사용자 또는 사용자 그룹이 액세스할 수 있는 리소스 및 수행할 수 있는 작업과 수행할 수 있는 작업을 정의하는 세분화되고 특정 권한 세트를 구성할 수 있는 범위가 지정된 액세스 제어 기능이 포함되어 있습니다.
역할은 권한 세트 및 액세스 범위 컬렉션입니다. 규칙을 지정하여 사용자 및 그룹에 역할을 할당할 수 있습니다. 인증 공급자를 구성할 때 이러한 규칙을 구성할 수 있습니다. Red Hat Advanced Cluster Security for Kubernetes에는 다음 두 가지 유형의 역할이 있습니다.
- Red Hat에서 생성하고 변경할 수 없는 시스템 역할.
사용자 지정 역할 - Kubernetes용 Red Hat Advanced Cluster Security는 언제든지 생성 및 변경할 수 있습니다.
참고- 사용자에게 여러 역할을 할당하면 할당된 역할의 결합된 권한에 액세스할 수 있습니다.
- 사용자 지정 역할에 할당된 사용자가 있고 해당 역할을 삭제하면 연결된 모든 사용자가 구성한 최소 액세스 역할로 전송합니다.
권한 세트는 지정된 리소스에서 역할이 수행할 수 있는 작업을 정의하는 권한 집합입니다. 리소스는 보기(
읽기
) 및 수정(쓰기
) 권한을 설정할 수 있는 Red Hat Advanced Cluster Security for Kubernetes의 기능입니다. Red Hat Advanced Cluster Security for Kubernetes에는 다음 두 가지 유형의 권한 세트가 있습니다.- Red Hat에서 생성하며 변경할 수 없는 시스템 권한 세트입니다.
- 사용자 지정 권한 세트 - Kubernetes용 Red Hat Advanced Cluster Security는 언제든지 생성 및 변경할 수 있습니다.
액세스 범위는 사용자가 액세스할 수 있는 Kubernetes 및 OpenShift Container Platform 리소스 집합입니다. 예를 들어 사용자가 지정된 프로젝트의 Pod에 대한 정보에만 액세스할 수 있는 액세스 범위를 정의할 수 있습니다. Red Hat Advanced Cluster Security for Kubernetes에는 다음 두 가지 유형의 액세스 범위가 있습니다.
- 시스템 액세스 범위(Red Hat에서 생성하며 변경할 수 없음).
- 사용자 지정 액세스 범위 - Kubernetes용 Red Hat Advanced Cluster Security는 언제든지 생성 및 변경할 수 있습니다.
19.1.1. 시스템 역할
RHACS(Red Hat Advanced Cluster Security for Kubernetes)에는 규칙을 생성할 때 사용자에게 적용할 수 있는 몇 가지 기본 시스템 역할이 포함되어 있습니다. 필요에 따라 사용자 지정 역할을 생성할 수도 있습니다.
시스템 역할 | 설명 |
---|---|
관리자 | 이 역할은 관리자를 대상으로 합니다. 이를 사용하여 모든 리소스에 대한 읽기 및 쓰기 액세스 권한을 제공합니다. |
Anances | 이 역할은 변경할 수 없지만 모든 것을 볼 수 있는 사용자를 대상으로 합니다. 이를 사용하여 모든 리소스에 대한 읽기 전용 액세스 권한을 제공합니다. |
지속적 통합 | 이 역할은 CI(지속적인 통합) 시스템을 대상으로 하며 배포 정책을 적용하는 데 필요한 권한 세트를 포함합니다. |
네트워크 그래프 뷰어 | 이 역할은 네트워크 그래프를 확인해야 하는 사용자를 대상으로 합니다. |
없음 | 이 역할에는 리소스에 대한 읽기 및 쓰기 액세스 권한이 없습니다. 이 역할을 모든 사용자의 최소 액세스 역할로 설정할 수 있습니다. |
센서 작성자 | RHACS는 이 역할을 사용하여 새 클러스터 설정을 자동화합니다. 보안 클러스터에서 센서를 생성하는 권한 세트가 포함되어 있습니다. |
취약점 관리 승인 | 이 역할을 사용하면 취약점 지연 또는 잘못된 긍정 요청을 승인할 수 있는 액세스 권한을 제공할 수 있습니다. |
Vulnerability Management Requester | 이 역할을 사용하면 취약점 지연 또는 잘못된 알림을 요청할 수 있는 액세스 권한을 제공할 수 있습니다. |
Vulnerability Report Creator | 이 역할을 사용하면 예약된 취약점 보고서에 대한 취약점 보고 구성을 생성하고 관리할 수 있습니다. |
19.1.1.1. 시스템 역할의 권한 세트 및 액세스 범위 보기
기본 시스템 역할에 대한 권한 세트 및 액세스 범위를 볼 수 있습니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 액세스 제어 로 이동합니다.
- 역할을 선택합니다.
- 역할 중 하나를 클릭하여 세부 정보를 확인합니다. 세부 정보 페이지에는 감지된 역할의 권한 세트 및 액세스 범위가 표시됩니다.
기본 시스템 역할에 대한 권한 세트 및 액세스 범위를 수정할 수 없습니다.
19.1.1.2. 사용자 정의 역할 생성
액세스 제어 보기에서 새 역할을 생성할 수 있습니다.
사전 요구 사항
-
사용자 지정 역할을 생성, 수정, 삭제하려면
Access
리소스에 대한 Admin 역할 또는 읽기 및 쓰기 권한이 있어야 합니다. - 역할을 생성하기 전에 사용자 지정 역할에 대한 권한 세트 및 액세스 범위를 생성해야 합니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 액세스 제어 로 이동합니다.
- 역할을 선택합니다.
- 역할 생성을 클릭합니다.
- 새 역할에 대한 이름 및 설명을 입력합니다.
- 역할에 대해 Permission set 을 선택합니다.
- 역할의 액세스 범위를 선택합니다.
- 저장을 클릭합니다.
추가 리소스
19.1.1.3. 사용자 또는 그룹에 역할 할당
RHACS 포털을 사용하여 사용자 또는 그룹에 역할을 할당할 수 있습니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 액세스 제어 로 이동합니다.
- 인증 공급자 목록에서 인증 공급자를 선택합니다.
- 최소 역할 및 규칙 편집을 클릭합니다.
- 규칙 섹션에서 새 규칙 추가 를 클릭합니다.
-
키 의 경우
userid
,name
,email
또는group
의 값 중 하나를 선택합니다. - 값 의 경우 선택한 키에 따라 사용자 ID, 이름, 이메일 주소 또는 그룹 값을 입력합니다.
- Role 드롭다운 메뉴를 클릭하고 할당할 역할을 선택합니다.
- 저장을 클릭합니다.
각 사용자 또는 그룹에 대해 이러한 지침을 반복하고 다른 역할을 할당할 수 있습니다.
19.1.2. 시스템 권한 세트
Red Hat Advanced Cluster Security for Kubernetes에는 역할에 적용할 수 있는 몇 가지 기본 시스템 권한 세트가 포함되어 있습니다. 필요에 따라 사용자 정의 권한 세트를 생성할 수도 있습니다.
권한 세트 | 설명 |
---|---|
관리자 | 모든 리소스에 대한 읽기 및 쓰기 액세스를 제공합니다. |
Anances | 모든 리소스에 대한 읽기 전용 액세스를 제공합니다. |
지속적 통합 | 이 권한 세트는 CI(종속 통합) 시스템을 대상으로 하며 배포 정책을 적용하는 데 필요한 권한을 포함합니다. |
네트워크 그래프 뷰어 | 네트워크 그래프를 볼 수 있는 최소 권한을 제공합니다. |
없음 | 모든 리소스에 대해 읽기 및 쓰기 권한이 허용되지 않습니다. |
센서 작성자 | 보안 클러스터에서 센서를 생성하는 데 필요한 리소스에 대한 권한을 제공합니다. |
19.1.2.1. 시스템 권한 세트에 대한 권한 보기
RHACS 포털에서 설정된 시스템 권한의 권한을 볼 수 있습니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 액세스 제어 로 이동합니다.
- 권한 세트를 선택합니다.
- 세부 정보를 보려면 권한 세트 중 하나를 클릭합니다. 세부 정보 페이지에는 리소스 목록과 선택한 권한 집합에 대한 권한이 표시됩니다.
시스템 권한 세트에 대한 권한을 수정할 수 없습니다.
19.1.2.2. 사용자 정의 권한 세트 생성
액세스 제어 보기에서 새 권한 세트를 만들 수 있습니다.
사전 요구 사항
-
권한 세트를 생성, 수정 및 삭제하려면
Access
리소스에 대한 Admin 역할 또는 읽기 및 쓰기 권한이 있어야 합니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 액세스 제어 로 이동합니다.
- 권한 세트를 선택합니다.
- Create permission set 을 클릭합니다.
- 새 권한 세트에 대한 이름 및 설명을 입력합니다.
각 리소스에 대해 액세스 수준 열에서 액세스 권한
없음, 읽기 액세스
또는
에서 권한 중 하나를 선택합니다.읽기 및 쓰기 액세스
주의사용자에 대한 권한 세트를 구성하는 경우 다음 리소스에 대한 읽기 전용 권한을 부여해야 합니다.
-
경고
-
Cluster
-
Deployment
-
이미지
-
NetworkPolicy
-
NetworkGraph
-
WorkflowAdministration
-
Secret
-
- 이러한 권한은 새 권한 세트를 생성할 때 미리 선택됩니다.
- 이러한 권한을 부여하지 않으면 사용자는 RHACS 포털에서 페이지를 보는 데 문제가 발생합니다.
- 저장을 클릭합니다.
19.1.3. 시스템 액세스 범위
Red Hat Advanced Cluster Security for Kubernetes에는 역할에 적용할 수 있는 몇 가지 기본 시스템 액세스 범위가 포함되어 있습니다. 필요에 따라 사용자 지정 액세스 범위를 생성할 수도 있습니다.
가속 범위 | 설명 |
---|---|
무제한 | Red Hat Advanced Cluster Security for Kubernetes가 모니터링하는 모든 클러스터 및 네임스페이스에 대한 액세스를 제공합니다. |
모두 거부 | Kubernetes 및 OpenShift Container Platform 리소스에 대한 액세스 권한이 없습니다. |
19.1.3.1. 시스템 액세스 범위에 대한 세부 정보 보기
RHACS 포털에서 액세스 범위에 허용되거나 허용되지 않는 Kubernetes 및 OpenShift Container Platform 리소스를 볼 수 있습니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 액세스 제어 로 이동합니다.
- 액세스 범위를 선택합니다.
- 액세스 범위 중 하나를 클릭하여 세부 정보를 확인합니다. 세부 정보 페이지에는 클러스터 및 네임스페이스 목록과 선택한 액세스 범위에 허용되는 항목이 표시됩니다.
시스템 액세스 범위에 대해 허용된 리소스를 수정할 수 없습니다.
19.1.3.2. 사용자 정의 액세스 범위 생성
액세스 제어 보기에서 새 액세스 범위를 만들 수 있습니다.
사전 요구 사항
-
권한 세트를 생성, 수정, 삭제하려면
Access
리소스에 대한 읽기 및 쓰기 권한이 설정된 관리자 역할 또는 역할이 있어야 합니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 액세스 제어 로 이동합니다.
- 액세스 범위를 선택합니다.
- 액세스 범위 생성을 클릭합니다.
- 새 액세스 범위에 대한 이름 및 설명을 입력합니다.
허용된 리소스 섹션에서 다음을 수행합니다.
- Cluster filter 및 Namespace filter 필드를 사용하여 목록에 표시된 클러스터 및 네임스페이스 목록을 필터링합니다.
- 클러스터 이름을 확장하여 해당 클러스터의 네임스페이스 목록을 확인합니다.
클러스터의 모든 네임스페이스에 액세스할 수 있도록 하려면 수동 선택 열에서 스위치를 전환합니다.
참고특정 클러스터에 대한 액세스 권한을 통해 사용자는 클러스터 범위 내에서 다음 리소스에 액세스할 수 있습니다.
- OpenShift Container Platform 또는 Kubernetes 클러스터 메타데이터 및 보안 정보
- 권한 있는 클러스터에 대한 규정 준수 정보
- 노드 메타데이터 및 보안 정보
- 해당 클러스터의 모든 네임스페이스 및 관련 보안 정보에 대한 액세스
네임스페이스에 대한 액세스를 허용하려면 네임스페이스의 수동 선택 열에서 스위치를 전환합니다.
참고특정 네임스페이스에 대한 액세스는 네임스페이스 범위 내에서 다음 정보에 액세스할 수 있습니다.
- 배포에 대한 경고 및 위반
- 이미지에 대한 취약점 데이터
- 배포 메타데이터 및 보안 정보
- 역할 및 사용자 정보
- 배포에 대한 네트워크 그래프, 정책 및 기준 정보
- 정보 및 프로세스 기준 구성 처리
- 각 배포에 대한 우선 순위가 지정된 위험 정보
- 라벨을 기반으로 클러스터 및 네임스페이스에 대한 액세스를 허용하려면 라벨 선택 규칙 섹션에서 라벨 선택기 추가 를 클릭합니다. 그런 다음 규칙 추가 를 클릭하여 라벨 선택기에 대한 키 및 값 쌍을 지정합니다. 클러스터 및 네임스페이스에 대한 라벨을 지정할 수 있습니다.
- 저장을 클릭합니다.
19.1.3.2.1. 스케일링 고려 사항
예를 들어, 수천 개의 네임스페이스가 있는 대규모 환경에서는 많은 수의 네임스페이스를 포함하는 사용자 범위로 인해 일부 페이지가 느리게 렌더링되거나 시간 초과될 수 있습니다. 예를 들어 기본 대시보드 페이지를 열 때 시간 초과가 발생할 수 있습니다.
성능은 하나의 테스트 클러스터에서 5,000개 네임스페이스와 80,000개의 경고에 20,000개의 배포가 있는 환경의 단일 클러스터 컨텍스트에서 테스트되었습니다. 이 테스트에서 해당 클러스터에 최대 2,000개의 네임스페이스를 포함하여 기본 대시보드 페이지의 로드 시간이 몇 초 미만이었습니다.
성능은 50만개의 네임 스페이스에 걸쳐 200,000개의 배포와 10개의 테스트 클러스터에 걸쳐 200,000개의 경고가 있는 환경의 다중 클러스터 컨텍스트에서 테스트되었습니다. 이 테스트에서 기본 대시보드 페이지의 로드 시간은 10개 클러스터의 최대 500개 네임스페이스와 단일 클러스터에서 최대 2,000개의 네임스페이스를 포함한 범위를 포함하여 몇 초 미만의 범위였습니다.
테스트된 수보다 많은 네임스페이스가 있는 사용자 범위에 대한 RHACS 포털 페이지의 로드 시간은 시간 초과 제한 아래에 유지될 수 없습니다.
19.1.4. 리소스 정의
Red Hat Advanced Cluster Security for Kubernetes에는 많은 리소스가 포함되어 있습니다. 다음 표에는 Red Hat Advanced Cluster Security for Kubernetes 리소스가 나열되어 있으며 사용자가 읽기
또는 쓰기
권한으로 수행할 수 있는 작업을 설명합니다.
-
권한 에스컬레이션을 방지하기 위해 새 토큰을 생성할 때 역할의 권한은 해당 토큰에 할당할 수 있는 권한을 제한합니다. 예를 들어 Integration 리소스에 대한
읽기
권한만 있는 경우쓰기
권한이 있는 토큰을 생성할 수 없습니다. - 다른 사용자가 사용할 토큰을 생성하는 사용자 지정 역할을 하려면 해당 사용자 지정 역할에 필요한 권한을 할당해야 합니다.
-
CI/CD 파이프라인, 스크립트 및 기타 자동화와 같은 머신 간 통신에 수명이 짧은 토큰을 사용합니다. 또한
roxctl
CLI 또는 API 액세스와 같은 human-to-machine 통신에roxctl central login
명령을 사용합니다. - 대부분의 클라우드 서비스 공급자는 OIDC ID 토큰(예: Microsoft Entra ID, Google Cloud Identity Platform 및 AWS Cognito)을 지원합니다. 이러한 서비스에서 발행한 OIDC ID 토큰은 RHACS 단기 액세스에 사용할 수 있습니다.
리소스 | 읽기 권한 | 쓰기 권한 |
---|---|---|
액세스 | 인증 공급자가 제공하는 메타데이터를 포함하여 Red Hat Advanced Cluster Security for Kubernetes 역할 및 사용자 메타데이터와 일치하는 SSO(Single Sign-On) 및 RBAC(역할 기반 액세스 제어) 규칙에 대한 구성을 확인합니다. | SSO 구성 및 구성된 RBAC 규칙을 생성, 수정 또는 삭제합니다. |
관리 | 다음 항목을 확인합니다.
| 다음 항목을 편집합니다.
|
경고 | 기존 정책 위반을 확인합니다. | 정책 위반을 해결하거나 편집합니다. |
CVE | 내부 사용 전용 | 내부 사용 전용 |
Cluster | 기존 보안 클러스터를 확인합니다. | 새 보안 클러스터를 추가하고 기존 클러스터를 수정하거나 삭제합니다. |
규정 준수 | 규정 준수 표준 및 결과, 최근 규정 준수 실행 및 관련 완료 상태를 확인합니다. | 규정 준수 실행을 트리거합니다. |
Deployment | 보안 클러스터에서 배포(워크로드)를 확인합니다. | 해당 없음 |
DeploymentExtension | 다음 항목을 확인합니다.
| 다음 항목을 수정합니다.
|
탐지 | 이미지 또는 배포 YAML에 대한 빌드 시간 정책을 확인합니다. | 해당 없음 |
이미지 | 이미지, 해당 구성 요소 및 해당 취약점을 확인합니다. | 해당 없음 |
Integration | 백업, 레지스트리, 이미지 서명, 알림 시스템, API 토큰을 포함한 통합 및 해당 구성을 확인합니다. | 통합 및 해당 구성과 API 토큰을 추가, 수정 및 삭제합니다. |
K8sRole | 보안 클러스터에서 Kubernetes RBAC의 역할을 확인합니다. | 해당 없음 |
K8sRoleBinding | 보안 클러스터에서 Kubernetes RBAC의 역할 바인딩을 확인합니다. | 해당 없음 |
K8sSubject | 보안 클러스터에서 Kubernetes RBAC의 사용자 및 그룹을 확인합니다. | 해당 없음 |
네임스페이스 | 보안 클러스터에서 기존 Kubernetes 네임스페이스를 확인합니다. | 해당 없음 |
NetworkGraph | 보안 클러스터에서 활성 및 허용된 네트워크 연결을 확인합니다. | 해당 없음 |
NetworkPolicy | 보안 클러스터에서 기존 네트워크 정책을 보고 변경 사항을 시뮬레이션합니다. | 보안 클러스터에서 네트워크 정책 변경 사항을 적용합니다. |
노드 | 보안 클러스터에서 기존 Kubernetes 노드를 확인합니다. | 해당 없음 |
WorkflowAdministration | 모든 리소스 컬렉션을 확인합니다. | 리소스 컬렉션을 추가, 수정 또는 삭제합니다. |
Role | 기존 Red Hat Advanced Cluster Security for Kubernetes RBAC 역할 및 해당 권한을 확인합니다. | 역할 및 해당 권한을 추가, 수정 또는 삭제합니다. |
Secret | 보안 클러스터의 보안에 대한 메타데이터를 확인합니다. | 해당 없음 |
ServiceAccount | 보안 클러스터에 Kubernetes 서비스 계정을 나열합니다. | 해당 없음 |
VulnerabilityManagementApprovals | 취약점에 대한 보류 중인 모든 deferral 또는 false positive 요청을 확인합니다. | 보류 중인 deferral 또는 false positive 요청을 승인하거나 거부하고 이전에 승인된 요청을 다시 관찰하도록 이동합니다. |
VulnerabilityManagementRequests | 취약점에 대한 보류 중인 모든 deferral 또는 false positive 요청을 확인합니다. | 취약점을 지연하거나 잘못된 것으로 표시하거나 동일한 사용자가 수행한 보류 중이거나 이전에 승인한 요청을 다시 관찰하도록 이동합니다. |
WatchedImage | 배포되지 않은 감시 및 모니터링된 이미지를 확인합니다. | 감시된 이미지를 구성합니다. |
WorkflowAdministration | 모든 리소스 컬렉션을 확인합니다. | 리소스 컬렉션을 생성, 수정 또는 삭제합니다. |
19.1.5. 인증 및 권한 부여 리소스에 대한 선언적 구성
인증 공급자, 역할, 권한 세트 및 액세스 범위와 같은 인증 및 권한 부여 리소스에 선언적 구성을 사용할 수 있습니다. 선언적 구성을 사용하는 방법에 대한 자세한 내용은 "추가 리소스" 섹션의 " 선언적 구성 사용"을 참조하십시오.
추가 리소스
19.2. PKI 인증 활성화
인증에 엔터프라이즈 인증 기관(CA)을 사용하는 경우 개인 인증서를 사용하여 사용자를 인증하도록 RHACS(Red Hat Advanced Cluster Security for Kubernetes)를 구성할 수 있습니다.
PKI 인증을 구성한 후 사용자 및 API 클라이언트는 개인 인증서를 사용하여 로그인할 수 있습니다. 인증서가 없는 사용자는 API 토큰, 로컬 관리자 암호 또는 기타 인증 공급자를 포함한 다른 인증 옵션을 계속 사용할 수 있습니다. PKI 인증은 웹 UI, gRPC 및 REST API와 동일한 포트 번호에서 사용할 수 있습니다.
기본적으로 PKI 인증을 구성할 때 Kubernetes용 Red Hat Advanced Cluster Security는 PKI, 웹 UI, gRPC, 기타 SSO(Single Sign-On) 공급자 및 REST API에 동일한 포트를 사용합니다. YAML 구성 파일을 사용하여 엔드포인트를 구성하고 노출하여 PKI 인증을 위해 별도의 포트를 구성할 수도 있습니다.
19.2.1. RHACS 포털을 사용하여 PKI 인증 구성
RHACS 포털을 사용하여 PKI(Public Key Infrastructure) 인증을 구성할 수 있습니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 액세스 제어 로 이동합니다.
- 인증 공급자 생성 을 클릭하고 드롭다운 목록에서 사용자 인증서 를 선택합니다.
- 이름 필드에서 이 인증 공급자의 이름을 지정합니다.
- CA 인증서(PEM) 필드에 root CA 인증서를 PEM 형식으로 붙여넣습니다.
PKI 인증을 사용하여 RHACS에 액세스하는 사용자에게 최소 액세스 역할을 할당합니다. 사용자에게 이 역할에 부여된 권한 또는 RHACS에 로그인하려면 더 높은 권한이 있는 역할이 있어야 합니다.
작은 정보보안을 위해 Red Hat은 설정을 완료하는 동안 먼저 최소 액세스 역할을 None 으로 설정하는 것이 좋습니다. 나중에 액세스 제어 페이지로 돌아가 ID 공급자의 사용자 메타데이터를 기반으로 보다 맞춤형 액세스 규칙을 설정할 수 있습니다.
RHACS에 액세스하는 사용자 및 그룹에 대한 액세스 규칙을 추가하려면 규칙 섹션에서 새 규칙 추가 를 클릭합니다. 예를 들어 관리자 역할을
administrator
라는 사용자에게 부여하려면 다음 키-값 쌍을 사용하여 액세스 규칙을 생성할 수 있습니다.키
현재의
이름
관리자
Role
관리자
- 저장을 클릭합니다.
19.2.2. roxctl
CLI를 사용하여 PKI 인증 구성
roxctl
CLI를 사용하여 PKI 인증을 구성할 수 있습니다.
프로세스
다음 명령을 실행합니다.
$ roxctl -e <hostname>:<port_number> central userpki create -c <ca_certificate_file> -r <default_role_name> <provider_name>
19.2.3. 인증 키 및 인증서 업데이트
RHACS 포털을 사용하여 인증 키 및 인증서를 업데이트할 수 있습니다.
프로세스
- 새 인증 공급자를 생성합니다.
- 이전 인증 공급자의 역할 매핑을 새 인증 공급자로 복사합니다.
- 이전 루트 CA 키를 사용하여 이전 인증 공급자의 이름을 변경하거나 삭제합니다.
19.2.4. 클라이언트 인증서를 사용하여 로그인
PKI 인증을 구성한 후 사용자는 RHACS 포털 로그인 페이지에 인증서 프롬프트가 표시됩니다. 구성된 루트 CA에서 신뢰하는 클라이언트 인증서가 사용자의 시스템에 설치된 경우에만 프롬프트가 표시됩니다.
이 섹션에 설명된 절차를 사용하여 클라이언트 인증서를 사용하여 로그인합니다.
프로세스
- RHACS 포털을 엽니다.
- 브라우저 프롬프트에서 인증서를 선택합니다.
- 로그인 페이지에서 인증 공급자 이름 옵션을 선택하여 인증서로 로그인합니다. 인증서를 사용하여 로그인하지 않으려면 관리자 암호 또는 다른 로그인 방법을 사용하여 로그인할 수도 있습니다.
클라이언트 인증서를 사용하여 RHACS 포털에 로그인하면 브라우저를 다시 시작하지 않는 한 다른 인증서로 로그인할 수 없습니다.
19.3. 인증 공급자 이해
인증 공급자는 사용자 ID(예: ID 공급자 또는 IDP)의 타사 소스에 연결하고, 사용자 ID를 가져오고, 해당 ID를 기반으로 토큰을 발행하며, 토큰을 RHACS(Red Hat Advanced Cluster Security for Kubernetes)로 반환합니다. 이 토큰을 사용하면 RHACS가 사용자에게 권한을 부여할 수 있습니다. RHACS는 사용자 인터페이스 및 API 호출 내에서 토큰을 사용합니다.
RHACS를 설치한 후 사용자에게 권한을 부여하려면 IDP를 설정해야 합니다.
OpenID Connect(OIDC)를 IDP로 사용하는 경우 RHACS는 사용자 ID 토큰 또는 UserInfo
끝점 응답에서 그룹
,이메일
,사용자
ID 및 이름과
같은 특정 클레임의 값을 검사하는 매핑 규칙에 의존합니다. 이러한 세부 정보가 없으면 매핑이 성공할 수 없으며 사용자가 필요한 리소스에 액세스할 수 없습니다. 따라서 IDP에서 사용자를 인증하는 데 필요한 클레임(예: 그룹
)이 IDP의 인증 응답에 포함되어 성공적으로 매핑할 수 있도록 해야 합니다.
추가 리소스
19.3.1. 클레임 매핑
클레임은 ID 공급자가 발급한 토큰 내부의 사용자에 대해 포함하는 데이터입니다.
클레임 매핑을 사용하여 RHACS가 IDP에서 수신한 클레임 속성을 RHACS 발급 토큰의 다른 속성으로 사용자 지정해야 하는지 여부를 지정할 수 있습니다. 클레임 매핑을 사용하지 않는 경우 RHACS는 RHACS 발급 토큰에 claim 속성을 포함하지 않습니다.
예를 들어, 사용자 ID의 역할에서
클레임 매핑을 사용하여 RHACS 발행 토큰의 그룹에
매핑할 수 있습니다.
RHACS는 모든 인증 공급자에 대해 다른 기본 클레임 매핑을 사용합니다.
19.3.1.1. OIDC 기본 클레임 매핑
다음 목록은 기본 OIDC 클레임 매핑을 제공합니다.
-
userid
로하위
-
이름
-
이메일
주소 -
그룹에
대한그룹
19.3.1.2. Auth0 기본 클레임 매핑
Auth0
기본 클레임 매핑은 OIDC 기본 클레임 매핑과 동일합니다.
19.3.1.3. SAML 2.0 기본 클레임 매핑
다음 목록은 SAML 2.0 기본 클레임 매핑에 적용됩니다.
-
subject.NameID
가userid
에 매핑됨 -
응답의 모든 SAML
AttributeStatement.Attribute
는 해당 이름에 매핑됩니다.
19.3.1.4. Google IAP 기본 클레임 매핑
다음 목록은 Google IAP 기본 클레임 매핑을 제공합니다.
-
userid
로하위
-
이메일
주소 -
hd
hd로hd
-
google.access_levels
toaccess_levels
19.3.1.5. 사용자 인증서 기본 클레임 매핑
사용자 인증서는 타사 IDP와 통신하는 대신 사용자가 사용하는 인증서에서 사용자 정보를 가져오기 때문에 다른 모든 인증 공급자와 다릅니다.
사용자 인증서에 대한 기본 클레임 매핑은 다음과 같습니다.
-
userid
에CertFingerprint
-
제목 → 일반 이름
-
이메일 주소
-
제목 → 조직 단위
그룹
19.3.1.6. OpenShift Auth 기본 클레임 매핑
다음 목록은 OpenShift Auth 기본 클레임 매핑을 제공합니다.
-
그룹에
대한그룹
-
UID
touserid
-
이름
19.3.2. 규칙
사용자에게 권한을 부여하기 위해 RHACS는 사용자 ID의 그룹
,이메일
,사용자
ID와 같은 특정 클레임의 값을 검사하는 매핑 규칙에 의존합니다. 규칙을 사용하면 특정 값이 있는 속성이 있는 사용자를 특정 역할에 매핑할 수 있습니다. 예를 들어 규칙에는 다음이 포함될 수 있습니다.'key'는
email
,value
는 john@redhat.com
이며,역할은
Admin
입니다.
클레임이 누락된 경우 매핑이 성공할 수 없으며 사용자가 필요한 리소스에 액세스할 수 없습니다. 따라서 성공적인 매핑을 활성화하려면 IDP의 인증 응답에 사용자에게 권한을 부여하는 데 필요한 클레임(예: 그룹
)이 포함되어 있는지 확인해야 합니다.
19.3.3. 최소 액세스 역할
RHACS는 특정 인증 공급자가 발행한 RHACS 토큰이 있는 모든 호출자에 최소 액세스 역할을 할당합니다. 최소 액세스 역할은 기본적으로 None
으로 설정됩니다.
예를 들어 Analyst
의 최소 액세스 역할의 인증 공급자가 있다고 가정합니다. 이 경우 이 공급자를 사용하여 로그인하는 모든 사용자에게 Analyst
역할이 할당됩니다.
19.3.4. 필수 속성
필수 속성은 사용자 ID에 특정 값이 있는 속성이 있는지 여부에 따라 RHACS 토큰의 발행을 제한할 수 있습니다.
예를 들어 key is_internal
속성의 속성 값이 true
인 경우에만 토큰을 발행하도록 RHACS를 구성할 수 있습니다. 속성 is_internal
이 false
로 설정되거나 설정되지 않은 사용자는 토큰을 가져오지 않습니다.
19.4. ID 공급자 구성
19.4.1. Okta Identity Cloud를 SAML 2.0 ID 공급자로 구성
Okta를 RHACS(Red Hat Advanced Cluster Security for Kubernetes)의 SSO(Single Sign-On) 공급자로 사용할 수 있습니다.
19.4.1.1. Okta 앱 생성
Okta를 Red Hat Advanced Cluster Security for Kubernetes의 SAML 2.0 ID 공급자로 사용하려면 Okta 앱을 생성해야 합니다.
Okta의 개발자 콘솔은 사용자 지정 SAML 2.0 애플리케이션 생성을 지원하지 않습니다. 개발자 콘솔 을 사용하는 경우 먼저 관리 콘솔(Classic UI)으로 전환해야 합니다. 전환하려면 페이지 왼쪽 상단에 있는 개발자 콘솔 을 클릭하고 Classic UI 를 선택합니다.
사전 요구 사항
- Okta 포털에 대한 관리 권한이 있는 계정이 있어야 합니다.
프로세스
- Okta 포털의 메뉴 모음에서 애플리케이션을 선택합니다.
- 애플리케이션 추가 를 클릭한 다음 새 앱 만들기 를 선택합니다.
- 새 애플리케이션 통합 생성 대화 상자에서 웹 을 플랫폼으로 두고 SAML 2.0 을 사용자가 로그인하려는 프로토콜로 선택합니다.
- 생성을 클릭합니다.
- 일반 설정 페이지에서 앱 이름 필드에 앱의 이름을 입력합니다.
- 다음을 클릭합니다.
SAML 설정 페이지에서 다음 필드에 대한 값을 설정합니다.
SSO(Single Sign on URL)
-
https://<RHACS_portal_hostname>/sso/providers/saml/acs
로 지정합니다. - Recipient URL 및 Destination URL 옵션에 이 사용을 선택된 상태로 둡니다.
- 다른 URL에서 RHACS 포털에 액세스할 수 있는 경우 Allow this app to request other SSO URLs 옵션을 선택하고 지정된 형식을 사용하여 대체 URL을 추가하여 여기에 추가할 수 있습니다.
-
대상 URI(SP 엔터티 ID)
- 값을 RHACS 또는 선택한 다른 값으로 설정합니다.
- 선택한 값을 기억합니다. Kubernetes용 Red Hat Advanced Cluster Security를 구성할 때 이 값이 필요합니다.
특성 정책
- 하나 이상의 attribute 문을 추가해야 합니다.
이메일 속성을 사용하는 것이 좋습니다.
- 이름: email
- 형식: 지정되지 않음
- 값: user.email
- 계속하기 전에 하나 이상의 속성 정책을 구성했는지 확인합니다.
- 다음을 클릭합니다.
- 피드백 페이지에서 사용자에게 적용되는 옵션을 선택합니다.
- 적절한 앱 유형을 선택합니다.
- 완료를 클릭합니다.
구성이 완료되면 새 앱의 Sign On 설정 페이지로 리디렉션됩니다. 노란색 상자에는 Red Hat Advanced Cluster Security for Kubernetes를 구성하는 데 필요한 정보에 대한 링크가 포함되어 있습니다.
앱을 생성한 후 Okta 사용자를 이 애플리케이션에 할당합니다. Assignments (할당) 탭으로 이동하여 Red Hat Advanced Cluster Security for Kubernetes에 액세스할 수 있는 개별 사용자 또는 그룹 집합을 할당합니다. 예를 들어 조직의 모든 사용자가 Red Hat Advanced Cluster Security for Kubernetes에 액세스할 수 있도록 Everyone 그룹을 할당합니다.
19.4.1.2. SAML 2.0 ID 공급자 구성
이 섹션의 지침을 사용하여 SAML(Security Assertion Markup Language) 2.0 ID 공급자를 RHCS(Red Hat Advanced Cluster Security for Kubernetes)와 통합하십시오.
사전 요구 사항
- RHACS에서 ID 공급자를 구성할 수 있는 권한이 있어야 합니다.
- Okta ID 공급자의 경우 RHACS용으로 구성된 Okta 앱이 있어야 합니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 액세스 제어 로 이동합니다.
- 인증 공급자 생성 을 클릭하고 드롭다운 목록에서 SAML 2.0 을 선택합니다.
- 이름 필드에 이 인증 공급자를 식별할 이름을 입력합니다(예: Okta 또는 Google ). 사용자가 올바른 로그인 옵션을 선택할 수 있도록 통합 이름이 로그인 페이지에 표시됩니다.
-
ServiceProvider 발행자 필드에 Okta의
Audience URI
또는SP Entity ID
로 사용하는 값 또는 다른 공급자의 유사한 값을 입력합니다. 구성 유형을 선택합니다.
- 옵션 1: 동적 구성: 이 옵션을 선택하는 경우 IdP 메타데이터 URL 또는 ID 공급자 콘솔에서 사용할 수 있는 ID 공급자 메타데이터 의 URL을 입력합니다. 구성 값은 URL에서 가져옵니다.
옵션 2: 정적 구성: Okta 콘솔의 View Setup instructions 링크 또는 다른 공급자의 유사한 위치에서 필요한 정적 필드를 복사합니다.
- IdP Issuer
- IdP SSO URL
- 이름/ID 형식
- IDP 인증서(PEM)
SAML을 사용하여 RHACS에 액세스하는 사용자에게 최소 액세스 역할을 할당합니다.
작은 정보설정을 완료하는 동안 최소 액세스 권한을 Admin 으로 설정합니다. 나중에 액세스 제어 페이지로 돌아가 ID 공급자의 사용자 메타데이터를 기반으로 보다 맞춤형 액세스 규칙을 설정할 수 있습니다.
- 저장을 클릭합니다.
SAML ID 공급자의 인증 응답이 다음 기준을 충족하는 경우:
-
NotValidAfter
어설션이 포함됩니다. 사용자 세션은NotValidAfter
필드에 지정된 시간이 경과할 때까지 유효합니다. 사용자 세션이 만료된 후 사용자는 다시 인증해야 합니다. -
NotValidAfter
어설션은 포함되지 않습니다. 사용자 세션은 30일 동안 유효하며 사용자는 다시 인증해야 합니다.
검증
- RHACS 포털에서 플랫폼 구성 → 액세스 제어 로 이동합니다.
- Auth Providers 탭을 선택합니다.
- 구성을 확인할 인증 공급자를 클릭합니다.
- Auth Provider 섹션 헤더에서 로그인 테스트를 선택합니다. 테스트 로그인 페이지가 새 브라우저 탭에서 열립니다.
인증 정보로 로그인합니다.
-
성공적으로 로그인하면 RHACS에서 시스템에 로그인하는 데 사용한 인증 정보에 대해
ID 공급자가 보낸
표시합니다.사용자 ID
및 사용자 속성을 - 로그인 시도가 실패하면 RHACS에 ID 공급자의 응답을 처리할 수 없는 이유를 설명하는 메시지가 표시됩니다.
-
성공적으로 로그인하면 RHACS에서 시스템에 로그인하는 데 사용한 인증 정보에 대해
Test login browser 탭을 닫습니다.
참고응답이 성공적인 인증을 나타내는 경우에도 ID 공급자의 사용자 메타데이터를 기반으로 추가 액세스 규칙을 생성해야 할 수 있습니다.
19.4.2. Google Workspace를 OIDC ID 공급자로 구성
Red Hat Advanced Cluster Security for Kubernetes의 SSO(Single Sign-On) 공급자로 Google Workspace 를 사용할 수 있습니다.
19.4.2.1. GCP 프로젝트에 대한 OAuth 2.0 인증 정보 설정
Google Workspace를 Red Hat Advanced Cluster Security for Kubernetes의 ID 공급자로 구성하려면 먼저 GCP 프로젝트에 대한 OAuth 2.0 인증 정보를 구성해야 합니다.
사전 요구 사항
- 새 프로젝트를 생성하려면 조직의 Google Workspace 계정에 대한 관리자 수준 액세스 권한이 있거나 기존 프로젝트에 대한 OAuth 2.0 인증 정보를 생성하고 구성할 수 있는 권한이 있어야 합니다. Red Hat Advanced Cluster Security for Kubernetes에 대한 액세스를 관리하기 위해 새 프로젝트를 생성하는 것이 좋습니다.
프로세스
- 새 GCP(Google Cloud Platform) 프로젝트를 생성합니다. 프로젝트를 생성하고 관리하는 Google 설명서 주제를 참조하십시오.
- 프로젝트를 생성한 후 Google API 콘솔에서 인증 정보 페이지를 엽니다.
- 로고 옆에 있는 왼쪽 상단에 나열된 프로젝트 이름을 확인하여 올바른 프로젝트를 사용하고 있는지 확인합니다.
- 새 인증 정보를 생성하려면 인증 정보 생성 → OAuth 클라이언트 ID 로 이동합니다.
- 애플리케이션 유형으로 웹 애플리케이션을 선택합니다.
- 이름 상자에 애플리케이션의 이름을 입력합니다(예: RHACS ).
인증 리디렉션 URI 상자에
https://<stackrox_hostname>:<port_number>/sso/providers/oidc/callback
을 입력합니다.-
&
lt;stackrox_hostname
>을 중앙 인스턴스를 노출하는 호스트 이름으로 바꿉니다. -
&
lt;port_number&
gt;를 중앙을 노출하는 포트 번호로 바꿉니다. 표준 HTTPS 포트443
을 사용하는 경우 포트 번호를 생략할 수 있습니다.
-
&
- 생성을 클릭합니다. 그러면 애플리케이션 및 인증 정보가 생성되고 인증 정보 페이지로 다시 리디렉션됩니다.
- 새로 생성된 애플리케이션에 대한 세부 정보가 표시되는 정보 상자가 열립니다. 정보 상자를 닫습니다.
-
.apps.googleusercontent.com
으로 끝나는 클라이언트 ID 를 복사하고 저장합니다. Google API 콘솔을 사용하여 이 클라이언트 ID를 확인할 수 있습니다. 왼쪽의 탐색 메뉴에서 OAuth 동의 화면을 선택합니다.
참고OAuth 동의 화면 구성은 전체 GCP 프로젝트에 유효하며 이전 단계에서 생성한 애플리케이션에만 유효합니다. 이 프로젝트에 OAuth 승인 화면이 이미 구성되어 있고 Red Hat Advanced Cluster Security for Kubernetes 로그인에 대해 다른 설정을 적용하려면 새 GCP 프로젝트를 생성합니다.
OAuth 동의 화면 페이지에서 다음을 수행합니다.
- 애플리케이션 유형을 Internal 로 선택합니다. 공개를 선택하면 Google 계정이 있는 모든 사용자가 로그인할 수 있습니다.
- 설명이 포함된 애플리케이션 이름을 입력합니다. 이 이름은 로그인할 때 동의 화면에 있는 사용자에게 표시됩니다. 예를 들어 Kubernetes용 Red Hat Advanced Cluster Security에는 RHACS 또는 <organization_name> SSO 를 사용합니다.
- Google API의 범위가 이메일,프로필 및 openid 범위만 나열되는지 확인합니다. 이러한 범위만 Single Sign-On에 필요합니다. 추가 범위를 부여하면 중요한 데이터를 노출할 위험이 증가합니다.
19.4.2.2. 클라이언트 시크릿 지정
Red Hat Advanced Cluster Security for Kubernetes 버전 3.0.39 이상에서는 클라이언트 시크릿을 지정할 때 OAuth 2.0 인증 코드 권한 부여 인증 흐름을 지원합니다. 이 인증 흐름을 사용하는 경우 Red Hat Advanced Cluster Security for Kubernetes는 새로 고침 토큰을 사용하여 사용자가 OIDC ID 공급자에 구성된 토큰 만료 시간 이상으로 로그인할 수 있도록 합니다.
사용자가 로그아웃하면 Kubernetes용 Red Hat Advanced Cluster Security가 클라이언트 측에서 새로 고침 토큰을 삭제합니다. 또한 ID 공급자 API에서 새로 고침 토큰 해지를 지원하는 경우 Red Hat Advanced Cluster Security for Kubernetes도 ID 공급자에게 새로 고침 토큰을 취소하도록 요청을 보냅니다.
OIDC ID 공급자와 통합하도록 Red Hat Advanced Cluster Security for Kubernetes를 구성할 때 클라이언트 시크릿을 지정할 수 있습니다.
- Fragment 콜백 모드에서 는 클라이언트 시크릿 을 사용할 수 없습니다.
- 기존 인증 공급자에 대한 구성은 편집할 수 없습니다.
- 클라이언트 시크릿 을 사용하려면 Red Hat Advanced Cluster Security for Kubernetes에서 새로운 OIDC 통합을 생성해야 합니다.
Red Hat Advanced Cluster Security for Kubernetes를 OIDC ID 공급자와 연결할 때 클라이언트 시크릿을 사용하는 것이 좋습니다. 클라이언트 시크릿을 사용하지 않으려면 Do not use Client Secret (not recommended) 옵션을 선택해야 합니다.
19.4.2.3. OIDC ID 공급자 구성
OIDC(OpenID Connect) ID 공급자를 사용하도록 RHACS(Red Hat Advanced Cluster Security for Kubernetes)를 구성할 수 있습니다.
사전 요구 사항
- Google Workspace와 같은 ID 공급자에 애플리케이션을 이미 구성해야 합니다.
- RHACS에서 ID 공급자를 구성할 수 있는 권한이 있어야 합니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 액세스 제어 로 이동합니다.
- 인증 공급자 생성 을 클릭하고 드롭다운 목록에서 OpenID Connect 를 선택합니다.
다음 필드에 정보를 입력합니다.
- 이름: 인증 공급자를 식별하는 이름입니다(예: Google Workspace ). 사용자가 올바른 로그인 옵션을 선택할 수 있도록 통합 이름이 로그인 페이지에 표시됩니다.
콜백 모드: ID 공급자에 다른 모드가 필요하지 않는 한 기본값인 자동 선택(권장)을 선택합니다.
참고조각
모드에서는 SPAs(Single Page Applications)의 제한 사항을 중심으로 설계되었습니다. Red Hat은 초기 통합을 위해Fragment
모드만 지원하며 이후의 통합에는 사용하지 않는 것이 좋습니다.issuer: ID 공급자의 루트 URL입니다(예: Google Workspace의 경우 https://accounts.google.com).
자세한 내용은 ID 공급자 설명서를 참조하십시오.
참고RHACS 버전 3.0.49 이상을 사용하는 경우 발급 자의 경우 다음 작업을 수행할 수 있습니다.
-
루트 URL 앞에
https+insecure://
를 접두사로 지정하여 TLS 검증을 건너뜁니다. 이 구성은 안전하지 않으며 Red Hat은 권장되지 않습니다. 테스트 목적으로만 사용하십시오. -
쿼리 문자열을 지정합니다. 예를 들면 root URL과 함께
?key1=value1&key2=value2입니다
. RHACS는 Issuer 값을 권한 부여 끝점에 입력한 대로 추가합니다. 이를 사용하여 공급자의 로그인 화면을 사용자 지정할 수 있습니다. 예를 들어hd
매개변수를 사용하여 특정 호스팅 도메인에 대한 Google Workspace 로그인 화면을 최적화하거나pfidpadapterid
매개변수를 사용하여PingFederate
에서 인증 방법을 사전 선택할 수 있습니다.
-
루트 URL 앞에
- Client ID: 구성된 프로젝트의 OIDC 클라이언트 ID입니다.
- 클라이언트 시크릿: ID 공급자(IdP)에서 제공하는 클라이언트 시크릿을 입력합니다. 권장되지 않는 클라이언트 시크릿을 사용하지 않는 경우 Do not use Client Secret 을 선택합니다.
선택한 ID 공급자를 사용하여 RHACS에 액세스하는 사용자에게 최소 액세스 역할을 할당합니다.
작은 정보설정을 완료하는 동안 최소 액세스 권한을 Admin 으로 설정합니다. 나중에 액세스 제어 페이지로 돌아가 ID 공급자의 사용자 메타데이터를 기반으로 보다 맞춤형 액세스 규칙을 설정할 수 있습니다.
RHACS에 액세스하는 사용자 및 그룹에 대한 액세스 규칙을 추가하려면 규칙 섹션에서 새 규칙 추가 를 클릭합니다. 예를 들어 관리자 역할을
administrator
라는 사용자에게 부여하려면 다음 키-값 쌍을 사용하여 액세스 규칙을 생성할 수 있습니다.키
현재의
이름
관리자
Role
관리자
- 저장을 클릭합니다.
검증
- RHACS 포털에서 플랫폼 구성 → 액세스 제어 로 이동합니다.
- Auth providers 탭을 선택합니다.
- 구성을 확인할 인증 공급자를 선택합니다.
- Auth Provider 섹션 헤더에서 로그인 테스트를 선택합니다. 테스트 로그인 페이지가 새 브라우저 탭에서 열립니다.
자격 증명을 사용하여 로그인합니다.
-
성공적으로 로그인하면 RHACS에서 시스템에 로그인하는 데 사용한 인증 정보에 대해
ID 공급자가 보낸
표시합니다.사용자 ID
및 사용자 속성을 - 로그인 시도가 실패하면 RHACS에 ID 공급자의 응답을 처리할 수 없는 이유를 설명하는 메시지가 표시됩니다.
-
성공적으로 로그인하면 RHACS에서 시스템에 로그인하는 데 사용한 인증 정보에 대해
- 테스트 로그인 브라우저 탭을 닫습니다.
19.4.3. OpenShift Container Platform OAuth 서버를 ID 공급자로 구성
OpenShift Container Platform에는 RHACS(Red Hat Advanced Cluster Security for Kubernetes)의 인증 공급자로 사용할 수 있는 기본 제공 OAuth 서버가 포함되어 있습니다.
19.4.3.1. OpenShift Container Platform OAuth 서버를 ID 공급자로 구성
기본 제공 OpenShift Container Platform OAuth 서버를 RHACS의 ID 공급자로 통합하려면 이 섹션의 지침을 사용하십시오.
사전 요구 사항
-
RHACS에서 ID 공급자를 구성할 수 있는
액세스
권한이 있어야 합니다. - ID 공급자를 통해 OpenShift Container Platform OAuth 서버에 사용자 및 그룹이 이미 구성되어 있어야 합니다. ID 공급자 요구 사항에 대한 자세한 내용은 ID 공급자 구성 이해를 참조하십시오.
다음 절차에서는 OpenShift Container Platform OAuth 서버에 대해 central
이라는 단일 기본 경로만 구성합니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 액세스 제어 로 이동합니다.
- 인증 공급자 생성 을 클릭하고 드롭다운 목록에서 OpenShift Auth 를 선택합니다.
- 이름 필드에 인증 공급자의 이름을 입력합니다.
선택한 ID 공급자를 사용하여 RHACS에 액세스하는 사용자에게 최소 액세스 역할을 할당합니다. 사용자에게 이 역할에 부여된 권한 또는 RHACS에 로그인하려면 더 높은 권한이 있는 역할이 있어야 합니다.
작은 정보보안을 위해 Red Hat은 설정을 완료하는 동안 먼저 최소 액세스 역할을 None 으로 설정하는 것이 좋습니다. 나중에 액세스 제어 페이지로 돌아가 ID 공급자의 사용자 메타데이터를 기반으로 보다 맞춤형 액세스 규칙을 설정할 수 있습니다.
선택 사항: RHACS에 액세스하는 사용자 및 그룹에 대한 액세스 규칙을 추가하려면 규칙 섹션에서 새 규칙 추가 를 클릭한 다음 규칙 정보를 입력하고 저장을 클릭합니다. 액세스를 구성할 수 있도록 사용자 또는 그룹에 대한 속성이 필요합니다.
작은 정보그룹 매핑은 일반적으로 팀 또는 권한 세트와 연결되며 사용자보다 덜 자주 수정이 필요하기 때문에 더 강력합니다.
OpenShift Container Platform에서 사용자 정보를 가져오려면 다음 방법 중 하나를 사용할 수 있습니다.
- 사용자 관리 → 사용자 → & lt; username > → YAML 을 클릭합니다.
-
k8s/cluster/user.openshift.io~v1~User/<username>/yaml
파일에 액세스하고이름
uid
(RHACS의userid
) 및그룹
값을 확인합니다. - OpenShift Container Platform API 참조에 설명된 대로 OpenShift Container Platform API 를 사용합니다.
다음 구성 예제에서는 다음 특성을 사용하여 Admin 역할에 대한 규칙을 구성하는 방법을 설명합니다.
-
이름
:관리자
-
groups
:["system:authenticated", "system:authenticated:oauth", "myAdministratorsGroup"]
-
uid
:12345-00aa-1234-123b-123fcdef1234
다음 단계 중 하나를 사용하여 이 관리자 역할에 대한 규칙을 추가할 수 있습니다.
-
이름에 대한 규칙을 구성하려면 키 드롭다운 목록에서
이름을
선택하고 Value 필드에administrator
를 입력한 다음 Role 에서 Administrator 를 선택합니다. -
그룹에 대한 규칙을 구성하려면 키 드롭다운 목록에서
그룹을
선택하고 Value 필드에myAdministratorsGroup
을 입력한 다음 Role 에서 Admin 을 선택합니다. -
사용자 이름에 대한 규칙을 구성하려면 키 드롭다운 목록에서
userid
를 선택하고 Value 필드에12345-00aa-1234-123b-123fc1234
를 입력한 다음 Role 에서 Admin 을 선택합니다.
- OpenShift Container Platform OAuth 서버의 사용자 정의 TLS 인증서를 사용하는 경우 신뢰할 수 있는 루트 CA로 Red Hat Advanced Cluster Security for Kubernetes에 CA의 루트 인증서를 추가해야 합니다. 그렇지 않으면 Central이 OpenShift Container Platform OAuth 서버에 연결할 수 없습니다.
roxctl
CLI를 사용하여 Red Hat Advanced Cluster Security for Kubernetes를 설치할 때 OpenShift Container Platform OAuth 서버 통합을 활성화하려면ROX_ENABLE_OPENSHIFT_AUTH
환경 변수를 Central에서true
로 설정합니다.$ oc -n stackrox set env deploy/central ROX_ENABLE_OPENSHIFT_AUTH=true
-
액세스 규칙의 경우 OpenShift Container Platform OAuth 서버에서 키
이메일을
반환하지 않습니다.
추가 리소스
19.4.3.2. OpenShift Container Platform OAuth 서버에 대한 추가 경로 생성
Red Hat Advanced Cluster Security for Kubernetes 포털을 사용하여 OpenShift Container Platform OAuth 서버를 ID 공급자로 구성하는 경우 RHACS는 OAuth 서버의 단일 경로만 구성합니다. 그러나 중앙 사용자 지정 리소스에서 주석으로 지정하여 추가 경로를 생성할 수 있습니다.
사전 요구 사항
프로세스
RHACS Operator를 사용하여 RHACS를 설치한 경우:
Central 사용자 지정 리소스에 대한 패치가 포함된
CENTRAL_ADDITIONAL_ROUTES
환경 변수를 생성합니다.$ CENTRAL_ADDITIONAL_ROUTES=' spec: central: exposure: loadBalancer: enabled: false port: 443 nodePort: enabled: false route: enabled: true persistence: persistentVolumeClaim: claimName: stackrox-db customize: annotations: serviceaccounts.openshift.io/oauth-redirecturi.main: sso/providers/openshift/callback 1 serviceaccounts.openshift.io/oauth-redirectreference.main: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"central\"}}" 2 serviceaccounts.openshift.io/oauth-redirecturi.second: sso/providers/openshift/callback 3 serviceaccounts.openshift.io/oauth-redirectreference.second: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"second-central\"}}" 4 '
중앙 사용자 지정 리소스에
CENTRAL_ADDITIONAL_ROUTES
패치를 적용합니다.$ oc patch centrals.platform.stackrox.io \ -n <namespace> \ 1 <custom-resource> \ 2 --patch "$CENTRAL_ADDITIONAL_ROUTES" \ --type=merge
또는 Helm을 사용하여 RHACS를 설치한 경우:
values-public.yaml
파일에 다음 주석을 추가합니다.customize: central: annotations: serviceaccounts.openshift.io/oauth-redirecturi.main: sso/providers/openshift/callback 1 serviceaccounts.openshift.io/oauth-redirectreference.main: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"central\"}}" 2 serviceaccounts.openshift.io/oauth-redirecturi.second: sso/providers/openshift/callback 3 serviceaccounts.openshift.io/oauth-redirectreference.second: "{\"kind\":\"OAuthRedirectReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"Route\",\"name\":\"second-central\"}}" 4
helm upgrade
를 사용하여 중앙 사용자 정의 리소스에 사용자 정의 주석을 적용합니다.$ helm upgrade -n stackrox \ stackrox-central-services rhacs/central-services \ -f <path_to_values_public.yaml> 1
- 1
-f
옵션을 사용하여values-public.yaml
구성 파일의 경로를 지정합니다.
19.4.4. SSO 구성을 사용하여 Azure AD를 RHACS에 연결
SSO(Sign-On) 구성을 사용하여 Azure Active Directory(AD)를 RHACS에 연결하려면 특정 클레임(예: 토큰에 그룹
클레임)을 추가하고 사용자, 그룹 또는 둘 다를 엔터프라이즈 애플리케이션에 할당해야 합니다.
19.4.4.1. SSO 구성을 사용하여 SAML 애플리케이션의 토큰에 그룹 클레임 추가
토큰에 그룹
클레임을 포함하도록 Azure AD에서 애플리케이션 등록을 구성합니다. 자세한 내용은 SSO 구성을 사용하여 SAML 애플리케이션의 토큰에 그룹 클레임 추가 를 참조하십시오.
최신 버전의 Azure AD를 사용하고 있는지 확인합니다. Azure AD를 최신 버전으로 업그레이드하는 방법에 대한 자세한 내용은 이전 버전에서 최신 버전으로 Azure AD Connect: Upgrade를 참조하십시오.
19.5. 관리자 제거
RHACS(Red Hat Advanced Cluster Security for Kubernetes)는 사용자 이름과 암호로 로그인하는 데 사용할 수 있는 설치 프로세스 중에 관리자 계정 admin
을 생성합니다. 암호는 특별히 재정의하지 않는 한 동적으로 생성되며 RHACS 인스턴스에 고유합니다.
프로덕션 환경에서는 인증 공급자를 생성하고 admin
사용자를 제거하는 것이 좋습니다.
19.5.1. 설치 후 관리자 제거
인증 공급자를 성공적으로 생성한 후에는 admin
사용자를 제거하는 것이 좋습니다.
admin
사용자 제거는 RHACS 포털의 설치 방법에 따라 다릅니다.
프로세스
다음 절차 중 하나를 수행합니다.
-
Operator 설치의 경우
Central
사용자 정의 리소스에서central.adminPasswordGenerationDisabled
를true
로 설정합니다. Helm 설치의 경우:
-
중앙 Helm 구성에서
central.adminPassword.generate
를false
로 설정합니다. - 단계에 따라 구성을 변경합니다. 자세한 내용은 "배포 후 구성 옵션 변경"을 참조하십시오.
-
roxctl
설치의 경우:-
매니페스트를 생성할 때
Disable password generation
을false
로 설정합니다. -
단계에 따라
roxctl
을 사용하여 변경 사항을 적용하여 Central을 설치합니다. 자세한 내용은 "Install Central using the roxctl CLI"를 참조하십시오.
-
매니페스트를 생성할 때
추가 리소스
구성 변경 사항을 적용한 후에는 관리자로
로그인할 수 없습니다.
구성 변경 사항을 되돌리면 admin
사용자를 폴백으로 다시 추가할 수 있습니다. admin
사용자를 다시 활성화하면 새 암호가 생성됩니다.
19.6. 수명이 짧은 액세스 구성
RHACS(Red Hat Advanced Cluster Security for Kubernetes)는 사용자 인터페이스 및 API 호출에 대한 수명이 짧은 액세스 권한을 구성할 수 있는 기능을 제공합니다.
RHACS 발급 토큰에 대해 OpenID Connect(OIDC) ID 토큰을 교환하여 이를 구성할 수 있습니다.
장기적인 API 토큰보다 수명이 짧은 액세스가 선호되는 CI(Continuous Integration) 사용에 이 방법을 사용하는 것이 좋습니다.
다음 단계에서는 사용자 인터페이스 및 API 호출에 대한 수명이 짧은 액세스를 구성하는 방법에 대한 고급 워크플로를 간략하게 설명합니다.
- 수명이 짧은 RHACS에서 발행한 토큰을 교환하기 위해 OIDC ID 토큰 발행자를 신뢰하도록 RHACS 구성.
- API를 호출하여 수명이 짧은 RHACS 발급 토큰에 대해 OIDC ID 토큰을 교환합니다.
-
권한 에스컬레이션을 방지하기 위해 새 토큰을 생성할 때 역할의 권한은 해당 토큰에 할당할 수 있는 권한을 제한합니다. 예를 들어 Integration 리소스에 대한
읽기
권한만 있는 경우쓰기
권한이 있는 토큰을 생성할 수 없습니다. - 다른 사용자가 사용할 토큰을 생성하는 사용자 지정 역할을 하려면 해당 사용자 지정 역할에 필요한 권한을 할당해야 합니다.
-
CI/CD 파이프라인, 스크립트 및 기타 자동화와 같은 머신 간 통신에 수명이 짧은 토큰을 사용합니다. 또한
roxctl
CLI 또는 API 액세스와 같은 human-to-machine 통신에roxctl central login
명령을 사용합니다. - 대부분의 클라우드 서비스 공급자는 OIDC ID 토큰(예: Microsoft Entra ID, Google Cloud Identity Platform 및 AWS Cognito)을 지원합니다. 이러한 서비스에서 발행한 OIDC ID 토큰은 RHACS 단기 액세스에 사용할 수 있습니다.
19.6.1. OIDC ID 토큰 발행자에 대한 단기 액세스 구성
OpenID Connect(OIDC) ID 토큰 발행자의 단기 액세스 구성을 시작합니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 통합으로 이동합니다.
- 인증 토큰 범주로 스크롤한 다음 머신 액세스 구성 을 클릭합니다.
- 구성 생성을 클릭합니다.
다음 중 하나를 선택하여 구성 유형을 선택합니다.
- 임의의 OIDC ID 토큰 발행자를 사용하는 경우 일반 입니다.
- GitHub 작업에서 RHACS에 액세스하려는 경우 GitHub 작업.
- OIDC ID 토큰 발행자를 입력합니다.
구성에서 발행한 토큰 의 토큰 수명을 입력합니다.
참고토큰 수명 형식은 XhYmZs 이며 24 시간 이상 설정할 수 없습니다.
구성에 규칙을 추가합니다.
- 키는 사용할 OIDC 토큰의 클레임입니다.
- 값은 예상되는 OIDC 토큰 클레임 값입니다.
OIDC 토큰 클레임 및 값이 있는 경우 역할에는 토큰에 할당할 역할이 있습니다.
참고규칙은 클레임 값에 따라 역할을 할당하는 인증 공급자 규칙과 유사합니다.
일반적으로 Red Hat은 규칙 내에서 고유하고 변경 불가능한 클레임을 사용할 것을 권장합니다. 일반적인 권장 사항은 OIDC ID 토큰 내에서 하위 클레임을 사용하는 것입니다. OIDC 토큰 클레임에 대한 자세한 내용은 표준 OIDC 클레임 목록을 참조하십시오.
- 저장을 클릭합니다.
19.6.2. ID 토큰 교환
사전 요구 사항
- 유효한 OpenID Connect(OIDC) 토큰이 있습니다.
- 액세스하려는 RHACS 인스턴스에 대한 머신 액세스 구성 을 추가했습니다.
프로세스
POST 요청의 JSON 데이터를 준비합니다.
{ "idToken": "<id_token>" }
- API /v1/auth/m2m/exchange 에 POST 요청을 보냅니다.
API 응답을 기다립니다.
{ "accessToken": "<access_token>" }
- 반환된 액세스 토큰을 사용하여 RHACS 인스턴스에 액세스합니다.
GitHub Actions 를 사용하는 경우 stackrox/central-login GitHub Action 을 사용할 수 있습니다.
19.7. 멀티 테넌시 이해
Red Hat Advanced Cluster Security for Kubernetes에서는 중앙 인스턴스 내에서 멀티 테넌시를 구현할 수 있는 방법을 제공합니다.
RHACS 내에서 RBAC(역할 기반 액세스 제어) 및 액세스 범위를 사용하여 멀티 테넌시를 구현할 수 있습니다.
19.7.1. 리소스 범위 이해
RHACS에는 RBAC 내에서 사용되는 리소스가 포함되어 있습니다. 리소스에 대한 권한을 연결하는 것 외에도 각 리소스의 범위도 지정됩니다.
RHACS에서 리소스의 범위는 다음 유형으로 지정됩니다.
- 리소스가 클러스터 또는 네임스페이스에 할당되지 않은 전역 범위
- 특정 클러스터에 리소스가 할당되는 클러스터 범위
- 특정 네임스페이스에 리소스가 할당되는 네임스페이스 범위
리소스 범위는 사용자 정의 액세스 범위를 생성할 때 중요합니다. 사용자 지정 액세스 범위는 RHACS 내에서 멀티 테넌시를 만드는 데 사용됩니다.
클러스터 또는 네임스페이스 범위가 지정된 리소스만 액세스 범위의 범위에 적용할 수 있습니다. 전역적으로 범위가 지정된 리소스는 액세스 범위에 따라 범위가 지정되지 않습니다. 따라서 RHACS 내의 멀티 테넌시는 클러스터 또는 네임스페이스에서 범위가 지정된 리소스에 대해서만 수행할 수 있습니다.
19.7.2. 네임스페이스 구성당 멀티 테넌시 예
RHACS 내의 멀티 테넌시의 일반적인 예는 사용자를 특정 네임스페이스와 연결하고 특정 네임스페이스에 대한 액세스만 허용하는 것입니다.
다음 예제에서는 사용자 지정 권한 세트, 액세스 범위 및 역할을 결합합니다. 이 역할로 할당된 사용자 또는 그룹은 특정 네임스페이스 또는 클러스터 범위의 배포에 대한 CVE 정보, 위반 및 정보만 볼 수 있습니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 액세스 제어를 선택합니다.
- 권한 집합 을 선택합니다.
- Create permission set 을 클릭합니다.
- 권한 세트의 이름 및 설명을 입력합니다.
다음 리소스 및 액세스 수준을 선택하고 저장을 클릭합니다.
-
READ
경고 -
배포
준비 -
READ
DeploymentExtension -
READ
Image -
READ
K8sRole -
READ
K8sRoleBinding -
READ
K8sSubject -
READ
NetworkGraph -
READ
NetworkPolicy -
READ
시크릿 -
READ
ServiceAccount
-
- 액세스 범위를 선택합니다.
- 액세스 범위 생성을 클릭합니다.
- 액세스 범위에 대한 이름 및 설명을 입력합니다.
- 허용된 리소스 섹션에서 범위 지정에 사용할 네임스페이스를 선택하고 저장을 클릭합니다.
- 역할을 선택합니다.
- 역할 생성을 클릭합니다.
- 역할에 대한 이름 및 설명을 입력합니다.
- 이전에 생성된 권한 세트 및 역할의 액세스 범위를 선택하고 저장을 클릭합니다.
- 필요한 사용자 또는 그룹에 역할을 할당합니다. 사용자 또는 그룹에 역할 할당을 참조하십시오.
샘플 역할이 있는 사용자의 RHACS 대시보드 옵션은 관리자가 사용할 수 있는 옵션과 비교하여 최소입니다. 사용자가 관련 페이지만 볼 수 있습니다.
19.7.3. 제한
RHACS 내에서 멀티 테넌시를 달성하는 것은 글로벌 범위가 있는 리소스에는 수행할 수 없습니다.
다음 리소스에는 글로벌 범위가 있습니다.
- 액세스
- 관리
- 탐지
- Integration
- VulnerabilityManagementApprovals
- VulnerabilityManagementRequests
- WatchedImage
- WorkflowAdministration
이러한 리소스는 RHACS Central 인스턴스 내의 모든 사용자가 공유되며 범위를 지정할 수 없습니다.
20장. 시스템 상태 대시보드 사용
RHACS(Red Hat Advanced Cluster Security for Kubernetes) 시스템 상태 대시보드는 RHACS 구성 요소에 대한 상태 관련 정보를 볼 수 있는 단일 인터페이스를 제공합니다.
20.1. 시스템 상태 정보 분석 및 관리
시스템 상태 페이지에서 RHACS(Red Hat Advanced Cluster Security for Kubernetes) 구성 요소와 관련된 모든 상태 관련 정보를 볼 수 있습니다.
프로세스
- RHACS 포털에서 플랫폼 구성 → 시스템 상태를 클릭합니다.
선택 사항: 관리 사용 데이터를 CSV 파일로 다운로드하려면 다음 단계를 수행합니다.
관리 사용량 표시를 클릭합니다.
참고관리 사용 페이지에는 보안 Kubernetes 노드 및 CPU 단위 수를 포함하여 수집한 관리 사용 데이터가 표시됩니다. 현재 사용량은 센서에서 수신한 마지막 메트릭을 반영하며 약 5분 정도 지연됩니다.
최대 사용량은 시간별로 집계되며 여전히 연결된 클러스터만 포함됩니다. 날짜 범위는 포함되지 않으며 시간대와 일치합니다. 이 데이터는 Red Hat으로 전송되거나 Prometheus 지표로 표시되지 않습니다.
-
YYYY-MM-DD
형식으로 시작 및 종료 날짜를 입력합니다. 시작 및 종료 날짜를 지정하지 않으면 해당 월의 첫날과 마지막 날짜가 자동으로 선택됩니다. - 관리 사용 데이터를 다운로드하려면 CSV 다운로드를 클릭합니다.
선택 사항: 플랫폼 데이터를 다운로드하려면 다음 단계를 수행합니다.
- 진단 번들 생성 을 클릭합니다.
선택 사항: 압축 파일에 포함할 플랫폼 데이터를 필터링하는 적절한 방법을 선택합니다.
- 특정 클러스터를 기반으로 플랫폼 데이터를 필터링하려면 Filter by cluster 드롭다운 목록에서 하나 이상의 클러스터를 선택합니다. 클러스터를 선택하지 않으면 모든 클러스터가 자동으로 선택됩니다.
-
시작 시간에 따라 플랫폼 데이터를 필터링하려면 UTC(Coordinated Universal Time) 형식
yyyy-mm-ddThh:mmZ
형식으로 시간을 입력합니다. 시작 시간을 지정하지 않으면 진단 번들에 지난 20분 동안의 플랫폼 데이터가 포함됩니다.
- 플랫폼 데이터를 다운로드하려면 진단 번들 다운로드를 클릭합니다.
선택 사항: 하나 이상의 클러스터와 연결된 클러스터 상태,센서 업그레이드 또는 인증 정보 만료 정보를 보려면 다음 단계를 수행합니다.
- 클러스터 보기를 클릭합니다.
- 클러스터에 대한 자세한 내용을 표시하려면 클러스터 이름을 클릭합니다.
- 선택한 클러스터와 관련된 모든 상태 정보는 클러스터 요약 섹션에서 찾을 수 있습니다.
- 다음을 클릭합니다.
- 선택 사항: 필요한 YAML 파일을 다운로드하여 Helm 값을 업데이트하려면 Helm 값 다운로드를 클릭합니다.
- 완료를 클릭합니다.
선택 사항: 중앙, StackRox 스캐너 또는 스캐너 V4와 같은 RHACS 구성 요소와 연결된 인증서를 업데이트하려면 다음 단계를 수행합니다.
- 아래로 스크롤하여 인증서를 업데이트할 구성 요소를 찾습니다.
- YAML 다운로드를 클릭합니다.
선택 사항: 내부 인증서를 다시 발행하려면 다음 단계를 수행합니다.
- 내부 인증서 Reissuing을 클릭합니다.
- Red Hat 문서의 지침에 따라 YAML을 적용하고 재구성을 완료합니다.
20.2. 시스템 상태 대시보드 페이지 개요
시스템 상태 대시보드 페이지는 다음 그룹으로 정보를 구성합니다.
- 클러스터 상태
- 클러스터의 전반적인 상태와 센서, 수집기 및 Admission Controller와 같은 필수 RHACS(Red Hat Advanced Cluster Security for Kubernetes) 구성 요소의 상태를 나타냅니다.
- 센서 업그레이드
- 센서에 대한 보류 중 또는 진행 중 업그레이드 상태를 나타냅니다.
- 인증 정보 만료
- 중요한 인증 정보의 만료 날짜를 나타냅니다.
- StackRox Scanner 취약점 정의
- StackRox 스캐너에서 사용하는 취약점 정의 데이터베이스의 상태를 나타냅니다.
- 스캐너 V4 취약점
- scanner V4에서 사용하는 취약점 정의 데이터베이스의 상태를 나타냅니다.
- 이미지 통합
- 통합 이미지 레지스트리 및 스캐너의 상태를 나타냅니다.
- Notifier 통합
- 통합한 알림기의 상태를 나타냅니다.
- 백업 통합
- 통합한 백업 공급자의 상태를 나타냅니다.
- 선언적 구성
- 선언적 구성의 상태 및 일관성을 나타냅니다.
- 중앙 인증서
- 중앙 인증서의 만료 날짜를 나타냅니다.
- StackRox 스캐너 인증서
- StackRox 스캐너 인증서의 만료 날짜를 나타냅니다.
- 스캐너 V4 인증서
- 스캐너 V4 인증서의 만료 날짜를 나타냅니다.
20.2.1. 이미지 통합 섹션
이미지 통합 섹션에서는 다음 그룹으로 정보를 구성합니다.
- 이름
- 통합 이미지의 이름을 나타냅니다.
- 레이블
- 추가 컨텍스트의 통합과 관련된 설명 레이블을 나타냅니다.
- 오류 메시지
- 통합이 발생하는 문제 또는 오류를 나타냅니다.
- 날짜
- 통합을 위한 마지막 상태 점검 또는 상태 업데이트의 타임스탬프를 나타냅니다.
20.3. 관리 사용 페이지 개요
시스템 상태 페이지에서 관리 사용량 표시를 클릭하면 센서에서 수집한 메트릭을 기반으로 보안 Kubernetes 노드 및 CPU 단위의 제품 사용량 데이터를 볼 수 있습니다. 이 정보를 사용하여 보고를 위해 RHACS(Red Hat Advanced Cluster Security for Kubernetes) 사용 데이터를 추정할 수 있습니다.
Kubernetes에 CPU 단위가 정의되는 방법에 대한 자세한 내용은 CPU 리소스 단위 (Kubernetes 문서)를 참조하십시오.
OpenShift Container Platform은 자체 사용 보고서를 제공합니다. 이 정보는 자체 관리 Kubernetes 시스템에서 사용할 수 있습니다.
RHACS는 웹 포털 및 API에서 다음과 같은 사용 데이터를 제공합니다.
- 현재 보안됨
- CPU 유닛
- RHACS 보안 클러스터에서 최신 메트릭 컬렉션으로 사용하는 Kubernetes CPU 단위 수를 나타냅니다.
- 노드 수
- RHACS가 최신 메트릭 컬렉션으로 보호하는 Kubernetes 노드 수를 나타냅니다.
- 최대 보안
- CPU 유닛
- RHACS 보안 클러스터에서 사용하는 최대 CPU 단위 수를 나타냅니다. 시간별 측정 및 지정한 기간 동안 집계된 CPU 단위입니다.
- 노드 수
- RHACS가 보호하는 최대 Kubernetes 노드 수를 나타냅니다. 시간별 측정 및 지정한 기간 동안 집계된 Kubernetes 노드 수입니다.
- CPU 단위 관찰 날짜
- 최대 보안 CPU 단위 데이터가 수집된 날짜를 나타냅니다.
- 노드 수 관찰 날짜
- 보안된 최대 노드 데이터를 수집한 날짜를 나타냅니다.
21장. 관리 이벤트 페이지 사용
RHACS(Red Hat Advanced Cluster Security for Kubernetes)를 사용하여 단일 인터페이스에서 관리 이벤트 정보를 볼 수 있습니다. 이 인터페이스를 사용하여 중요한 이벤트 세부 정보를 이해하고 해석할 수 있습니다.
21.1. 다른 도메인의 이벤트 로그에 액세스
관리 이벤트 페이지를 보면 다른 도메인의 다양한 이벤트 로그에 액세스할 수 있습니다.
프로세스
- RHACS 플랫폼에서 플랫폼 구성 → 관리 이벤트로 이동합니다.
21.2. 관리 이벤트 페이지 개요
관리 이벤트 페이지는 다음 그룹에 정보를 구성합니다.
domain : 이벤트가 발생한 RHACS 내의 특정 영역 또는 도메인에 의해 이벤트를 분류합니다. 이 분류는 이벤트 컨텍스트를 구성하고 이해하는 데 도움이 됩니다.
다음 도메인이 포함됩니다.
-
인증
-
일반
-
이미지 검사
-
통합
-
리소스 유형: 관련 리소스 또는 구성 요소 유형을 기반으로 이벤트를 분류합니다.
다음과 같은 리소스 유형이 포함됩니다.
-
API 토큰
-
Cluster
-
이미지
-
노드
-
Notifier
-
level: 이벤트의 심각도 또는 중요성을 나타냅니다.
다음 수준이 포함됩니다.
-
오류
-
경고
-
성공
-
정보
-
알 수 없음
-
- 이벤트가 발생한 시점의 타임스탬프 및 날짜에 대한 정보를 제공합니다.Provide information about the timestamp and date when an event occurred. 문제 진단 및 작업 또는 사고의 순서를 이해하는 데 필요한 이벤트 타이밍을 추적하는 데 도움이 됩니다.
- Count: 특정 이벤트가 발생한 횟수를 나타냅니다. 이 수는 문제의 빈도를 평가하는 데 유용합니다. 여러 번 발생한 이벤트는 수정해야 하는 지속적인 문제를 나타냅니다.
또한 각 이벤트는 오류를 수정하기 위해 수행해야 할 사항에 대한 표시도 제공합니다.
21.3. 특정 도메인의 이벤트에 대한 정보 가져오기
관리 이벤트의 세부 정보를 확인하면 해당 특정 도메인의 이벤트에 대한 자세한 정보를 얻을 수 있습니다. 이를 통해 이벤트의 컨텍스트 및 세부 사항을 더 잘 이해할 수 있습니다.
프로세스
- 관리 이벤트 페이지에서 도메인을 클릭하여 세부 정보를 확인합니다.
21.4. 관리 이벤트 세부 정보 개요
관리 이벤트는 오류 또는 이벤트를 설명하는 로그 정보를 제공합니다.
로그는 다음 정보를 제공합니다.
- 이벤트의 컨텍스트
- 오류를 해결하기 위한 단계
관리 이벤트 페이지는 다음 그룹에 정보를 구성합니다.
리소스 유형: 관련 리소스 또는 구성 요소 유형을 기반으로 이벤트를 분류합니다.
다음과 같은 리소스 유형이 포함됩니다.
-
API 토큰
-
Cluster
-
이미지
-
노드
-
Notifier
-
- resource name: 이벤트가 참조하는 리소스 또는 구성 요소의 이름을 지정합니다. 이벤트가 발생한 도메인 내의 특정 인스턴스를 식별합니다.
- 이벤트 유형: 이벤트의 소스를 지정합니다. Central은 로그 문에서 생성된 관리 이벤트에 해당하는 로그 이벤트를 생성합니다.
- 이벤트 ID: 각 이벤트에 할당된 영숫자 문자로 구성된 고유 식별자입니다. 이벤트 ID는 시간이 지남에 따라 이벤트를 식별, 추적 및 관리하는 데 유용할 수 있습니다.
- 생성됨: 이벤트가 원래 생성되거나 기록된 시점의 타임스탬프와 날짜를 나타냅니다.
- 마지막 발생 시: 이벤트가 마지막으로 발생한 타임스탬프 및 날짜를 지정합니다. 이렇게 하면 이벤트의 타이밍이 추적되며 반복적인 문제를 진단하고 해결하는 데 중요할 수 있습니다.
- Count: 특정 이벤트가 발생한 횟수를 나타냅니다. 이 수는 문제의 빈도를 평가하는 데 유용합니다. 여러 번 발생한 이벤트는 수정해야 하는 지속적인 문제를 나타냅니다.
21.5. 관리 이벤트 만료 설정
일 수를 지정하면 관리 이벤트가 만료되는 시기를 제어할 수 있습니다. 이는 이벤트를 관리하고 원하는 기간 동안 정보를 유지하는 데 중요합니다.
기본적으로 관리 이벤트는 4일 동안 유지됩니다. 이러한 이벤트의 보존 기간은 생성 시점이 아닌 마지막 발생 시간에 따라 결정됩니다. 즉, 이벤트가 만료되고 마지막으로 발생한 시간이 지정된 보존 기간을 초과하는 경우에만 삭제됩니다.
프로세스
RHACS 포털에서 플랫폼 구성 → 시스템 구성으로 이동합니다. 관리 이벤트에 대해 다음 설정을 구성할 수 있습니다.
- 관리 이벤트 보존 일: 관리 이벤트를 유지할 일 수입니다.
- 이 값을 변경하려면 편집 을 클릭하고 변경 사항을 수행한 다음 저장을 클릭합니다.