Azure Pipelines 보안
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Azure Pipelines는 고유한 보안 문제를 제시합니다. 파이프라인을 사용하면 스크립트를 실행하거나 프로덕션 환경에 코드를 배포할 수 있지만 악성 코드의 통로가 되는 것을 방지하는 것이 중요합니다. 개발 팀이 필요로 하는 유연성과 성능과 보안의 균형을 맞추는 것이 필수적입니다.
참고 항목
Azure Pipelines는 Azure 내의 보안 인프라를 기반으로 하는 Azure DevOps Services 제품군의 일부입니다. 모든 Azure DevOps Services의 보안 개념을 포괄적으로 이해하려면 다음 리소스를 보는 것이 좋습니다.
일반적으로 조직은 엄격한 잠금을 통해 보안을 적용합니다. 코드, 파이프라인 및 프로덕션 환경은 심각한 액세스 제한에 직면합니다. 이 접근 방식은 제한된 사용자 및 프로젝트가 있는 소규모 조직에서 잘 작동하지만 대규모 조직은 다른 현실에 직면해 있습니다. 수많은 참가자가 코드에 액세스할 수 있으므로 '위반 가정' 원칙이 중요해집니다. 악의적 사용자가 리포지토리에 대한 기여자 액세스 권한을 가지고 있는 것처럼 작동하여 경계를 강화해야 합니다.
보안 목표를 달성하려면 다음 사항을 고려하세요.
악성 코드 실행 방지:
- 다음 작업을 포함하는 악성 코드의 무단 실행을 방지하도록 파이프라인이 구성되어 있는지 확인합니다.
- 중요한 비밀 및 자격 증명에 대한 액세스를 제한합니다.
- 의도하지 않은 동작을 방지하기 위해 입력 매개 변수 및 인수의 유효성을 검사합니다.
- 잠재적인 보안 위험에 대한 파이프라인 스크립트를 정기적으로 검토하고 감사합니다.
- 다음과 같은 보안 사례를 구현합니다.
- 스크립트에서 매개 변수가 있는 쿼리를 사용하여 SQL 삽입을 방지합니다.
- 셸 명령 삽입을 방지하기 위해 인수의 특수 문자를 이스케이프합니다.
- 파이프라인 서비스 연결에 대한 사용 권한을 제한합니다.
- 실행에 대한 세분화된 제어를 제공하고 보안 위험이 덜한 YAML 파이프라인을 사용하는 것이 좋습니다.
- 다음 작업을 포함하는 악성 코드의 무단 실행을 방지하도록 파이프라인이 구성되어 있는지 확인합니다.
횡적 노출 완화:
- 파이프라인을 격리하여 조직의 프로젝트 및 리포지토리 내에서 횡적 이동을 방지합니다.
- 각 파이프라인에 필요한 리포지토리 및 리소스에 대해서만 액세스를 제한합니다.
- 파이프라인 활동을 모니터링하고 의심스러운 동작에 대한 경고를 설정합니다.
- 정기적으로 노출을 최소화하기 위해 사용 권한을 검토하고 업데이트합니다.
YAML 파이프라인 사용:
- YAML 파이프라인은 보안 측면에서 다음과 같은 이점을 제공합니다.
- 파이프라인 단계 및 종속성을 명시적으로 정의합니다.
- 파이프라인 정의에 대한 버전 제어입니다.
- 파이프라인 구성에 대한 가시성을 명확히 합니다.
- 우발적인 잘못된 구성의 위험이 감소했습니다.
- 코드 검토 및 끌어오기 요청:
- YAML 파이프라인을 다른 코드와 같이 처리합니다.
- 변경 내용을 병합하기 위한 끌어오기 요청을 적용하여 악의적인 단계를 방지합니다.
- 분기 정책을 사용하여 이 검토 프로세스를 설정합니다.
- 리소스 액세스 관리:
- 런타임 매개 변수:
- 보안 및 유지 관리 효율성 향상을 위해 기존 파이프라인을 YAML 형식으로 마이그레이션하는 것이 좋습니다.
- YAML 파이프라인은 보안 측면에서 다음과 같은 이점을 제공합니다.
보안은 지속적인 프로세스이며 정기적인 평가 및 업데이트가 필수적입니다. YAML 파이프라인은 Azure Pipelines에 가장 적합한 보안을 제공합니다.
다음 문서에서는 보안 YAML 기반 파이프라인을 개발하는 데 도움이 되는 권장 사항을 간략하게 설명합니다.