파이프라인 보안
시크릿 관리, 작업 토큰, 보안 파일, 클라우드 보안.
시크릿 관리 # 시크릿 관리는 개발자가 엄격한 접근 제어가 있는 안전한 환경에 민감한 데이터를 안전하게 저장하기 위해 사용하는 시스템입니다. 시크릿 은 기밀로 유지되어야 하는 민감한 자격 증명입니다. 시크릿의 예시: 비밀번호 SSH 키 액세스 토큰 노출이 조직에 해를 끼칠 수 있는 기타 모든 유형의 자격 증명 시크릿 저장 # 시크릿 관리 프로바이더 # 가장 민감하고 가장 엄격한 정책 하에 있는 시크릿은 시크릿 관리자에 저장해야 합니다. 시크릿 관리자 솔루션을 사용할 때 시크릿은 GitLab 인스턴스 외부에 저장됩니다. 이 공간에는 HashiCorp의 Vault , Azure Key Vault , Google Cloud Secret Manager 를 포함한 여러 프로바이더가 있습니다. 특정 외부 시크릿 관리 프로바이더 에 대한 GitLab 네이티브 통합을 사용하여 필요할 때 CI/CD 파이프라인에서 해당 시크릿을 검색할 수 있습니다. CI/CD 변수 # CI/CD 변수 는 CI/CD 파이프라인에서 데이터를 저장하고 재사용하는 편리한 방법이지만, 변수는 시크릿 관리 프로바이더보다 덜 안전합니다. 변수 값: GitLab 프로젝트, 그룹 또는 인스턴스 설정에 저장됩니다. 설정에 접근하는 사용자는 숨겨지지 않은 변수 값에 접근할 수 있습니다. 재정의 될 수 있어 어떤 값이 사용되었는지 파악하기 어렵습니다. 실수로 인한 파이프라인 잘못된 구성으로 노출될 수 있습니다. 변수에 저장하기에 적합한 정보는 악용 위험 없이 노출될 수 있는 데이터(비민감)여야 합니다. 민감한 데이터는 시크릿 관리 솔루션에 저장해야 합니다. 시크릿 관리 솔루션이 없고 CI/CD 변수에 민감한 데이터를 저장하려는 경우 항상 다음을 수행하세요: 변수를 마스킹 합니다. 변수를 숨깁니다 . 가능한 경우 변수를 보호 합니다. CI/CD 파이프라인에 매개변수 전달 # CI/CD 파이프라인에 매개변수를 전달하려면 파이프라인 변수 대신 CI/CD inputs 을 사용합니다. Inputs는 다음을 제공합니다: 파이프라인 생성 시 타입 안전 유효성 검사 명시적 매개변수 계약 보안을 강화하는 범위 제한 가용성 inputs를 구현할 때 파이프라인 변수는 다음과 같은 이유로 보안 취약성을 유발할 수 있으므로 파이프라인 변수 비활성화 를 고려합니다: 타입 유효성 검사 부재 사전 정의된 변수를 재정의하여 예기치 않은 동작 유발 가능 민감한 시크릿과 동일한 권한 범위 공유 파이프라인 무결성 # 파이프라인 무결성 보장의 핵심 보안 원칙: 공급망 보안 : 자산은 신뢰할 수 있는 소스에서 가져와야 하며 무결성을 검증해야 합니다. 재현성 : 파이프라인은 동일한 입력을 사용할 때 일관된 결과를 생성해야 합니다. 감사 가능성 : 모든 파이프라인 종속성은 추적 가능하고 출처를 확인할 수 있어야 합니다. 버전 제어 : 파이프라인 종속성의 변경은 추적 및 제어되어야 합니다. Docker 이미지 # Docker 이미지에 대해 항상 SHA 다이제스트를 사용하여 클라이언트 측 무결성 검증을 보장합니다. 예를 들어: Node:
