- 시작하기 전에
- 프로젝트 A 생성
- 스캔 실행 정책 생성
- 프로젝트 A에서 스캔 실행 정책 테스트
- 프로젝트 B 생성
- 프로젝트 B를 보안 정책 프로젝트에 연결
- 프로젝트 B에서 스캔 실행 정책을 테스트하세요
튜토리얼: 스캔 실행 정책 설정
이 튜토리얼에서는 스캔 실행 정책을 생성하고 적용하는 방법을 안내합니다. 이러한 정책은 CI/CD 파이프라인의 일부로 애플리케이션 보안 도구를 강제로 실행합니다. 이 튜토리얼에서는 두 프로젝트의 CI/CD 파이프라인에서 시크릿 감지를 강제하는 정책을 생성합니다.
이 튜토리얼에서 다음을 수행합니다:
- 프로젝트 A 생성.
- 스캔 실행 정책 생성.
- 프로젝트 A에서 스캔 실행 정책 테스트.
- 프로젝트 B 생성.
- 프로젝트 B를 보안 정책 프로젝트에 연결.
- 프로젝트 B에서 스캔 실행 정책 테스트.
시작하기 전에
- 기존 그룹에서 새 프로젝트를 생성할 수 있는 권한이 필요합니다.
프로젝트 A 생성
일반 워크플로우에서 이미 기존 프로젝트가 있을 수 있지만, 이 튜토리얼에서는 아무 것도 없이 시작하는 것이므로 첫 번째 단계는 프로젝트를 생성하는 것입니다.
프로젝트 A를 생성하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
- 새 프로젝트를 선택합니다.
- 빈 프로젝트 만들기를 선택합니다.
-
프로젝트 이름에
go-example-a
를 입력합니다. - 프로젝트 생성을 선택합니다.
-
추가 (
+
) > 새 파일을 선택합니다. - 파일 이름에
helloworld.go
를 입력합니다. -
다음 예제 Go 코드를 파일에 복사하여 붙여넣기합니다.
package main import "fmt" func main() { fmt.Println("Hello world") }
- 변경 사항 커밋을 선택합니다.
다음 단계는 스캔 실행 정책을 생성하는 것입니다. 첫 번째 보안 정책이 생성되면 정책 프로젝트가 생성됩니다. 정책 프로젝트는 연결된 모든 프로젝트에서 생성된 보안 정책을 저장합니다. 프로젝트를 보호하는 정책을 프로젝트와 분리하면 보안 구성을 재사용하고 유지 보수가 더 쉬워집니다.
스캔 실행 정책 생성
스캔 실행 정책을 생성하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고
go-example-a
프로젝트를 검색합니다. - 보안 > 정책으로 이동합니다.
- 새 정책을 선택합니다.
- 스캔 실행 정책 섹션에서 정책 선택을 선택합니다.
- 필드를 작성합니다.
- 이름: 시크릿 감지 강제
- 정책 상태: 활성화됨
- 동작: 시크릿 감지 스캔 실행
- 조건: 모든 브랜치에 대해 파이프라인 실행시 트리거 됨
-
Merge Request으로 구성을 선택합니다.
go-example-a - Security project
정책 프로젝트가 생성되고, Merge Request이 생성됩니다. - 선택 사항. Merge Request의 변경 탭에서 생성된 정책 YAML을 검토합니다.
- 개요 탭으로 이동하여 Merge을 선택합니다.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고
go-example-a
프로젝트를 검색합니다. - 보안 > 정책으로 이동합니다.
이제 모든 MR에 대해 모든 브랜치에서 시크릿 감지 스캔을 실행하는 스캔 실행 정책이 있습니다. 프로젝트 A에서 Merge Request을 생성하여 정책을 테스트하세요.
프로젝트 A에서 스캔 실행 정책 테스트
스캔 실행 정책을 테스트하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고
go-example-a
프로젝트를 찾습니다. - 코드 > 리포지터리로 이동합니다.
-
helloworld.go
파일을 선택합니다. - 편집 > 단일 파일 편집을 선택합니다.
-
fmt.Println("hello world")
라인 바로 뒤에 다음 라인을 추가합니다.var GitLabFeedToken = "feed_token=eFLISqaBym4EjAefkl58"
-
대상 브랜치 필드에
feature-a
를 입력합니다. - 변경 사항 커밋을 선택합니다.
-
생성된 Merge Request 페이지에서 Merge Request 생성을 선택합니다.
스캔 실행 정책이 작동했는지 확인해 보겠습니다. 파이프라인이 실행될 때마다 시크릿 감지가 실행되도록 지정했음을 기억하세요.
-
생성된 Merge Request에서 파이프라인 탭으로 이동하고 생성된 파이프라인을 선택합니다.
여기에서 시크릿 감지 작업이 실행된 것을 볼 수 있습니다. 테스트 시크릿이 감지되었는지 확인해 봅니다.
-
시크릿 감지 작업을 선택합니다.
작업 로그의 맨 아래에서 다음 출력이 테스트 시크릿이 감지되었음을 확인합니다.
[INFO] [secrets] [2023-09-04T03:46:36Z] ▶ 3:46AM INF 1 commits scanned. [INFO] [secrets] [2023-09-04T03:46:36Z] ▶ 3:46AM INF scan completed in 60ms [INFO] [secrets] [2023-09-04T03:46:36Z] ▶ 3:46AM WRN leaks found: 1
한 프로젝트에서 정책이 작동하는 것을 확인했습니다. 다른 프로젝트를 생성하고 동일한 정책을 적용해 보세요.
프로젝트 B 생성
프로젝트 B를 생성하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
- 새 프로젝트를 선택합니다.
- 빈 프로젝트 만들기를 선택합니다.
-
프로젝트 이름에
go-example-b
를 입력합니다. - 프로젝트 생성을 선택합니다.
-
추가 (
+
) > 새 파일을 선택합니다. - 파일 이름에
helloworld.go
를 입력합니다. -
다음 예제 Go 코드를 파일에 복사하여 붙여넣기합니다.
package main import "fmt" func main() { fmt.Println("Hello world") }
- 변경 사항 커밋을 선택합니다.
이제 다른 프로젝트가 생겼으니 동일한 정책 프로젝트에 연결합니다.
프로젝트 B를 보안 정책 프로젝트에 연결
프로젝트 B를 보안 정책 프로젝트에 연결하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고
go-example-b
프로젝트를 찾습니다. - 보안 > 정책으로 이동합니다.
- 정책 프로젝트 편집을 선택합니다.
- 드롭다운 디렉터리을 선택한 후, 이 튜토리얼의 시작에서 생성된 보안 정책 프로젝트를 검색합니다.
- 저장을 선택합니다.
프로젝트 B를 동일한 정책 프로젝트에 연결했더니 동일한 정책이 적용되었습니다. 스캔 실행 정책은 모든 MR에 대해 모든 브랜치에서 시크릿 감지 스캔을 실행합니다. 이제 프로젝트 B에서 MR을 생성하여 정책을 테스트해 보세요.
프로젝트 B에서 스캔 실행 정책을 테스트하세요
스캔 실행 정책을 테스트하려면 다음 단계를 따르세요:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고
go-example-b
프로젝트를 찾습니다. - 코드 > 리포지터리로 이동합니다.
-
helloworld.go
파일을 선택합니다. - 편집 > 단일 파일 편집을 선택합니다.
-
fmt.Println("hello world")
다음에 다음 라인을 추가하세요:var AdobeClient = "4ab4b080d9ce4072a6be2629c399d653"
-
대상 브랜치 필드에
feature-b
를 입력합니다. - 변경사항 커밋을 선택합니다.
-
Merge Request 페이지가 열리면 Merge Request 생성을 선택합니다.
스캔 실행 정책이 작동하는지 확인해 봅시다. 파이프라인이 실행될 때마다 시크릿 감지가 실행되도록 특정했음을 기억하세요.
-
방금 생성한 Merge Request에서 파이프라인 탭을 선택하고 생성된 파이프라인을 선택합니다.
-
방금 생성한 Merge Request에서 파이프라인 ID를 선택합니다.
여기서 시크릿 감지 작업이 실행되었음을 확인할 수 있습니다. 테스트 시크릿이 감지되었는지 확인해 봅시다.
-
시크릿 감지 작업을 선택합니다.
작업 로그의 하단 부근에 다음 출력이 테스트 시크릿이 감지되었음을 확인합니다.
[INFO] [secrets] [2023-09-04T04:22:28Z] ▶ 4:22AM INF 1 commits scanned. [INFO] [secrets] [2023-09-04T04:22:28Z] ▶ 4:22AM INF scan completed in 58.2ms [INFO] [secrets] [2023-09-04T04:22:28Z] ▶ 4:22AM WRN leaks found: 1
축하합니다. 스캔 실행 정책을 생성하고 프로젝트에 적용하는 방법을 배웠습니다.