튜토리얼: 파이프라인 실행 정책 설정
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
이 튜토리얼에서는 inject_policy 전략을 사용하여 파이프라인 실행 정책을 생성하고 구성하는 방법을 보여줍니다. 이 튜토리얼에서는 파이프라인 실행 정책을 만들고, 테스트 프로젝트에 연결하고, 파이프라인이 실행되는지 확인할 수 있습니다.
이 튜토리얼에서는 inject_policy 전략을 사용하여 파이프라인 실행 정책을 생성하고 구성하는 방법을 보여줍니다. 이러한 정책을 사용하면 정책이 연결된 프로젝트에서 필수 파이프라인이 항상 실행되도록 할 수 있습니다.
이 튜토리얼에서는 파이프라인 실행 정책을 만들고, 테스트 프로젝트에 연결하고, 파이프라인이 실행되는지 확인할 수 있습니다.
파이프라인 실행 정책을 설정하려면:
시작하기 전에#
이 튜토리얼을 완료하려면 다음이 필요합니다:
- 기존 그룹에서 프로젝트를 만들 수 있는 권한.
- 보안 정책을 만들고 연결할 수 있는 권한.
테스트 프로젝트 만들기#
먼저 파이프라인 실행 정책을 적용할 테스트 프로젝트를 만듭니다:
- 상단 바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
- 왼쪽 사이드바에서 New project를 선택합니다.
- Create blank project를 선택합니다.
- 필드를 작성합니다.
- Project name:
my-pipeline-execution-policy. - Enable Static Application Security Testing (SAST) 확인란을 선택합니다.
- Project name:
- Create project를 선택합니다.
CI/CD 구성 파일 만들기#
다음으로 파이프라인 실행 정책이 적용할 CI/CD 구성 파일을 만듭니다:
-
왼쪽 사이드바에서 Code > Repository를 선택합니다.
-
Add(+) 드롭다운 목록에서 New file을 선택합니다.
-
Filename 필드에
pipeline-config.yml을 입력합니다. -
파일 내용에 다음을 복사합니다:
--- # 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 -
Commit message 필드에
Add pipeline execution policy configuration을 입력합니다. -
Commit changes를 선택합니다.
파이프라인 실행 정책 추가#
다음으로 테스트 프로젝트에 파이프라인 실행 정책을 추가합니다:
-
Secure > Policies를 선택합니다.
-
New policy를 선택합니다.
-
Pipeline execution policy에서 Select policy를 선택합니다.
-
필드를 작성합니다.
- Name:
Enforce Security and Compliance Jobs - Description:
Enforces required security and compliance jobs across all pipelines - Policy status: Enabled
- Name:
-
Actions를 다음으로 설정합니다:

-
Configure with a merge request를 선택합니다.
-
머지 리퀘스트의 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 -
Overview 탭으로 이동하여 Merge를 선택합니다. 이 단계에서는
My Pipeline Execution Policy - Security Policy Project라는 새 프로젝트가 생성됩니다. 보안 정책 프로젝트는 동일한 정책을 여러 프로젝트에 적용할 수 있도록 보안 정책을 저장하는 데 사용됩니다. -
상단 바에서 검색 또는 이동을 선택하고
my-pipeline-execution-policy프로젝트를 찾습니다. -
Secure > Policies를 선택합니다.
이전 단계에서 추가한 정책 목록을 볼 수 있습니다.
파이프라인 실행 정책 테스트#
이제 머지 리퀘스트를 만들어 파이프라인 실행 정책을 테스트합니다:
-
왼쪽 사이드바에서 Code > Repository를 선택합니다.
-
Add(+) 드롭다운 목록에서 New file을 선택합니다.
-
Filename 필드에
test-file.txt를 입력합니다. -
파일 내용에 다음을 추가합니다:
This is a test file to trigger the pipeline execution policy. -
Commit message 필드에
Add test file to trigger pipeline을 입력합니다. -
Target Branch 필드에
test-policy-branch를 입력합니다. -
Commit changes를 선택합니다.
-
머지 리퀘스트 페이지가 열리면 Create merge request를 선택합니다.
파이프라인이 완료될 때까지 기다립니다. 몇 분이 걸릴 수 있습니다.
-
머지 리퀘스트에서 Pipelines 탭을 선택하고 생성된 파이프라인을 선택합니다.
적용된 잡이 실행되는 것을 볼 수 있습니다:
.pipeline-policy-pre스테이지의enforced-security-scan(먼저 실행)test스테이지의enforced-test-job(정책에 의해 주입됨).pipeline-policy-post스테이지의enforced-compliance-check(마지막에 실행)
-
enforced-security-scan잡을 선택하여 로그를 보고 정책에 정의된 보안 스캔이 실행되었는지 확인합니다.
파이프라인 실행 정책이 필수 잡을 성공적으로 적용하여 개발자가 프로젝트의 .gitlab-ci.yml 파일에 무엇을 포함하든 관계없이 실행되도록 했습니다.
이제 파이프라인 실행 정책을 설정하고 사용하여 조직의 프로젝트 전체에 필수 CI/CD 잡 사용을 적용하는 방법을 알게 되었습니다!
다음 단계#
- 파이프라인 실행 정책 구성 전략에 대해 자세히 알아보세요.
- 고급 파이프라인 실행 정책 예제를 살펴보세요.
