보안 파일 관리
- 일반 제공 및 GitLab 15.7에서 기능 플래그
ci_secure_files
제거.
CI/CD 파이프라인에서 사용할 보안 파일로 최대 100개 파일을 안전하게 저장할 수 있습니다.
이 파일들은 프로젝트의 리포지토리 외부에 안전하게 저장되며, 버전 관리를 하지 않습니다.
이 파일에 민감한 정보를 저장하는 것은 안전합니다. 보안 파일은 일반 텍스트 및 이진 파일 형식을 모두 지원하며, 크기는 5MB 이하이어야 합니다.
이 파일들의 저장 위치는 아래 설명된 옵션을 사용하여 구성할 수 있지만, 기본 위치는 다음과 같습니다:
- Linux 패키지를 사용하는 설치의 경우:
/var/opt/gitlab/gitlab-rails/shared/ci_secure_files
- 자기 컴파일 설치의 경우:
/home/git/gitlab/shared/ci_secure_files
GitLab Helm 차트 설치에 대한 외부 객체 스토리지 구성 사용.
보안 파일 비활성화
전체 GitLab 인스턴스에서 보안 파일을 비활성화할 수 있습니다.
디스크 공간을 줄이거나 기능에 대한 접근을 제거하려는 경우 보안 파일을 비활성화할 수 있습니다.
보안 파일을 비활성화하려면, 설치에 따라 아래 단계를 따르세요.
사전 요구 사항:
- 관리자인 경우에만 가능합니다.
Linux 패키지 설치의 경우
-
/etc/gitlab/gitlab.rb
를 편집하고 다음 줄을 추가합니다:gitlab_rails['ci_secure_files_enabled'] = false
-
파일을 저장하고 GitLab 재구성을 수행합니다.
자기 컴파일 설치의 경우
-
/home/git/gitlab/config/gitlab.yml
을 편집하고 다음 줄을 추가하거나 수정합니다:ci_secure_files: enabled: false
-
파일을 저장하고 변경 사항이 적용되도록 GitLab 재시작을 수행합니다.
로컬 스토리지 사용
기본 구성은 로컬 스토리지를 사용합니다.
보안 파일이 로컬에 저장되는 위치를 변경하려면 아래 단계를 따르세요.
Linux 패키지 설치의 경우
-
예를 들어 저장 경로를
/mnt/storage/ci_secure_files
로 변경하려면/etc/gitlab/gitlab.rb
를 편집하고 다음 줄을 추가합니다:gitlab_rails['ci_secure_files_storage_path'] = "/mnt/storage/ci_secure_files"
-
파일을 저장하고 GitLab 재구성을 수행합니다.
자기 컴파일 설치의 경우
-
예를 들어 저장 경로를
/mnt/storage/ci_secure_files
로 변경하려면/home/git/gitlab/config/gitlab.yml
을 편집하고 다음 줄을 추가하거나 수정합니다:ci_secure_files: enabled: true storage_path: /mnt/storage/ci_secure_files
-
파일을 저장하고 변경 사항이 적용되도록 GitLab 재시작을 수행합니다.
객체 스토리지 사용
보안 파일을 디스크에 저장하는 대신 지원되는 객체 스토리지 옵션 중 하나를 사용하는 것이 좋습니다.
이 구성은 유효한 자격 증명이 이미 구성되어 있어야 합니다.
통합 객체 저장소
- 통합 객체 저장소에 대한 지원은 도입되었습니다 GitLab 17.0에서.
모든 객체 유형에 대해 통합 형식으로 객체 저장소를 사용하는 것이 권장됩니다.
저장소 특정 객체 저장소
다음 설정이 있습니다:
- 자체 컴파일된 설치에서
ci_secure_files:
아래에 중첩되어 있으며, 그 다음에object_store:
가 있습니다. - Linux 패키지 설치에서는
ci_secure_files_object_store_
로 접두사가 붙습니다.
설정 | 설명 | 기본값 |
---|---|---|
enabled |
객체 저장소 사용/중지 | false |
remote_directory |
보안 파일이 저장되는 버킷 이름 | |
connection |
아래에 설명된 다양한 연결 옵션 |
S3-호환 연결 설정
다양한 공급자에 대한 사용 가능한 연결 설정을 참조하세요.
-
/etc/gitlab/gitlab.rb
를 편집하고 다음 줄을 추가하지만, 원하는 값을 사용하세요:gitlab_rails['ci_secure_files_object_store_enabled'] = true gitlab_rails['ci_secure_files_object_store_remote_directory'] = "ci_secure_files" gitlab_rails['ci_secure_files_object_store_connection'] = { 'provider' => 'AWS', 'region' => 'eu-central-1', 'aws_access_key_id' => 'AWS_ACCESS_KEY_ID', 'aws_secret_access_key' => 'AWS_SECRET_ACCESS_KEY' }
참고: AWS IAM 프로파일을 사용하는 경우, AWS 액세스 키와 비밀 액세스 키/값 쌍을 생략해야 합니다:
gitlab_rails['ci_secure_files_object_store_connection'] = { 'provider' => 'AWS', 'region' => 'eu-central-1', 'use_iam_profile' => true }
-
파일을 저장하고 GitLab을 재구성합니다:
sudo gitlab-ctl reconfigure
-
/home/git/gitlab/config/gitlab.yml
를 편집하고 다음 줄을 추가하거나 수정합니다:ci_secure_files: enabled: true object_store: enabled: true remote_directory: "ci_secure_files" # 버킷 이름 connection: provider: AWS # 현재는 AWS만 지원됨 aws_access_key_id: AWS_ACCESS_KEY_ID aws_secret_access_key: AWS_SECRET_ACCESS_KEY region: eu-central-1
-
파일을 저장하고 GitLab을 재시작합니다:
# systemd를 사용하는 시스템의 경우 sudo systemctl restart gitlab.target # SysV init을 사용하는 시스템의 경우 sudo service gitlab restart
객체 저장소로 마이그레이션
- GitLab 16.1에서 도입되었습니다.
경고:
객체 저장소에서 로컬 저장소로 보안 파일을 마이그레이션하는 것은 불가능하므로 주의해서 진행하세요.
보안 파일을 객체 저장소로 마이그레이션하려면, 아래 지침을 따르세요.
-
Linux 패키지 설치의 경우:
sudo gitlab-rake gitlab:ci_secure_files:migrate
-
자체 컴파일 설치의 경우:
sudo -u git -H bundle exec rake gitlab:ci_secure_files:migrate RAILS_ENV=production