프로젝트 수준의 보안 파일
- 일반적으로 사용 가능하며 GitLab 15.7에서 기능 플래그
ci_secure_files
가 제거되었습니다.
이 기능은 GitLab Incubation Engineering이 개발한 모바일 DevOps의 일부입니다.
현재 이 기능은 개발 중이지만, 다음을 수행할 수 있습니다:
CI/CD 파이프라인에서 보안 파일로 사용할 수 있도록 최대 100개의 파일을 안전하게 저장할 수 있습니다.
이 파일들은 프로젝트의 리포지토리 외부에 안전하게 저장되며 버전 관리되지 않습니다.
이 파일들에 민감한 정보를 저장하는 것은 안전합니다.
보안 파일은 일반 텍스트와 이진 파일 유형을 모두 지원하지만 5MB 이하여야 합니다.
프로젝트 설정에서 보안 파일을 관리하거나 보안 파일 API를 사용할 수 있습니다.
보안 파일은 CI/CD 작업에서 다운로드하고 사용될 수 있습니다
download-secure-files 도구를 사용하여.
프로젝트에 보안 파일 추가하기
프로젝트에 보안 파일을 추가하려면:
- 왼쪽 사이드바에서 검색하거나 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > CI/CD를 선택합니다.
- 보안 파일 섹션을 확장합니다.
- 파일 업로드를 선택합니다.
- 업로드할 파일을 찾아 열기를 선택하고 파일 업로드가 즉시 시작됩니다.
업로드가 완료되면 파일이 목록에 표시됩니다.
CI/CD 작업에서 보안 파일 사용하기
CI/CD 작업에서 보안 파일을 사용하려면 download-secure-files
도구를 사용하여 작업에서 파일을 다운로드해야 합니다.
다운로드가 완료되면 다른 스크립트 명령과 함께 사용할 수 있습니다.
작업의 script
섹션에 download-secure-files
도구를 다운로드하고 실행하는 명령을 추가합니다.
파일은 프로젝트의 루트에 있는 .secure_files
디렉토리에 다운로드됩니다.
보안 파일의 다운로드 위치를 변경하려면 SECURE_FILES_DOWNLOAD_PATH
CI/CD 변수에서 경로를 설정합니다.
예를 들면:
test:
variables:
SECURE_FILES_DOWNLOAD_PATH: './where/files/should/go/'
script:
- curl --silent "https://gitlab.com/gitlab-org/incubation-engineering/mobile-devops/download-secure-files/-/raw/main/installer" | bash
경고:
download-secure-files
도구로 로드된 파일의 내용은 작업 로그 출력에서 마스크 처리되지 않습니다.
작업 로그에 보안 파일 내용을 출력하지 않도록 주의하세요,
특히 민감한 정보를 포함할 수 있는 출력 로그를 기록할 때는 더욱 그렇습니다.
보안 세부정보
프로젝트 수준의 보안 파일은 Lockbox
Ruby gem을 사용하여 업로드 시 암호화됩니다.
이때 Ci::SecureFileUploader
인터페이스를 사용합니다. 이 인터페이스는 업로드 중 소스 파일의 SHA256 체크섬을 생성하며,
이 체크섬은 레코드와 함께 데이터베이스에 보존되어 다운로드 시 파일 내용을 검증하는 데 사용될 수 있습니다.
각 파일이 생성될 때 고유한 암호화 키
가 생성되어 데이터베이스에 보존됩니다. 암호화된 업로드된 파일은 GitLab 인스턴스 구성
에 따라 로컬 스토리지 또는 객체 스토리지에 저장됩니다.
개별 파일은 보안 파일 다운로드 API를 통해 검색할 수 있습니다.
메타데이터는 목록
또는 보기 API 엔드포인트를 통해 검색할 수 있습니다.
파일은 download-secure-files
도구를 사용하여 검색할 수도 있습니다. 이 도구는 다운로드하는 각 파일의 체크섬을 자동으로 검증합니다.
개발자 역할 이상을 가진 모든 프로젝트 구성원이 프로젝트 수준의 보안 파일에 접근할 수 있습니다.
프로젝트 수준의 보안 파일과의 상호작용은 감사 이벤트에 포함되지 않지만,
에서는 이 기능을 추가할 것을 제안하고 있습니다.