roxctl CLI
roxctl CLI
초록
1장. roxctl CLI 설치
roxctl
은 RHACS(Red Hat Advanced Cluster Security for Kubernetes)에서 명령을 실행하기 위한 CLI(명령줄 인터페이스)입니다. 바이너리를 다운로드하여 roxctl
CLI를 설치하거나 컨테이너 이미지에서 roxctl
CLI를 실행할 수 있습니다.
1.1. 바이너리를 다운로드하여 roxctl CLI 설치
명령줄 인터페이스에서 RHACS와 상호 작용하기 위해 roxctl
CLI를 설치할 수 있습니다. Linux, Windows 또는 macOS에 roxctl
을 설치할 수 있습니다.
1.1.1. Linux에 roxctl CLI 설치
다음 절차에 따라 Linux에 roxctl
CLI 바이너리를 설치할 수 있습니다.
Linux용 roxctl
CLI는 amd64,
및 ppc64
les390x
아키텍처에서 사용할 수 있습니다.
프로세스
대상 운영 체제의
roxctl
아키텍처를 확인합니다.$ arch="$(uname -m | sed "s/x86_64//")"; arch="${arch:+-$arch}"
roxctl
CLI를 다운로드합니다.$ curl -f -o roxctl "https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Linux/roxctl${arch}"
roxctl
바이너리를 실행 가능하게 만듭니다.$ chmod +x roxctl
roxctl
바이너리를PATH
에 있는 디렉터리에 배치합니다.PATH
를 확인하려면 다음 명령을 실행합니다.$ echo $PATH
검증
설치한
roxctl
버전을 확인합니다.$ roxctl version
1.1.2. macOS에 roxctl CLI 설치
다음 절차를 사용하여 macOS에 roxctl
CLI 바이너리를 설치할 수 있습니다.
macOS용 roxctl
CLI는 amd64
아키텍처에서 사용할 수 있습니다.
프로세스
roxctl
CLI를 다운로드합니다.$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Darwin/roxctl
바이너리에서 모든 확장 속성을 제거합니다.
$ xattr -c roxctl
roxctl
바이너리를 실행 가능하게 만듭니다.$ chmod +x roxctl
roxctl
바이너리를PATH
에 있는 디렉터리에 배치합니다.PATH
를 확인하려면 다음 명령을 실행합니다.$ echo $PATH
검증
설치한
roxctl
버전을 확인합니다.$ roxctl version
1.1.3. Windows에 roxctl CLI 설치
다음 절차를 사용하여 Windows에 roxctl
CLI 바이너리를 설치할 수 있습니다.
Windows용 roxctl
CLI는 amd64
아키텍처에서 사용할 수 있습니다.
프로세스
roxctl
CLI를 다운로드합니다.$ curl -f -O https://mirror.openshift.com/pub/rhacs/assets/4.3.8/bin/Windows/roxctl.exe
검증
설치한
roxctl
버전을 확인합니다.$ roxctl version
1.2. 컨테이너에서 roxctl CLI 실행
roxctl
클라이언트는 RHACS roxctl
이미지의 기본 진입점입니다. 컨테이너 이미지에서 roxctl
클라이언트를 실행하려면 다음을 수행합니다.
사전 요구 사항
- 먼저 RHACS 포털에서 인증 토큰을 생성해야 합니다.
프로세스
registry.redhat.io
레지스트리에 로그인합니다.$ docker login registry.redhat.io
roxctl
CLI의 최신 컨테이너 이미지를 가져옵니다.$ docker pull registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:4.3.8
CLI를 설치한 후 다음 명령을 사용하여 실행할 수 있습니다.
$ docker run -e ROX_API_TOKEN=$ROX_API_TOKEN \ -it registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:4.3.8 \ -e $ROX_CENTRAL_ADDRESS <command>
Red Hat Advanced Cluster Security Cloud Service(RHACS Cloud Service)에서 Central 주소가 필요한 roxctl
명령을 사용하는 경우 Red Hat Hybrid Cloud Console의 인스턴스 세부 정보 섹션에 표시된 대로 Central 인스턴스 주소를 사용합니다. 예를 들어 acs-data-ABCD12345.acs.rhcloud.com
대신 acs-ABCD12345.acs.rhcloud.com
을 사용합니다.
검증
설치한
roxctl
버전을 확인합니다.$ docker run -it registry.redhat.io/advanced-cluster-security/rhacs-roxctl-rhel8:4.3.8 version
2장. roxctl CLI 사용
2.1. 사전 요구 사항
다음 명령을 사용하여
ROX_ENDPOINT
환경 변수를 구성했습니다.$ export ROX_ENDPOINT=<host:port> 1
- 1
ROX_ENDPOINT
환경 변수에 저장하려는 호스트 및 포트 정보입니다.
2.2. 인증 정보 가져오기
다음 절차에서는 roxctl central whoami
명령을 사용하여 Central에서 인증 상태 및 사용자 프로필에 대한 정보를 검색하는 방법을 설명합니다. 예제 출력은 사용자 역할, 액세스 권한 및 다양한 관리 기능을 포함하여 볼 수 있는 데이터를 보여줍니다. 이 단계에서는 Central 내에서 액세스 및 역할을 검토할 수 있습니다.
프로세스
다음 명령을 실행하여 현재 인증 상태 및 중앙에서 사용자 정보를 가져옵니다.
$ roxctl central whoami
출력 예
UserID: <redacted> User name: <redacted> Roles: APIToken creator, Admin, Analyst, Continuous Integration, Network Graph Viewer, None, Sensor Creator, Vulnerability Management Approver, Vulnerability Management Requester, Vulnerability Manager, Vulnerability Report Creator Access: rw Access rw Administration rw Alert rw CVE rw Cluster rw Compliance rw Deployment rw DeploymentExtension rw Detection rw Image rw Integration rw K8sRole rw K8sRoleBinding rw K8sSubject rw Namespace rw NetworkGraph rw NetworkPolicy rw Node rw Secret rw ServiceAccount rw VulnerabilityManagementApprovals rw VulnerabilityManagementRequests rw WatchedImage rw WorkflowAdministration
출력을 검토하여 인증 및 사용자 세부 정보가 예상대로 있는지 확인합니다.
2.3. roxctl CLI를 사용하여 인증
인증의 경우 API 토큰, 관리자 암호 또는 roxctl 중앙 로그인
명령을 사용할 수 있습니다.
API 토큰을 효과적으로 사용하려면 다음 지침을 따르십시오.
- 연속 통합(CI)이 있는 프로덕션 환경에서 API 토큰을 사용합니다. 각 토큰에는 특정 액세스 권한이 할당되어 수행할 수 있는 작업을 제어할 수 있습니다. 또한 API 토큰에는 브라우저 기반 로그인과 같은 대화형 프로세스가 필요하지 않으므로 자동화된 프로세스에 적합합니다. 이 토큰에는 TTL(Time-to-live) 값이 1년이며 원활한 통합 및 운영 효율성을 위한 유효 기간을 더 연장할 수 있습니다.
- 테스트 목적으로만 관리자 암호를 사용하십시오. 프로덕션 환경에서 사용하지 마십시오.
-
로컬 대화형 용도로만
roxctl 중앙 로그인
명령을 사용합니다.
2.3.1. API 토큰 생성
프로세스
- RHACS 포털에서 플랫폼 구성 → 통합으로 이동합니다.
- 인증 토큰 범주로 스크롤한 다음 API 토큰 을 클릭합니다.
- 토큰 생성을 클릭합니다.
- 토큰 이름을 입력하고 필요한 액세스 수준(예: 지속적 통합 또는 센서생성자)을 제공하는 역할을 선택합니다.
생성 을 클릭합니다.
중요생성된 토큰을 복사하여 안전하게 저장합니다. 다시는 볼 수 없습니다.
2.3.2. API 토큰 내보내기 및 저장
프로세스
인증 토큰을 생성한 후 다음 명령을 입력하여
ROX_API_TOKEN
변수로 내보냅니다.$ export ROX_API_TOKEN=<api_token>
(선택 사항): 토큰을 파일에 저장하고 다음 명령을 입력하여
--token-file
옵션과 함께 사용할 수도 있습니다.$ roxctl central debug dump --token-file <token_file>
다음 지침을 참조하십시오.
-
-password
(-p
)와--token-file
옵션을 동시에 사용할 수 없습니다. -
ROX_API_TOKEN
변수를 이미 설정하고--token-file
옵션을 지정한 경우roxctl
CLI는 인증에 지정된 토큰 파일을 사용합니다. -
ROX_API_TOKEN
변수를 이미 설정하고--password
옵션을 지정한 경우roxctl
CLI는 인증에 지정된 암호를 사용합니다.
2.3.3. 인증 공급자를 사용하여 roxctl로 인증
Central에서 인증 공급자를 구성하고 roxctl
CLI를 사용하여 로그인 프로세스를 시작할 수 있습니다. ROX_ENDPOINT
변수를 설정하고 roxctl central login
명령을 사용하여 로그인 프로세스를 시작하고, 브라우저 창에서 인증 공급자를 선택한 다음, 다음 절차에 설명된 대로 roxctl
CLI에서 토큰 정보를 검색합니다.
사전 요구 사항
- 선택한 OIDC(OpenID Connect)와 조각 또는 쿼리 모드와 같은 인증 공급자를 선택했습니다.
프로세스
다음 명령을 실행하여
ROX_ENDPOINT
변수를 중앙 호스트 이름 및 포트로 설정합니다.export ROX_ENDPOINT=<central_hostname:port>
다음 명령을 실행하여 Central에 대한 로그인 프로세스를 시작합니다.
$ roxctl central login
-
roxctl
CLI 내에서 URL이 출력되어 사용할 인증 공급자를 선택할 수 있는 브라우저 창으로 리디렉션됩니다. 인증 공급자로 로그인합니다.
성공적으로 로그인한 후 브라우저 창에 인증이 성공했음을 나타내며 브라우저 창을 닫을 수 있습니다.
roxctl
CLI는 액세스 토큰, 액세스 토큰 만료 시간, 발행된 경우 새로 고침 토큰과 같은 세부 정보, 이러한 값이 로컬에 저장됨을 알리는 등 토큰 정보를 표시합니다.출력 예
Please complete the authorization flow in the browser with an auth provider of your choice. If no browser window opens, please click on the following URL: http://127.0.0.1:xxxxx/login INFO: Received the following after the authorization flow from Central: INFO: Access token: <redacted> 1 INFO: Access token expiration: 2023-04-19 13:58:43 +0000 UTC 2 INFO: Refresh token: <redacted> 3 INFO: Storing these values under $HOME/.roxctl/login… 4
중요환경을 설정하여 구성이 저장된 디렉터리를 확인합니다. 기본적으로 구성은
$HOME/.roxctl/roxctl-config
디렉터리에 저장됩니다.-
$ROX_CONFIG_DIR
환경 변수를 설정하면 구성이$ROX_CONFIG_DIR/roxctl-config
디렉터리에 저장됩니다. 이 옵션은 가장 높은 우선 순위를 갖습니다. -
$XDG_RUNTIME_DIR
환경 변수를 설정하고$ROX_CONFIG_DIR
변수가 설정되지 않은 경우 구성은$XDG_RUNTIME_DIR /roxctl-config
디렉터리에 저장됩니다. -
$ROX_CONFIG_DIR
또는$XDG_RUNTIME_DIR
환경 변수를 설정하지 않으면 구성이$HOME/.roxctl/roxctl-config
디렉터리에 저장됩니다.
-
2.4. RHACS 클라우드 서비스에서 roxctl CLI 구성 및 사용
프로세스
다음 명령을 실행하여
ROX_API_TOKEN
을 내보냅니다.$ export ROX_API_TOKEN=<api_token>
다음 명령을 실행하여
ROX_ENDPOINT
를 내보냅니다.$ export ROX_ENDPOINT=<address>:<port_number>
-
--help
옵션을 사용하여 명령에 대한 자세한 정보를 얻을 수 있습니다. -
Red Hat Advanced Cluster Security Cloud Service(RHACS Cloud Service)에서 Central 주소가 필요한
roxctl
명령을 사용하는 경우 Red Hat Hybrid Cloud Console의 인스턴스 세부 정보 섹션에 표시된 대로 Central 인스턴스 주소를 사용합니다. 예를 들어acs-data-ABCD12345.acs.rhcloud.com
대신acs-ABCD12345.acs.rhcloud.com
을 사용합니다.
3장. 보안 클러스터 관리
Kubernetes 또는 OpenShift Container Platform 클러스터를 보호하려면 RHACS(Red Hat Advanced Cluster Security for Kubernetes) 서비스를 클러스터에 배포해야 합니다. 플랫폼 구성 → 클러스터 보기로 이동하거나 roxctl
CLI를 사용하여 RHACS 포털에서 배포 파일을 생성할 수 있습니다.
3.1. 사전 요구 사항
다음 명령을 사용하여
ROX_ENDPOINT
환경 변수를 구성했습니다.$ export ROX_ENDPOINT=<host:port> 1
- 1
ROX_ENDPOINT
환경 변수에 저장하려는 호스트 및 포트 정보입니다.
3.2. 센서 배포 파일 생성
Kubernetes 시스템의 파일 생성
프로세스
다음 명령을 실행하여 Kubernetes 클러스터에 필요한 센서 구성을 생성하고 Central 인스턴스와 연결합니다.
$ roxctl sensor generate k8s --name <cluster_name> --central "$ROX_ENDPOINT"
OpenShift Container Platform 시스템의 파일 생성
프로세스
다음 명령을 실행하여 OpenShift Container Platform 클러스터에 필요한 센서 구성을 생성하고 Central 인스턴스와 연결합니다.
$ roxctl sensor generate openshift --openshift-version <ocp_version> --name <cluster_name> --central "$ROX_ENDPOINT" 1
- 1
--openshift-version
옵션의 경우 클러스터의 주요 OpenShift Container Platform 버전 번호를 지정합니다. 예를 들어 OpenShift Container Platform 버전3.x
의 경우3
을 지정하고 OpenShift Container Platform 버전4.x
의 경우4
를 지정합니다.
시스템 아키텍처에 따라 사용해야 할 다른 옵션을 보려면
--help
출력을 읽으십시오.--central
에 제공하는 엔드포인트가 Red Hat Advanced Cluster Security for Kubernetes 서비스를 배포하는 클러스터에서 도달할 수 있는지 확인합니다.중요HAProxy, AWS Application Load Balancer(ALB) 또는 AWS Elastic Load Balancing(ELB)과 같은 비gRPC 지원 로드 밸런서를 사용하는 경우 다음 지침을 따르십시오.
-
WebSocket 보안(
wss
) 프로토콜을 사용합니다.wss
를 사용하려면 주소 앞에wss://
, 그리고 주소 뒤에 포트 번호를 추가합니다. 예를 들면 다음과 같습니다.
$ roxctl sensor generate k8s --central wss://stackrox-central.example.com:443
3.3. sensor.sh 스크립트를 사용하여 센서 설치
Sensor 배포 파일을 생성할 때 roxctl
은 작업 디렉터리에 sensor-<cluster_name
>이라는 디렉터리를 생성합니다. 센서를 설치하는 스크립트는 이 디렉터리에 있습니다.
프로세스
센서 설치 스크립트를 실행하여 센서를 설치합니다.
$ ./sensor-<cluster_name>/sensor.sh
센서를 설치하는 데 필요한 권한이 없다는 경고가 표시되면 화면의 지침을 따르거나 클러스터 관리자에게 도움을 요청하십시오.
3.4. 기존 클러스터의 센서 번들 다운로드
프로세스
다음 명령을 실행하여 클러스터
이름 또는
의 센서 번들을 다운로드합니다.ID
를 지정하여 기존 클러스터$ roxctl sensor get-bundle <cluster_name_or_id>
3.5. 클러스터 통합 삭제
프로세스
클러스터를 삭제하기 전에 Central에서 제거할 올바른 클러스터 이름이 있는지 확인합니다.
$ roxctl cluster delete --name=<cluster_name>
중요클러스터 통합을 삭제해도 설치 방법에 따라 클러스터에서 실행되는 RHACS 서비스가 제거되지 않습니다. 센서 설치 번들에서
delete-sensor.sh
스크립트를 실행하여 서비스를 제거할 수 있습니다.
4장. 정책 규정 준수 확인
roxctl
CLI를 사용하여 배포 YAML 파일 및 이미지에서 정책 준수를 확인할 수 있습니다.
4.1. 사전 요구 사항
다음 명령을 사용하여
ROX_ENDPOINT
환경 변수를 구성했습니다.$ export ROX_ENDPOINT=<host:port> 1
- 1
ROX_ENDPOINT
환경 변수에 저장하려는 호스트 및 포트 정보입니다.
4.2. 출력 형식 구성
roxctl 배포 검사 또는
경우 명령에 roxctl image 검사
명령을 사용하여 정책 준수를 확인하는-o
옵션을 사용하여 출력 형식을 지정하고 형식을 json
,테이블
,csv
또는 junit
으로 지정할 수 있습니다. 이 옵션은 명령의 출력이 터미널에 표시되는 방식을 결정합니다.
예를 들어 다음 명령은 배포를 확인한 다음 결과를 csv
형식으로 표시합니다.
$ roxctl deployment check --file =<yaml_filename> -o csv
출력 형식에 -o
옵션을 지정하지 않으면 다음과 같은 기본 동작이 사용됩니다.
-
배포 검사
형식 및이미지 검사
명령은테이블입니다
. -
이미지 검사
명령의 기본 출력 형식은json
입니다. 이는 이전 버전의 CLI와 호환성을 위해 이전 JSON 형식 출력입니다. 새 JSON 형식으로 출력을 가져오려면 format으로 옵션을-o json
으로 지정합니다. 문제 해결을 위해 데이터를 수집할 때 이전 JSON 형식 출력을 사용합니다.
출력을 구성하는 데 다양한 옵션을 사용할 수 있습니다. 다음 표에는 사용 가능한 옵션과 형식이 나열되어 있습니다.
옵션 | 설명 | 형식 |
---|---|---|
| JSON 출력을 컴팩트 형식으로 표시하려면 이 옵션을 사용합니다. |
|
| 이 옵션을 사용하여 사용자 지정 헤더를 지정합니다. |
|
| 출력에서 헤더 행을 생략하려면 이 옵션을 사용합니다. |
|
| 이 옵션을 사용하여 출력에서 특정 항목을 선택하려면 GJSON 경로를 지정합니다. 예를 들어 배포 점검의 정책 이름과 심각도 를 가져오려면 다음 명령을 사용합니다. $ roxctl deployment check --file=<yaml_filename> \ -o table --headers POLICY-NAME,SEVERITY \ --row-jsonpath-expressions="{results..violatedPolicies..name,results..violatedPolicies..severity}" |
|
| 동일한 값을 가진 테이블 셀을 병합하려면 이 옵션을 사용합니다. |
|
| 헤더 행을 출력에 주석으로 포함하려면 이 옵션을 사용합니다. |
|
| 이 옵션을 사용하여 JUnit 테스트 모음의 이름을 지정합니다. |
|
4.3. 배포 YAML 파일 확인
프로세스
다음 명령을 실행하여 YAML 배포 파일에서 보안 정책의 빌드 시간 및 배포 시간 위반을 확인합니다.
$ roxctl deployment check --file=<yaml_filename>
형식은 API 참조에 정의되어 있습니다. RHACS(Red Hat Advanced Cluster Security for Kubernetes)가 관련 레지스트리 및 스캐너에서 이미지 메타데이터 및 이미지 검사 결과를 다시 가져오도록
--force
옵션을 추가합니다.참고특정 이미지 검사 결과를 확인하려면
이미지
리소스에 대한읽기
및쓰기
권한이 모두 있는 토큰이 있어야 합니다. 기본 지속적 통합 시스템 역할에는 이미 필요한 권한이 있습니다.이 명령은 다음 항목의 유효성을 검사합니다.
- 리소스 제한 또는 권한 옵션과 같은 YAML 파일의 구성 옵션
- 구성 요소 또는 취약점과 같이 YAML 파일에서 사용되는 이미지의 측면
4.4. 이미지 확인
프로세스
다음 명령을 실행하여 이미지에서 보안 정책의 빌드 시간 위반을 확인합니다.
$ roxctl image check --image=<image_name>
형식은 API 참조에 정의되어 있습니다. RHACS(Red Hat Advanced Cluster Security for Kubernetes)가 관련 레지스트리 및 스캐너에서 이미지 메타데이터 및 이미지 검사 결과를 다시 가져오도록
--force
옵션을 추가합니다.참고특정 이미지 검사 결과를 확인하려면
이미지
리소스에 대한읽기
및쓰기
권한이 모두 있는 토큰이 있어야 합니다. 기본 지속적 통합 시스템 역할에는 이미 필요한 권한이 있습니다.
추가 리소스
4.5. 이미지 검사 결과 확인
특정 이미지에 대한 검사 결과를 확인할 수도 있습니다.
프로세스
다음 명령을 실행하여 이미지에 있는 구성 요소 및 취약점을 JSON 형식으로 반환합니다.
$ roxctl image scan --image <image_name>
형식은 API 참조에 정의되어 있습니다. RHACS(Red Hat Advanced Cluster Security for Kubernetes)가 관련 레지스트리 및 스캐너에서 이미지 메타데이터 및 이미지 검사 결과를 다시 가져오도록
--force
옵션을 추가합니다.참고특정 이미지 검사 결과를 확인하려면
이미지
리소스에 대한읽기
및쓰기
권한이 모두 있는 토큰이 있어야 합니다. 기본 지속적 통합 시스템 역할에는 이미 필요한 권한이 있습니다.
추가 리소스
4.6. roxctl image 명령 개요
특정 이미지에서 실행할 수 있는 명령입니다.
사용법
$ roxctl image [command] [flags]
명령 | 설명 |
---|---|
| 이미지에 빌드 시간 정책 위반이 있는지 확인하고 보고합니다. |
| 지정된 이미지를 스캔하고 검사 결과를 반환합니다. |
옵션 | 설명 |
---|---|
|
요청의 최대 기간을 나타내는 API 요청의 시간 제한을 설정합니다. 기본값은 |
4.6.1. 상위 명령에서 상속된 roxctl image 명령 옵션
roxctl image
명령은 상위 roxctl
명령에서 상속된 다음 옵션을 지원합니다.
옵션 | 설명 |
---|---|
|
보안 연결을 위한 사용자 정의 CA 인증서 파일 경로를 지정합니다. 또는 |
|
연결 성능을 개선하기 위해 |
|
서비스에 연결할 엔드포인트를 설정합니다. 또는 |
|
모든 연결에 대해 강제로 HTTP/1을 사용합니다. 또는 |
|
비보안 연결 옵션을 활성화합니다. 또는 |
|
TLS 인증서 검증을 건너뜁니다. 또는 |
|
색상 출력을 비활성화합니다. 또는 |
|
기본 인증의 암호를 지정합니다. 또는 |
|
암호화되지 않은 연결을 사용합니다. 또는 |
|
SNI에 사용할 TLS 서버 이름을 설정합니다. 또는 |
|
인증을 위해 지정된 파일에 제공된 API 토큰을 사용합니다. 또는 |
이러한 옵션은 roxctl image
명령의 모든 하위 명령에 적용됩니다.
4.6.2. roxctl 이미지 검사
지정된 이미지를 스캔하고 검사 결과를 반환합니다.
사용법
$ roxctl image scan [flags]
옵션 | 설명 |
---|---|
| 이미지 검사를 위임할 클러스터 이름 또는 ID를 지정합니다. |
|
JSON 출력을 컴팩트 형식으로 출력합니다. 기본값은 |
|
중앙의 캐시를 무시하고 스캐너에서 새로 다시 가져옵니다. 기본값은 |
|
테이블 형식 출력에 출력할 헤더를 지정합니다. 기본값은 COMPONENT , |
|
CSV 테이블 형식 출력에서 헤더를 주석으로 출력합니다. 기본값은 |
|
이미지 이름 및 검사에 대한 참조를 지정합니다. 예를 들어 |
|
검사 결과에 sno Cryostated 및 unsnoounceed CVE를 포함합니다. 기본값은 |
|
표 형식 출력에서 중복 셀을 병합합니다. 기본값은 |
|
테이블 형식 출력에 대한 헤더를 출력하지 마십시오. 기본값은 |
|
출력 형식을 지정합니다. 출력 형식에는 |
|
오류로 종료하기 전에 재시도 횟수를 지정합니다. 기본값은 |
|
재시도 횟수를 초 단위로 대기하도록 시간을 설정합니다. 기본값은 |
|
JSON 오브젝트에서 행을 생성하려면 JSON 경로 표현식을 지정합니다. 자세한 내용은 |
4.6.3. roxctl 이미지 검사
이미지에 빌드 시간 정책 위반이 있는지 확인하고 보고합니다.
사용법
$ roxctl image check [flags]
옵션 | 설명 |
---|---|
| 실행할 정책 카테고리 목록입니다. 기본적으로 모든 정책 범주가 사용됩니다. |
| 평가 컨텍스트로 사용할 클러스터 이름 또는 ID를 정의합니다. |
|
JSON 출력을 컴팩트 형식으로 출력합니다. 기본값은 |
|
이미지의 중앙 캐시를 무시하고 스캐너에서 새 가져오기를 강제 적용합니다. 기본값은 |
|
표 형식 출력에 출력할 헤더를 정의합니다. 기본값은 |
|
CSV 테이블 형식 출력에서 헤더를 주석으로 출력합니다. 기본값은 |
|
이미지 이름 및 참조를 지정합니다. 예를 들면 |
|
JUnit 테스트 모음의 이름을 설정합니다. 기본값은 |
|
표 형식 출력에서 중복 셀을 병합합니다. 기본값은 |
|
테이블 형식 출력에 대한 헤더를 출력하지 마십시오. 기본값은 |
|
출력 형식을 선택합니다. 출력 형식에는 |
|
오류로 종료하기 전에 재시도 횟수를 설정합니다. 기본값은 |
|
재시도 횟수를 초 단위로 대기하도록 시간을 설정합니다. 기본값은 |
|
JSON 경로 표현식을 사용하여 JSON 오브젝트에서 행을 생성합니다. 자세한 내용은 |
|
위반 시 알림을 보낼지 여부를 정의합니다. 기본값은 |
5장. 디버깅 문제
중앙에서는 컨테이너 로그에 정보를 저장합니다.
5.1. 사전 요구 사항
다음 명령을 사용하여
ROX_ENDPOINT
환경 변수를 구성했습니다.$ export ROX_ENDPOINT=<host:port> 1
- 1
ROX_ENDPOINT
환경 변수에 저장하려는 호스트 및 포트 정보입니다.
5.2. 로그 보기
oc
또는 kubectl
명령을 사용하여 중앙 Pod의 로그를 볼 수 있습니다.
프로세스
kubectl
을 사용하여 중앙 Pod의 로그를 보려면 다음 명령을 실행합니다.$ kubectl logs -n stackrox <central_pod>
oc
를 사용하여 중앙 Pod의 로그를 보려면 다음 명령을 실행합니다.$ oc logs -n stackrox <central_pod>
5.3. 현재 로그 수준 보기
로그 수준을 변경하여 중앙 로그에서 자세한 정보를 확인할 수 있습니다.
프로세스
다음 명령을 실행하여 현재 로그 수준을 확인합니다.
$ roxctl central debug log
추가 리소스
5.4. 로그 수준 변경
프로세스
다음 명령을 실행하여 로그 수준을 변경합니다.
$ roxctl central debug log --level=<log_level> 1
- 1
- <
log_level
>에 허용되는 값은Panic
,Fatal
,Error
,warn
,Info
,Debug
입니다.
추가 리소스
5.5. 디버깅 정보 검색
프로세스
다음 명령을 실행하여 문제 조사를 위한 디버깅 정보를 수집합니다.
$ roxctl central debug dump
- RHACS 관리자 암호 또는 API 토큰 및 중앙 주소를 사용하여 진단 번들을 생성하려면 roxctl CLI를 사용하여 진단 번들 생성 절차를 따르십시오.
추가 리소스
5.6. roxctl central debug 명령 개요
Central 서비스를 디버깅합니다.
사용법
$ roxctl central debug [flags]
5.6.1. 상위 명령에서 상속된 roxctl 중앙 디버그 명령 옵션
roxctl central debug
명령은 상위 roxctl
명령에서 상속된 다음 옵션을 지원합니다.
옵션 | 설명 |
---|---|
|
보안 연결을 위한 사용자 정의 CA 인증서 파일 경로를 지정합니다. 또는 |
|
연결 성능을 개선하기 위해 |
|
서비스에 연결할 엔드포인트를 설정합니다. 또는 |
|
모든 연결에 대해 강제로 HTTP/1을 사용합니다. 또는 |
|
비보안 연결 옵션을 활성화합니다. 또는 |
|
TLS 인증서 검증을 건너뜁니다. 또는 |
|
색상 출력을 비활성화합니다. 또는 |
|
기본 인증의 암호를 지정합니다. 또는 |
|
암호화되지 않은 연결을 사용합니다. 또는 |
|
SNI에 사용할 TLS 서버 이름을 설정합니다. 또는 |
|
인증을 위해 지정된 파일에 제공된 API 토큰을 사용합니다. 또는 |
이러한 옵션은 roxctl central debug
명령의 모든 하위 명령에 적용됩니다.
5.6.2. roxctl central debug db
데이터베이스 디버깅을 제어합니다.
사용법
$ roxctl central debug db [flags]
옵션 | 설명 |
---|---|
|
요청의 최대 기간을 나타내는 API 요청의 시간 제한을 지정합니다. 기본값은 |
5.6.3. roxctl 중앙 디버그 로그
현재 로그 수준을 검색합니다.
사용법
$ roxctl central debug log [flags]
옵션 | 설명 |
---|---|
|
모듈을 설정할 로그 수준을 지정합니다. 유효한 값에는 |
| 명령을 적용할 모듈을 지정합니다. |
|
API 요청을 다시 시도한 후 타임아웃을 지정합니다. 값이 0이면 다시 시도하지 않고 전체 요청 기간이 대기됩니다. 기본값은 |
|
API 요청에 대한 시간 제한을 지정합니다. 이는 요청의 최대 기간입니다. 기본값은 |
5.6.4. roxctl 중앙 디버그 덤프
Central에 대한 디버그 정보가 포함된 번들을 다운로드합니다.
사용법
$ roxctl central debug dump [flags]
옵션 | 설명 |
---|---|
|
|
| 번들 콘텐츠의 출력 디렉터리를 지정합니다. 기본값은 현재 디렉터리 내에서 자동으로 생성된 디렉터리 이름입니다. |
|
API 요청에 대한 시간 제한을 지정합니다. 이는 요청의 최대 기간입니다. 기본값은 |
5.6.5. roxctl central debug db stats
중앙 데이터베이스의 통계를 제어합니다.
사용법
$ roxctl central debug db stats [flags]
5.6.6. roxctl central debug authz-trace
디버깅을 위해 Central에서 권한 부여 추적을 활성화하거나 비활성화합니다.
사용법
$ roxctl central debug authz-trace [flags]
옵션 | 설명 |
---|---|
|
요청의 최대 기간을 나타내는 API 요청의 시간 제한을 지정합니다. 기본값은 |
5.6.7. roxctl central debug db stats reset
중앙 데이터베이스의 통계를 재설정합니다.
사용법
$ roxctl central debug db stats reset [flags]
5.6.8. roxctl central debug download-diagnostics
플랫폼에 대한 진단 정보의 스냅샷이 포함된 번들을 다운로드합니다.
사용법
$ roxctl central debug download-diagnostics [flags]
옵션 | 설명 |
---|---|
| 로그를 수집하려는 센서 클러스터의 쉼표로 구분된 목록을 지정합니다. |
| 진단 번들을 저장할 출력 디렉터리를 지정합니다. |
| 센서 클러스터에서 로그를 수집할 타임스탬프를 지정합니다. |
|
요청의 최대 기간을 지정하는 API 요청의 시간 제한을 지정합니다. 기본값은 |
6장. 빌드 시간 네트워크 정책 생성
build-time 네트워크 정책 생성기는 roxctl
CLI에 포함되어 있습니다. 빌드 시간 네트워크 정책 생성 기능의 경우 roxctl
CLI는 RHACS Central과 통신할 필요가 없으므로 모든 개발 환경에서 사용할 수 있습니다.
6.1. 빌드 시간 네트워크 정책 생성기 사용
빌드 시간 네트워크 정책 생성은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
사전 요구 사항
-
빌드 시간 네트워크 정책 생성기는 명령을 실행할 때 지정하는 디렉터리를 재귀적으로 스캔합니다. 따라서 명령을 실행하기 전에
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> 1
- 1
- Kubernetes 매니페스트가 있는 폴더의 경로를 지정합니다.
roxctl netpol generate
명령은 다음 옵션을 지원합니다.
| 설명 |
|
|
| 생성된 정책을 대상 폴더에 저장합니다. 정책당 하나의 파일입니다. |
| 생성된 정책을 단일 YAML 파일에 저장하고 병합합니다. |
|
처음 발생한 오류 발생 시 실패합니다. 기본값은 |
| 이미 존재하는 경우 출력 경로를 제거합니다. |
|
경고를 오류로 처리합니다. 기본값은 |
7장. roxctl CLI를 사용하여 이미지 스캔
roxctl
CLI를 사용하여 OpenShift Container Platform 통합 이미지 레지스트리와 같은 클러스터 로컬 레지스트리를 포함하여 이미지 레지스트리에 저장된 이미지를 스캔할 수 있습니다.
7.1. 원격 클러스터를 사용하여 이미지 스캔
위임된 검사 구성에 적절한 클러스터를 지정하거나 다음 절차에 설명된 클러스터 매개 변수를 통해 원격 클러스터를 사용하여 클러스터 로컬 레지스트리에서 이미지를 스캔할 수 있습니다.
위임된 이미지 스캔을 구성하는 방법에 대한 자세한 내용은 위임 된 이미지 검사 구성을 참조하십시오.
프로세스
다음 명령을 실행하여 원격 클러스터에서 지정된 이미지를 스캔합니다.
$ roxctl image scan \ --image=<image_registry>/<image_name> \1 --cluster=<cluster_detail> \2 [flags] 3
- 1
- <
image_registry
> 의 경우 이미지가 있는 레지스트리를 지정합니다(예:image-registry.openshift-image-registry.svc:5000/
). <image_name
>의 경우 검사할 이미지 이름을 지정합니다(예:default/image-stream:latest
). - 2
- &
lt;cluster_detail&
gt;의 경우 원격 클러스터의 이름 또는 ID를 지정합니다. 예를 들어remote
라는 이름을 지정합니다. - 3
- 선택 사항:
[flags]
의 경우 매개변수를 지정하여 명령 동작을 수정할 수 있습니다.선택적 매개변수에 대한 자세한 내용은 roxctl image scan 명령 옵션을 참조하십시오.
출력 예
{ "Id": "sha256:3f439d7d71adb0a0c8e05257c091236ab00c6343bc44388d091450ff58664bf9", 1 "name": { 2 "registry": "image-registry.openshift-image-registry.svc:5000", 3 "remote": "default/image-stream", 4 "tag": "latest", 5 "fullName": "image-registry.openshift-image-registry.svc:5000/default/image-stream:latest" 6 }, [...]
7.2. roxctl image scan 명령 옵션
roxctl image scan
명령은 다음 옵션을 지원합니다.
옵션 | 설명 |
---|---|
| 이미지 스캔을 특정 클러스터에 위임합니다. |
|
JSON 출력을 컴팩트 형식으로 출력합니다. 기본값은 |
|
검사에 대한 중앙의 캐시를 무시하고 스캐너에서 새로 다시 가져옵니다. 기본값은 |
|
테이블 형식으로 헤더를 인쇄합니다. 기본값에는 COMPONENT |
|
CSV 테이블 형식 출력에서 헤더를 주석으로 출력합니다. 기본값은 |
|
|
| 검사할 이미지 이름 및 참조를 지정합니다. |
|
sno Cryostated 및 nononoounceed 일반적인 취약점 및 노출 (CVE)을 모두 반환합니다. 기본값은 |
|
표 형식 출력에서 중복 셀을 병합합니다. 기본값은 |
|
테이블 형식 형식의 헤더를 출력하지 마십시오. 기본값은 |
|
출력 형식을 지정합니다. 형식을 선택하여 결과 표시를 사용자 지정할 수 있습니다. 형식에는 |
|
오류와 함께 작업이 중단되기 전에 재시도 횟수를 설정합니다. 기본값은 |
|
재시도 횟수를 기다리도록 시간을 초 단위로 설정합니다. 기본값은 |
|
JSON 경로 표현식을 사용하여 JSON 오브젝트에서 행을 생성합니다. 자세한 내용은 |