Hardening - CI/CD 권장사항

일반적인 강화 가이드라인과 철학은 메인 강화 문서에 개요되어 있습니다.

CI/CD의 강화 권장 및 컨셉은 아래에 나열되어 있습니다.

기본 권장사항

다양한 CI/CD 설정을 구성하는 방법은 CI/CD 사용 방식에 따라 다릅니다. 예를 들어, 패키지 빌드에 사용하는 경우 Docker 이미지나 외부 코드 리포지터리와 같은 외부 리소스에 실시간 액세스가 필요할 수 있습니다. IaC(Infrastructure as Code)로 사용하는 경우 외부 시스템의 자격 증명을 저장하여 배포를 자동화해야 할 수 있습니다. 이와 같은 다양한 시나리오에서는 CI/CD 작업 중에 사용될 수 있는 잠재적으로 민감한 정보를 저장해야 합니다. 각 시나리오 자체가 많기 때문에 CI/CD 프로세스를 강화하는 데 도움이 되는 몇 가지 기본 정보를 요약했습니다.

  • 보안 정보 관리. 비밀번호, 토큰, 키 및 기타 보안 정보는 일반적으로 평문에 저장해서는 안됩니다. GCP Secret Manager, AWS KMS 또는 HashiCorp Vault와 같은 암호화된 컨테이너 기술을 사용해야 합니다. Self-Managed 및 독립형 인스턴스의 경우 HashiCorp Vault를 권장하며, 많은 GitLab 기능이 Vault를 활용할 수 있으며, 이에 대한 상세한 CI/CD 예제는 CI에서 외부 보안 사용하기를 참조하십시오.
  • 외부 통신. CI/CD 프로세스가 다른 호스트에 연결해야 하는 경우 통신 채널이 암호화되어 있는지 확인하십시오. TLS 1.2 또는 1.3을 사용하고 가능한 경우 상호 TLS를 구현해야 합니다.
  • 로그. 로깅은 감사 및 문제 해결에 매우 중요할 수 있으므로 필요한 정보가 로그에 기록되도록 로깅 기능을 활성화하는 것이 중요합니다. 주기적인 테스트를 통해 평문 비밀 또는 다른 민감한 정보가 로그 파일에 무심코 추가되지 않았는지 확인하십시오.

특정 권장사항

파이프라인

파이프라인은 프로젝트 사용자를 대신하여 단계별로 작업을 자동화하는 잡의 일부입니다. 이것은 CD/CD의 핵심 컴포넌트입니다.

기본적으로 기본 브랜치만 보호된 파이프라인을 받습니다. 프로젝트 소유자는 다른 브랜치도 보호된 브랜치를 구성하여 보호할 수 있습니다. 이를 통해 파이프라인에 대한 보다 제한적인 보안이 가능합니다. 자세한 정보는 보호된 브랜치에서의 파이프라인 보안을 참조하십시오.

배포는 파이프라인 결과물을 특정 환경과 관련하여 배포하는 것입니다. 기본 설정은 많은 제한을 부과하지 않으며, 서로 다른 역할과 책임을 가진 다른 사용자가 해당 환경과 상호 작용할 수 있는 파이프라인을 트리거할 수 있기 때문에 이러한 환경을 제한해야 합니다. 자세한 정보는 보호된 환경을 참조하십시오.