2.4. CI 파이프라인과 통합
이러한 절차를 완료한 후 다음 단계는 CI 파이프라인과 통합하는 것입니다.
각 CI 시스템에는 약간 다른 구성이 필요할 수 있습니다.
2.4.1. Jenkins 사용
Jenkins와 통합하려면 StackRox 컨테이너 이미지 스캐너 Jenkins 플러그인을 사용합니다. 이 플러그인은 Jenkins freestyle 프로젝트 및 파이프라인 모두에서 사용할 수 있습니다.
2.4.2. CircleCI 사용
Red Hat Advanced Cluster Security for Kubernetes를 CircleCI와 통합할 수 있습니다.
Prerequisetes
-
Image
리소스에 대한읽기
및쓰기
권한이 있는 토큰이 있습니다. - Docker Hub 계정에 대한 사용자 이름과 암호가 있습니다.
절차
- CircleCI에 로그인하고 기존 프로젝트를 열거나 새 프로젝트를 생성합니다.
- 프로젝트 설정을 클릭합니다.
- 환경 변수를 클릭합니다.
변수 추가를 클릭하고 다음 세 가지 환경 변수를 생성합니다.
- name :STACKROX_CENTRAL_HOST - 중앙의 DNS 이름 또는 IP 주소입니다.
- 이름:ROX_API_TOKEN - Kubernetes용 Red Hat Advanced Cluster Security에 액세스할 수 있는 API 토큰입니다.
- name:DOCKERHUB_PASSWORD - Docker Hub 계정의 암호입니다.
- name:DOCKERHUB_USER - Docker Hub 계정의 사용자 이름입니다.
-
CircleCI 구성 파일이 없는 경우 선택한 프로젝트의 로컬 코드 리포지토리의 루트 디렉터리에
.circleci
라는 디렉터리를 생성합니다. .circleci
디렉터리에 다음 행을 사용하여config.yml
구성 파일을 만듭니다.version: 2 jobs: check-policy-compliance: docker: - image: 'circleci/node:latest' auth: username: $DOCKERHUB_USER password: $DOCKERHUB_PASSWORD steps: - checkout - run: name: Install roxctl command: | curl -H "Authorization: Bearer $ROX_API_TOKEN" https://$STACKROX_CENTRAL_HOST:443/api/cli/download/roxctl-linux -o roxctl && chmod +x ./roxctl - run: name: Scan images for policy deviations and vulnerabilities command: | ./roxctl image check --endpoint "$STACKROX_CENTRAL_HOST:443" --image "<your_registry/repo/image_name>" 1 - run: name: Scan deployment files for policy deviations command: | ./roxctl image check --endpoint "$STACKROX_CENTRAL_HOST:443" --image "<your_deployment_file>" 2 # Important note: This step assumes the YAML file you'd like to test is located in the project. workflows: version: 2 build_and_test: jobs: - check-policy-compliance
참고리포지토리에 CircleCI의
config.yml
파일이 이미 있는 경우 기존 구성 파일에 지정된 세부 정보가 포함된 새 jobs 섹션을 추가합니다.- 구성 파일을 리포지토리에 커밋한 후 CircleCI 대시보드의 작업 대기열로 이동하여 빌드 정책 적용을 확인합니다.