InfoGrab Docs

튜토리얼: 파이프라인 실행 정책 설정

요약

이 튜토리얼에서는 inject_policy 전략을 사용하여 파이프라인 실행 정책을 생성하고 구성하는 방법을 보여줍니다. 이 튜토리얼에서는 파이프라인 실행 정책을 만들고, 테스트 프로젝트에 연결하고, 파이프라인이 실행되는지 확인할 수 있습니다.

이 튜토리얼에서는 inject_policy 전략을 사용하여 파이프라인 실행 정책을 생성하고 구성하는 방법을 보여줍니다. 이러한 정책을 사용하면 정책이 연결된 프로젝트에서 필수 파이프라인이 항상 실행되도록 할 수 있습니다.

이 튜토리얼에서는 파이프라인 실행 정책을 만들고, 테스트 프로젝트에 연결하고, 파이프라인이 실행되는지 확인할 수 있습니다.

파이프라인 실행 정책을 설정하려면:

  1. 테스트 프로젝트 만들기.
  2. CI/CD 구성 파일 만들기.
  3. 파이프라인 실행 정책 추가.
  4. 파이프라인 실행 정책 테스트.

시작하기 전에#

이 튜토리얼을 완료하려면 다음이 필요합니다:

  • 기존 그룹에서 프로젝트를 만들 수 있는 권한.
  • 보안 정책을 만들고 연결할 수 있는 권한.

테스트 프로젝트 만들기#

먼저 파이프라인 실행 정책을 적용할 테스트 프로젝트를 만듭니다:

  1. 상단 바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 New project를 선택합니다.
  3. Create blank project를 선택합니다.
  4. 필드를 작성합니다.
    • Project name: my-pipeline-execution-policy.
    • Enable Static Application Security Testing (SAST) 확인란을 선택합니다.
  5. Create project를 선택합니다.

CI/CD 구성 파일 만들기#

다음으로 파이프라인 실행 정책이 적용할 CI/CD 구성 파일을 만듭니다:

  1. 왼쪽 사이드바에서 Code > Repository를 선택합니다.

  2. Add(+) 드롭다운 목록에서 New file을 선택합니다.

  3. Filename 필드에 pipeline-config.yml을 입력합니다.

  4. 파일 내용에 다음을 복사합니다:

    ---
    # This file defines the CI/CD jobs that will be
    # enforced by the pipeline execution policy
    enforced-security-scan:
      stage: .pipeline-policy-pre
      script:
        - echo "Running enforced security scan from pipeline execution policy"
        - echo "This job cannot be skipped by developers"
        - echo "Checking for security vulnerabilities..."
        - echo "Security scan completed successfully"
      rules:
        - when: always
    
    enforced-test-job:
      stage: test
      script:
        - echo "Running enforced test job in test stage"
        - echo "Creating test stage if it doesn't exist"
        - echo "Performing mandatory testing requirements..."
        - echo "Enforced tests completed successfully"
      rules:
        - when: always
    
    enforced-compliance-check:
      stage: .pipeline-policy-post
      script:
        - echo "Running enforced compliance check"
        - echo "Verifying pipeline compliance requirements"
        - echo "Compliance check passed"
      rules:
        - when: always
    
  5. Commit message 필드에 Add pipeline execution policy configuration을 입력합니다.

  6. Commit changes를 선택합니다.

파이프라인 실행 정책 추가#

다음으로 테스트 프로젝트에 파이프라인 실행 정책을 추가합니다:

  1. Secure > Policies를 선택합니다.

  2. New policy를 선택합니다.

  3. Pipeline execution policy에서 Select policy를 선택합니다.

  4. 필드를 작성합니다.

    • Name: Enforce Security and Compliance Jobs
    • Description: Enforces required security and compliance jobs across all pipelines
    • Policy status: Enabled
  5. Actions를 다음으로 설정합니다:

    파이프라인 실행 정책 Actions

  6. Configure with a merge request를 선택합니다.

  7. 머지 리퀘스트의 Changes 탭에서 생성된 정책 YAML을 검토합니다. 정책은 다음과 유사해야 합니다:

    ---
    pipeline_execution_policy:
    - name: Enforce Security and Compliance Jobs
      description: Enforces required security and compliance jobs across all pipelines
      enabled: true
      pipeline_config_strategy: inject_policy
      content:
        include:
        - project: [group]/my-pipeline-execution-policy
          file: pipeline-config.yml
      skip_ci:
        - allowed: false
    
  8. Overview 탭으로 이동하여 Merge를 선택합니다. 이 단계에서는 My Pipeline Execution Policy - Security Policy Project라는 새 프로젝트가 생성됩니다. 보안 정책 프로젝트는 동일한 정책을 여러 프로젝트에 적용할 수 있도록 보안 정책을 저장하는 데 사용됩니다.

  9. 상단 바에서 검색 또는 이동을 선택하고 my-pipeline-execution-policy 프로젝트를 찾습니다.

  10. Secure > Policies를 선택합니다.

    이전 단계에서 추가한 정책 목록을 볼 수 있습니다.

파이프라인 실행 정책 테스트#

이제 머지 리퀘스트를 만들어 파이프라인 실행 정책을 테스트합니다:

  1. 왼쪽 사이드바에서 Code > Repository를 선택합니다.

  2. Add(+) 드롭다운 목록에서 New file을 선택합니다.

  3. Filename 필드에 test-file.txt를 입력합니다.

  4. 파일 내용에 다음을 추가합니다:

    This is a test file to trigger the pipeline execution policy.
    
  5. Commit message 필드에 Add test file to trigger pipeline을 입력합니다.

  6. Target Branch 필드에 test-policy-branch를 입력합니다.

  7. Commit changes를 선택합니다.

  8. 머지 리퀘스트 페이지가 열리면 Create merge request를 선택합니다.

    파이프라인이 완료될 때까지 기다립니다. 몇 분이 걸릴 수 있습니다.

  9. 머지 리퀘스트에서 Pipelines 탭을 선택하고 생성된 파이프라인을 선택합니다.

    적용된 잡이 실행되는 것을 볼 수 있습니다:

    • .pipeline-policy-pre 스테이지의 enforced-security-scan (먼저 실행)
    • test 스테이지의 enforced-test-job (정책에 의해 주입됨)
    • .pipeline-policy-post 스테이지의 enforced-compliance-check (마지막에 실행)
  10. enforced-security-scan 잡을 선택하여 로그를 보고 정책에 정의된 보안 스캔이 실행되었는지 확인합니다.

파이프라인 실행 정책이 필수 잡을 성공적으로 적용하여 개발자가 프로젝트의 .gitlab-ci.yml 파일에 무엇을 포함하든 관계없이 실행되도록 했습니다.

이제 파이프라인 실행 정책을 설정하고 사용하여 조직의 프로젝트 전체에 필수 CI/CD 잡 사용을 적용하는 방법을 알게 되었습니다!

다음 단계#

튜토리얼: 파이프라인 실행 정책 설정

Tier: Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

이 튜토리얼에서는 inject_policy 전략을 사용하여 파이프라인 실행 정책을 생성하고 구성하는 방법을 보여줍니다. 이 튜토리얼에서는 파이프라인 실행 정책을 만들고, 테스트 프로젝트에 연결하고, 파이프라인이 실행되는지 확인할 수 있습니다.

이 튜토리얼에서는 inject_policy 전략을 사용하여 파이프라인 실행 정책을 생성하고 구성하는 방법을 보여줍니다. 이러한 정책을 사용하면 정책이 연결된 프로젝트에서 필수 파이프라인이 항상 실행되도록 할 수 있습니다.

이 튜토리얼에서는 파이프라인 실행 정책을 만들고, 테스트 프로젝트에 연결하고, 파이프라인이 실행되는지 확인할 수 있습니다.

파이프라인 실행 정책을 설정하려면:

  1. 테스트 프로젝트 만들기.
  2. CI/CD 구성 파일 만들기.
  3. 파이프라인 실행 정책 추가.
  4. 파이프라인 실행 정책 테스트.

시작하기 전에#

이 튜토리얼을 완료하려면 다음이 필요합니다:

  • 기존 그룹에서 프로젝트를 만들 수 있는 권한.
  • 보안 정책을 만들고 연결할 수 있는 권한.

테스트 프로젝트 만들기#

먼저 파이프라인 실행 정책을 적용할 테스트 프로젝트를 만듭니다:

  1. 상단 바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 New project를 선택합니다.
  3. Create blank project를 선택합니다.
  4. 필드를 작성합니다.
    • Project name: my-pipeline-execution-policy.
    • Enable Static Application Security Testing (SAST) 확인란을 선택합니다.
  5. Create project를 선택합니다.

CI/CD 구성 파일 만들기#

다음으로 파이프라인 실행 정책이 적용할 CI/CD 구성 파일을 만듭니다:

  1. 왼쪽 사이드바에서 Code > Repository를 선택합니다.

  2. Add(+) 드롭다운 목록에서 New file을 선택합니다.

  3. Filename 필드에 pipeline-config.yml을 입력합니다.

  4. 파일 내용에 다음을 복사합니다:

    ---
    # This file defines the CI/CD jobs that will be
    # enforced by the pipeline execution policy
    enforced-security-scan:
      stage: .pipeline-policy-pre
      script:
        - echo "Running enforced security scan from pipeline execution policy"
        - echo "This job cannot be skipped by developers"
        - echo "Checking for security vulnerabilities..."
        - echo "Security scan completed successfully"
      rules:
        - when: always
    
    enforced-test-job:
      stage: test
      script:
        - echo "Running enforced test job in test stage"
        - echo "Creating test stage if it doesn't exist"
        - echo "Performing mandatory testing requirements..."
        - echo "Enforced tests completed successfully"
      rules:
        - when: always
    
    enforced-compliance-check:
      stage: .pipeline-policy-post
      script:
        - echo "Running enforced compliance check"
        - echo "Verifying pipeline compliance requirements"
        - echo "Compliance check passed"
      rules:
        - when: always
    
  5. Commit message 필드에 Add pipeline execution policy configuration을 입력합니다.

  6. Commit changes를 선택합니다.

파이프라인 실행 정책 추가#

다음으로 테스트 프로젝트에 파이프라인 실행 정책을 추가합니다:

  1. Secure > Policies를 선택합니다.

  2. New policy를 선택합니다.

  3. Pipeline execution policy에서 Select policy를 선택합니다.

  4. 필드를 작성합니다.

    • Name: Enforce Security and Compliance Jobs
    • Description: Enforces required security and compliance jobs across all pipelines
    • Policy status: Enabled
  5. Actions를 다음으로 설정합니다:

    파이프라인 실행 정책 Actions

  6. Configure with a merge request를 선택합니다.

  7. 머지 리퀘스트의 Changes 탭에서 생성된 정책 YAML을 검토합니다. 정책은 다음과 유사해야 합니다:

    ---
    pipeline_execution_policy:
    - name: Enforce Security and Compliance Jobs
      description: Enforces required security and compliance jobs across all pipelines
      enabled: true
      pipeline_config_strategy: inject_policy
      content:
        include:
        - project: [group]/my-pipeline-execution-policy
          file: pipeline-config.yml
      skip_ci:
        - allowed: false
    
  8. Overview 탭으로 이동하여 Merge를 선택합니다. 이 단계에서는 My Pipeline Execution Policy - Security Policy Project라는 새 프로젝트가 생성됩니다. 보안 정책 프로젝트는 동일한 정책을 여러 프로젝트에 적용할 수 있도록 보안 정책을 저장하는 데 사용됩니다.

  9. 상단 바에서 검색 또는 이동을 선택하고 my-pipeline-execution-policy 프로젝트를 찾습니다.

  10. Secure > Policies를 선택합니다.

    이전 단계에서 추가한 정책 목록을 볼 수 있습니다.

파이프라인 실행 정책 테스트#

이제 머지 리퀘스트를 만들어 파이프라인 실행 정책을 테스트합니다:

  1. 왼쪽 사이드바에서 Code > Repository를 선택합니다.

  2. Add(+) 드롭다운 목록에서 New file을 선택합니다.

  3. Filename 필드에 test-file.txt를 입력합니다.

  4. 파일 내용에 다음을 추가합니다:

    This is a test file to trigger the pipeline execution policy.
    
  5. Commit message 필드에 Add test file to trigger pipeline을 입력합니다.

  6. Target Branch 필드에 test-policy-branch를 입력합니다.

  7. Commit changes를 선택합니다.

  8. 머지 리퀘스트 페이지가 열리면 Create merge request를 선택합니다.

    파이프라인이 완료될 때까지 기다립니다. 몇 분이 걸릴 수 있습니다.

  9. 머지 리퀘스트에서 Pipelines 탭을 선택하고 생성된 파이프라인을 선택합니다.

    적용된 잡이 실행되는 것을 볼 수 있습니다:

    • .pipeline-policy-pre 스테이지의 enforced-security-scan (먼저 실행)
    • test 스테이지의 enforced-test-job (정책에 의해 주입됨)
    • .pipeline-policy-post 스테이지의 enforced-compliance-check (마지막에 실행)
  10. enforced-security-scan 잡을 선택하여 로그를 보고 정책에 정의된 보안 스캔이 실행되었는지 확인합니다.

파이프라인 실행 정책이 필수 잡을 성공적으로 적용하여 개발자가 프로젝트의 .gitlab-ci.yml 파일에 무엇을 포함하든 관계없이 실행되도록 했습니다.

이제 파이프라인 실행 정책을 설정하고 사용하여 조직의 프로젝트 전체에 필수 CI/CD 잡 사용을 적용하는 방법을 알게 되었습니다!

다음 단계#