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로 규칙 되돌리기: 시뮬레이션된 정책을 제거하고 마지막 네트워크 정책으로 되돌립니다.
-
알림자와 YAML 파일 공유: YAML 파일을 구성한 시스템 알림자(예: Slack, ServiceNow 또는 일반 Webhook를 사용하는 애플리케이션) 중 하나로 보냅니다. 이러한 알림자는 플랫폼 구성
7.2.3. 네트워크 그래프에 생성된 정책 저장
RHACS에서 생성된 네트워크 정책을 다운로드하여 저장할 수 있습니다. Git과 같은 버전 제어 시스템에 정책을 커밋할 수 있도록 이 옵션을 사용하여 정책을 다운로드합니다.
프로세스
- 네트워크 정책을 생성한 후 네트워크 정책 시뮬레이터 패널에서 YAML 다운로드 아이콘을 클릭합니다.
7.2.4. 네트워크 그래프에서 생성된 정책 테스트
RHACS가 생성하는 네트워크 정책을 다운로드한 후 CLI 또는 자동화된 배포 절차를 사용하여 클러스터에 적용하여 테스트할 수 있습니다. 네트워크 그래프에는 생성된 네트워크 정책을 직접 적용할 수 없습니다.
프로세스
저장된 YAML 파일을 사용하여 정책을 생성하려면 다음 명령을 실행합니다.
oc create -f "<generated_file>.yml"
$ oc create -f "<generated_file>.yml"
1 Copy to Clipboard Copied! - 1
- Kubernetes를 사용하는 경우
oc
대신kubectl
을 입력합니다.
생성된 정책에서 문제가 발생하면 다음 명령을 실행하여 해당 정책을 제거할 수 있습니다.
oc delete -f "<generated_file>.yml"
$ oc delete -f "<generated_file>.yml"
1 Copy to Clipboard Copied! - 1
- Kubernetes를 사용하는 경우
oc
대신kubectl
을 입력합니다.
네트워크 정책을 직접 적용하면 실행 중인 애플리케이션에 문제가 발생할 수 있습니다. 프로덕션 워크로드에 적용하기 전에 항상 개발 환경에서 네트워크 정책을 다운로드 및 테스트하거나 클러스터를 테스트하십시오.
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
$ oc get ns -o jsonpath='{.items[*].metadata.name}' | \ xargs -n 1 oc delete networkpolicies -l \ 'network-policy-generator.stackrox.io/generated=true' -n
1 Copy to Clipboard Copied! - 1
- Kubernetes를 사용하는 경우
oc
대신kubectl
을 입력합니다.
7.2.7. 네트워크 그래프에서 네트워크 정책 시뮬레이션
현재 네트워크 정책에서 불필요한 네트워크 통신을 허용할 수 있습니다. 네트워크 정책 생성기를 사용하여 일련의 배포를 위해 수신 트래픽을 계산된 기준선으로 제한하는 네트워크 정책을 생성할 수 있습니다.
네트워크 그래프는 시각화에 생성된 정책을 표시하지 않습니다. 생성된 정책은 수신 트래픽 및 송신 트래픽을 제한하는 정책에만 해당되지 않습니다.
프로세스
- RHACS 포털에서 네트워크 그래프로 이동합니다.
- 클러스터를 선택한 다음 하나 이상의 네임스페이스를 선택합니다.
- 네트워크 그래프 헤더에서 네트워크 정책 생성기 를 선택합니다.
다음 작업을 수행할 수 있습니다.
- 네트워크 정책 생성 및 시뮬레이션을 클릭하여 시뮬레이션에 사용할 네트워크 정책으로 YAML 파일을 생성합니다. 자세한 내용은 "네트워크 그래프에서 네트워크 정책 생성"을 참조하십시오.
다음 단계를 수행하여 시뮬레이션에서 사용할 네트워크 정책의 YAML 파일을 업로드합니다.
- Upload YAML 을 클릭한 다음 파일을 선택합니다.
- Open 을 클릭합니다. 시스템은 업로드된 정책의 처리 상태를 나타내는 메시지를 표시합니다.
활성 YAML S 탭을 클릭한 다음 드롭다운 목록에서 정책을 선택하여 현재 네트워크 정책에 해당하는 활성 YAML 파일을 볼 수 있습니다. 다음 작업을 수행할 수도 있습니다.
- 적절한 버튼을 클릭하여 표시된 YAML 파일을 복사하거나 다운로드합니다.
- Actions 메뉴를 사용하여 활성 트래픽에서 규칙을 다시 빌드하거나 이전에 적용된 YAML로 규칙을 되돌립니다. 자세한 내용은 "네트워크 그래프에서 네트워크 정책 생성"을 참조하십시오.