Secure Files 관리

Tier: Free, Premium, Ultimate Offering: Self-managed
  • 소개됨 GitLab 14.8에서 ci_secure_files로 지정된 플래그와 함께. 기본적으로 비활성화됨.
  • 일반 사용 가능 GitLab 15.7에서. 피처 플래그 ci_secure_files가 제거됨.

CI/CD 파이프라인에서 사용하기 위해 최대 100개의 파일을 안전하게 저장할 수 있습니다. 이러한 파일은 프로젝트 리포지터리 외부에 안전하게 저장되며 버전이 관리되지 않습니다. 이러한 파일에 민감한 정보를 안전하게 보관하는 것이 안전합니다. 안전 파일은 일반 텍스트 및 이진 파일 유형을 지원하며 5MB 이하여야 합니다.

이러한 파일의 저장 위치는 아래 설명된 옵션을 사용하여 구성할 수 있지만, 기본 위치는 다음과 같습니다.

  • Linux 패키지를 사용하는 경우 /var/opt/gitlab/gitlab-rails/shared/ci_secure_files.
  • Self-compiled installations를 사용하는 경우 /home/git/gitlab/shared/ci_secure_files.

GitLab Helm 차트 설치를 위해 외부 오브젝트 스토리지 구성을 사용하세요.

안전 파일 비활성화

전체 GitLab 인스턴스에서 안전 파일을 비활성화할 수 있습니다. 디스크 공간을 줄이거나 기능에 대한 액세스를 제거하기 위해 안전 파일을 비활성화하고 싶을 수 있습니다.

안전 파일을 비활성화하려면 설치에 따라 아래 단계를 따르세요.

전제 조건:

  • 관리자이어야 합니다.

Linux 패키지 설치인 경우

  1. /etc/gitlab/gitlab.rb를 편집하고 다음 줄을 추가하세요.

    gitlab_rails['ci_secure_files_enabled'] = false
    
  2. 파일을 저장하고 GitLab 재구성을 수행하세요.

Self-compiled installations인 경우

  1. /home/git/gitlab/config/gitlab.yml을 편집하고 다음 줄을 추가하거나 수정하세요.

    ci_secure_files:
      enabled: false
    
  2. 파일을 저장하고 변경 사항이 적용되도록 GitLab을 다시 시작하세요.

로컬 리포지터리 사용

기본 구성은 로컬 리포지터리를 사용합니다. 로컬로 안전 파일을 저장하는 위치를 변경하려면 아래 단계를 따르세요.

Linux 패키지 설치인 경우

  1. 리포지터리 경로를 예를 들어 /mnt/storage/ci_secure_files로 변경하려면 /etc/gitlab/gitlab.rb를 편집하고 다음 줄을 추가하세요.

    gitlab_rails['ci_secure_files_storage_path'] = "/mnt/storage/ci_secure_files"
    
  2. 파일을 저장하고 GitLab 재구성을 수행하세요.

Self-compiled installations인 경우

  1. 리포지터리 경로를 예를 들어 /mnt/storage/ci_secure_files로 변경하려면 /home/git/gitlab/config/gitlab.yml을 편집하고 다음 줄을 추가하거나 수정하세요.

    ci_secure_files:
      enabled: true
      storage_path: /mnt/storage/ci_secure_files
    
  2. 파일을 저장하고 변경 사항이 적용되도록 GitLab을 다시 시작하세요.

오브젝트 스토리지 사용

Tier: Free, Premium, Ultimate Offering: Self-managed

디스크에 안전 파일을 저장하는 대신, 지원되는 오브젝트 스토리지 옵션 중 하나를 사용해야 합니다. 이 구성에는 이미 구성된 유효한 자격 증명이 필요합니다.

GitLab과 오브젝트 스토리지을 사용하는 방법에 대해 자세히 알아보세요.

note
이 기능은 통합된 오브젝트 스토리지 구성에서 지원되지 않습니다. 지원 추가는 issue 414673에서 제안되었습니다.

오브젝트 스토리지 설정

다음 설정은:

  • Self-compiled installations에서 ci_secure_files: 아래에 object_store: 하위로 중첩됩니다.
  • Linux 패키지 설치에서는 ci_secure_files_object_store_로 접두어가 붙습니다.
설정 설명 기본값
enabled 오브젝트 스토리지 활성화/비활성화 false
remote_directory 안전 파일이 저장된 버킷 이름  
connection 아래에 설명된 다양한 연결 옵션  

S3 호환 연결 설정

다양한 제공자에 대한 사용 가능한 연결 설정은 여기를 참조하세요.

Linux 패키지 설치인 경우

  1. 다음 줄을 추가하되 원하는 값으로 사용하여 /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'
    }
    
    note
    AWS IAM 프로파일을 사용하는 경우 AWS 액세스 키 및 비밀 액세스 키/값을 생략해야 합니다.
    gitlab_rails['ci_secure_files_object_store_connection'] = {
      'provider' => 'AWS',
      'region' => 'eu-central-1',
      'use_iam_profile' => true
    }
    
  2. 파일을 저장하고 GitLab 재구성을 수행하세요.
  3. 기존 로컬 상태를 오브젝트 스토리지으로 마이그레이션하세요.

Self-compiled installations인 경우

  1. 다음 줄을 추가하거나 원하는 값으로 사용하여 /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
    
  2. 파일을 저장하고 변경 사항이 적용되도록 GitLab을 다시 시작하세요.
  3. 기존 로컬 상태를 오브젝트 스토리지으로 마이그레이션하세요.

객체 리포지터리로 이관

caution
보안 파일을 객체 리포지터리로 이관한 후에는 로컬 리포지터리로 다시 이관할 수 없으니 주의하여 진행하십시오.

보안 파일을 객체 리포지터리로 이관하려면 아래 지침을 따르세요.

  • Linux 패키지 설치에 대한 경우:

    sudo gitlab-rake gitlab:ci_secure_files:migrate
    
  • 직접 컴파일한 설치에 대한 경우:

    sudo -u git -H bundle exec rake gitlab:ci_secure_files:migrate RAILS_ENV=production