보안 강화 - CI/CD 권장 사항
일반적인 보안 강화 지침과 철학은 주요 보안 강화 문서에 요약되어 있습니다.
CI/CD를 위한 보안 강화 권장 사항과 개념은 아래에 나열되어 있습니다.
기본 권장 사항
다양한 CI/CD 설정을 구성하는 방법은 CI/CD 사용 방식에 따라 다릅니다. 예를 들어, 패키지를 빌드하는 데 사용할 경우, Docker 이미지나 외부 코드 저장소와 같은 외부 리소스에 실시간으로 접근할 필요가 있습니다. 인프라스트럭처로서의 코드(IaC)에 사용하는 경우, 배포 자동화를 위해 외부 시스템의 자격 증명을 저장해야 할 수 있습니다. 이러한 시나리오를 포함하여 많은 경우, CI/CD 작업 중에 사용될 수 있는 잠재적으로 민감한 정보를 저장해야 합니다. 개별 시나리오가 상당히 다양하므로, CI/CD 프로세스를 보강하는 데 도움이 되는 몇 가지 기본 정보를 요약했습니다.
- 비밀 관리. 암호, 토큰, 키 등 보호가 필요한 다른 비밀 정보는 절대 평문으로 저장해서는 안 됩니다. GCP Secret Manager, AWS KMS 또는 HashiCorp Vault와 같은 암호화된 컨테이너 기술을 사용해야 합니다. 자가 관리형 및 독립 실행형 인스턴스의 경우 HashiCorp Vault를 권장하며, 많은 GitLab 기능이 Vault를 활용할 수 있으며, 이는 주 문서에 잘 문서화되어 있습니다. CI/CD의 세부적인 예는 CI에서 외부 비밀 사용하기를 참조하세요.
- 외부 통신. CI/CD 프로세스가 다른 호스트와의 연결을 요구하는 경우, 이러한 통신 채널이 암호화되는지 확인하십시오. TLS 1.2 또는 1.3을 사용하고, 가능한 경우 상호 TLS를 구현해야 합니다.
- 로깅. 로깅은 감사 및 문제 해결에 매우 중요할 수 있으므로, 필요한 정보가 로그에 포함되도록 모든 로깅 기능을 활성화하는 것이 중요합니다. 정기적인 테스트를 통해 평문 비밀이나 기타 민감한 정보가 로그 파일에 우발적으로 추가되지 않도록 확인하십시오.
특정 권장 사항
파이프라인
파이프라인은 프로젝트 사용자를 대신하여 작업을 자동화하기 위해 단계별로 작업을 실행하는 작업의 일부입니다. 이는 CI/CD의 핵심 구성 요소입니다.
기본적으로, 기본 브랜치만 보호된 파이프라인을 가집니다. 프로젝트 소유자는 보호된 브랜치 구성을 통해 다른 브랜치가 보호되도록 할 수 있습니다. 이것은 파이프라인의 보안을 더욱 강화합니다. 자세한 내용은 보호된 브랜치의 파이프라인 보안을 참조하세요.
배포는 CI/CD의 일부로서, 파이프라인 결과를 특정 환경에 배포하는 작업입니다. 기본 설정에서는 많은 제한이 없으며, 다양한 역할과 책임을 가진 사용자들이 해당 환경과 상호작용할 수 있는 파이프라인을 트리거할 수 있으므로 이러한 환경을 제한해야 합니다. 더 많은 정보는 보호된 환경을 참조하세요.