IBM Cloud Docs
지정된 시간 이전에 생성된 준수 증거 제거

지정된 시간 이전에 생성된 준수 증거 제거

DevSecOps 파이프라인에 의해 생성된 상당한 양의 증거로 인해 Git 저장소가 계속 확장되어 파이프라인 실행 중에 성능 저하 및 장애가 발생합니다. 따라서 증거 가지치기 도구를 사용하여 이전 증거를 제거해야 합니다.

DevSecOps 참조 아키텍처의 중요한 측면에 대한 증거 수집. 준수 증거는 감사 추적이 준수 감사 중에 추구하는 감사 추적을 설정합니다. DevSecOps의 목표 중 하나는 감사 가능한 증거 잠금 장치에서 증거의 생성 및 저장을 자동화하는 것입니다. 하우징 증거의 기본 로커는 Git 저장소입니다.

Cloud Object Storage 버킷은 보조 증거 저장소로 기능하며 365일의 보유 정책을 기반으로 자동으로 증거를 정리합니다. 그러나 기본 증거 저장소 역할을 하는 Git 증거 저장소는 365일 임계값을 능가하는 증거를 명시적으로 정리해야 합니다. 증거 정리 도구는 Git 증거 저장소에 지정된 시간 이전에 생성된 증거를 제거합니다.

정리된 증거가 여전히 재고 자산에 의해 참조되는 경우, CD 파이프라인이 중단됩니다. 이 경우 최신 증거를 사용하도록 앱을 다시 빌드하십시오.

증거 가지치기 도구 실행하기

증거 제거 트리거는 준수 파이프라인의 v9.16.0 릴리스 이후에 작성되는 DevSecOps 파이프라인에 대해 사전 구성되어 있습니다. 그러나 기존 DevSecOps 도구 체인이 있는 경우 다음 단계를 수행하십시오.

  1. 수동 트리거 추가하기

    증거 가지치기 도구를 구성하기 위한 파이프라인 (CI, CD 또는 CC) 의 선택에 대한 명확한 지침은 없지만 CC 파이프라인 내에서 설정해야 한다. 파이프라인 선택에 따라 파이프라인 구성 " > 트리거 > 추가 로 이동하여 수동을 선택하십시오.

    수동 트리거 추가
    그림 1. 정리 증거에 대한 수동 트리거

  2. 트리거에 대한 프룬 증거 리스너 선택

    하나의 파이프라인의 컨텍스트에서 증거 가지치기 도구가 파이프라인에 대한 새 테크톤 리스너로 표시됩니다. prune-방증-리스너를 선택하십시오.

    증거 리스너 제거
    그림 2. 증거를 제거하기 위한 하나의 파이프라인 Tekton 리스너

  3. 트리거에 대해 다음 환경 특성을 구성하십시오.

    Table 1. Prune evidence trigger parameters
    이름 유형 설명 필수 또는 선택사항
    evidence-retention-days 텍스트 증거가 보유되는 지속 기간 (일) 입니다. 기본값은 365입니다. 필수
    evidence-pruner-batch-size 텍스트 풀 요청이 업데이트되기 전에 정리를 수행하는 증거 파일의 수입니다. 기본값은 1000입니다. 선택사항
    evidence-pruner-branch 텍스트 기본 분기 내에서 증거의 정리 및 승격을 용이하게 하기 위해 작성된 증거 저장소 Git 저장소 내의 분기입니다. 기본값은 chore/prune-evidences입니다. 선택사항
    opt-in-v1-evidence-pruner 텍스트 1로 설정하면 모든 v1 증거 파일이 제거됩니다. 기본값은 0입니다. 선택사항
    opt-in-v2-evidence-pruner 텍스트 1로 설정되면 evidence-retention-days 일 이전에 생성된 모든 v2 증거 파일이 제거됩니다. 기본값은 0입니다. 선택사항

    증거 프룬 트리거 구성
    그림 3. 환경 특성 구성

  4. 수동 트리거 실행하기

    프룬 프룬 트리거가 적절한 환경 특성으로 구성된 경우 다른 파이프라인과 유사하게 증거 프룬 파이프라인을 트리거할 수 있습니다. 트리거는 다음 단계를 수행합니다.

    1. 증거 저장소를 복제한다.
    2. 현재 날짜 이전에 지정된 evidence-retention-days 수를 작성한 모든 파일 목록을 생성합니다.
    3. 파일의 초기 일괄처리를 삭제합니다. 여기서 일괄처리 크기는 evidence-pruner-batch-size로 판별됩니다.
    4. 소스 분기로 evidence-pruner-branch 를 사용하고 기본 구성된 브랜치를 대상으로 사용하여 증거 저장소에 대한 풀 요청을 작성합니다.
    5. 2단계에서 생성된 목록을 통해 반복하여 3단계의 저장소에서 해당 파일을 제거하고 4단계에서 가져오기 요청을 업데이트합니다.
    6. 풀 요청에 대한 링크를 포함하여 활동의 요약을 생성합니다.
  5. 풀 요청 검토 및 병합

    증거 저장소에 대한 풀 요청이 생성되면 이를 검토하고 병합할 수 있습니다. 다음은 증거 제거 파이프라인이 완료된 후의 샘플 가져오기 요청 방법에 대한 예제입니다.

    풀 요청 병합
    그림 4. 가져오기 요청 병합

트리거 사용자 정의하기

증거 정리 도구는 DevSecOps 파이프라인에서 사용자 정의 태스크 를 사용하여 구현됩니다. 기본 구현을 사용해야 합니다. 그러나 기본 구현을 사용자 정의 구현으로 확장하거나 바꿀 수도 있습니다. .pipeline-config.yaml에 스테이지 정의를 도입하여 기본값을 사용자 정의하십시오. 이는 파이프라인이 기본 스테이지 정의를 대체하도록 지시합니다.

다음 코드 스니펫은 compliance-baseimage Docker 이미지 내 /opt/commons/prune-evidence/run.sh 에 있는 증거 제거 스크립트의 기본 구현을 시작합니다. 기본 구현을 사용자 정의하려면 이 스니펫을 사용자 고유의 구현으로 대체하십시오.


  prune-evidence:
    image: icr.io/continuous-delivery/pipeline/pipeline-base-ubi:3.18
    dind: false
    abort_on_failure: stopAndFail
    image_pull_policy: IfNotPresent
    script: |
      #!/bin/sh

      "/opt/commons/prune-evidence/run.sh"

시간 트리거에 대한 리스너 구성

다음과 같이 시간 지정된 트리거를 구성하여 주기적 간격으로 시작할 증거 제거 활동을 자동화하십시오.

  1. 파이프라인 구성 > 트리거 > 추가 > 시간으로 이동하십시오.
  2. EventListener 필드에서 prune-방증-리스너 를 선택하십시오.
  3. CRON 표현식 필드에 트리거 시간을 설정하십시오.

시간 지정된 트리거 추가
그림 5. 타이밍 트리거