2.4. CI 파이프라인 통합
이러한 절차를 완료한 후 다음 단계는 CI 파이프라인과 통합하는 것입니다.
각 CI 시스템에는 약간 다른 구성이 필요할 수 있습니다.
2.4.1. Jenkins 사용
Jenkins와 통합하려면 StackRox Container Image Scanner Jenkins 플러그인을 사용합니다. 이 플러그인은 Jenkins 자유 스타일 프로젝트와 파이프라인 모두에서 사용할 수 있습니다.
2.4.2. CircleCI 사용
Red Hat Advanced Cluster Security for Kubernetes를 CircleCI와 통합할 수 있습니다.
사전 요구 사항
-
이미지
리소스에 대한읽기
및쓰기
권한이 있는 토큰이 있습니다. - Docker Hub 계정의 사용자 이름과 암호가 있습니다.
프로세스
- CircleCI에 로그인하고 기존 프로젝트를 열거나 새 프로젝트를 생성합니다.
- 프로젝트 설정을 클릭합니다.
- 환경 변수를 클릭합니다.
변수 추가를 클릭하고 다음 세 가지 환경 변수를 생성합니다.
- Name:STACKROX_CENTRAL_HOST - Central의 DNS 이름 또는 IP 주소입니다.
- Name:ROX_API_TOKEN - Red Hat Advanced Cluster Security for Kubernetes에 액세스하는 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
파일이 이미 있는 경우 기존 구성 파일에 지정된 세부 정보가 포함된 새 작업 섹션을 추가합니다.- 구성 파일을 리포지토리에 커밋한 후 CircleCI 대시보드의 작업 대기열로 이동하여 빌드 정책 시행을 확인합니다.