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
구성 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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>" - run: name: Scan deployment files for policy deviations command: | ./roxctl image check --endpoint "$STACKROX_CENTRAL_HOST:443" --image "<your_deployment_file>" # 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
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 대시보드의 작업 대기열로 이동하여 빌드 정책 시행을 확인합니다.