파이프라인 리소스

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

Azure Pipelines는 YAML 파일 및 소스 코드를 보호하는 것 이상의 보안을 제공합니다. YAML 파이프라인이 실행되면 리소스에 대한 액세스는 checks라는 시스템을 통과합니다. 리소스를 안전하게 유지하기 위해 파이프라인 실행을 일시 중단하거나 실패할 수도 있습니다. 파이프라인은 보호되고 열려 있는 두 가지 유형의 리소스에 액세스할 수 있습니다.

보호된 리소스

파이프라인은 종종 비밀에 액세스할 수 있습니다. instance 빌드에 서명하려면 서명 인증서가 필요합니다. 프로덕션 환경에 배포하려면 해당 환경에 대한 자격 증명이 필요합니다. Azure Pipelines는 환경을 제외한 모든 보호된 리소스에 대한 모든 파이프라인에 대한 리소스에 대한 액세스를 열 때 관리자 역할이 필요합니다. 환경의 경우 작성자 역할이 필요합니다. 리소스 보호에 대해 자세히 알아봅니다.
Azure Pipelines에서 다음 모든 항목은 YAML 파이프라인에서 보호되는 리소스로 간주됩니다.

"보호됨"은 다음을 의미합니다.

  • 프로젝트 내의 특정 사용자 및 특정 파이프라인에 액세스할 수 있습니다. 프로젝트 외부의 사용자 및 파이프라인에서 액세스할 수 없습니다.
  • YAML 파이프라인이 이러한 리소스 중 하나를 사용할 때마다 다른 수동 또는 자동화된 검사를 실행할 수 있습니다. 보호된 리소스에 대한 자세한 내용은 파이프라인 리소스 정보를 참조하세요.

리포지토리 리소스 보호

필요에 따라 리포지토리를 보호할 수 있습니다. organization 또는 프로젝트 수준에서 Azure Pipelines 액세스 토큰의 scope 언급된 리포지토리로 제한하도록 선택할 수 있습니다. 이렇게 하면 Azure Pipelines는 다음 두 가지 보호를 더 추가합니다.

  • 작업을 실행하기 위해 에이전트에 지정된 액세스 토큰은 파이프라인의 섹션에서 명시적으로 언급된 리포지토리에 resources 만 액세스할 수 있습니다.
  • 파이프라인에 추가된 리포지토리는 파이프라인이 리포지토리를 처음 사용할 때 리포지토리에 대한 액세스를 기여하는 사람이 권한을 부여해야 합니다.

이 설정은 2020년 5월 이후에 만든 모든 조직에 대해 기본적으로 설정됩니다. 이전에 만든 조직은 조직 설정에서 사용하도록 설정해야 합니다.

리소스 열기

프로젝트의 다른 모든 리소스는 열린 리소스로 간주됩니다. 열린 리소스는 다음과 같습니다.

  • Artifacts
  • Pipelines
  • 테스트 계획
  • 작업 항목

프로젝트에 대한 섹션의 리소스에 액세스할 수 있는 파이프라인에 대해 자세히 알아봅니다.

사용자 권한

보호된 리소스에 대한 첫 번째 방어선은 사용자 권한입니다. 일반적으로 필요한 사용자에게만 사용 권한을 부여해야 합니다. 보호된 모든 리소스에는 유사한 보안 모델이 있습니다. 리소스에 대한 사용자 역할의 멤버는 다음을 수행할 수 있습니다.

  • 해당 리소스에 구성된 승인자 및 검사 제거
  • 해당 리소스를 사용하기 위해 다른 사용자 또는 파이프라인에 대한 액세스 권한 부여

파이프라인에 대한 사용자 권한 스크린샷

파이프라인 권한

YAML 파이프라인을 사용하는 경우 사용자 권한만으로는 보호된 리소스를 보호할 수 없습니다. 보호된 리소스의 이름(예: 프로덕션 환경에 대한 서비스 연결)을 쉽게 복사하여 다른 파이프라인에 포함할 수 있습니다. 파이프라인 권한은 이러한 복사로부터 보호합니다. 보호된 각 리소스에 대해 "모든 파이프라인"에 대한 액세스 권한을 부여하는 옵션을 사용하지 않도록 설정했는지 확인합니다. 대신 신뢰할 수 있는 특정 파이프라인에 대한 액세스 권한을 명시적으로 부여했습니다.

파이프라인 권한 스크린샷

확인

YAML에서는 사용자 및 파이프라인 권한의 조합으로 보호된 리소스를 완전히 보호하는 데 충분하지 않습니다. 리소스에 대한 파이프라인 권한은 전체 파이프라인에 부여됩니다. 어떤 것도 악의적 사용자가 리포지토리에 다른 분기를 만들고, 악성 코드를 삽입하고, 동일한 파이프라인을 사용하여 해당 리소스에 액세스하는 것을 방지하지 않습니다. 악의적인 의도가 없더라도 대부분의 파이프라인은 프로덕션에 배포하기 전에 변경 내용(특히 파이프라인 자체에 대한)을 두 번째 눈으로 확인해야 합니다. 검사를 통해 특정 조건이 충족될 때까지 파이프라인 실행을 일시 중지할 수 있습니다.

  • 수동 승인 검사. 프로젝트 보호 리소스를 사용하는 모든 실행은 계속하기 전에 수동 승인을 위해 차단됩니다. 수동 보호를 사용하면 코드를 검토하고 올바른 분기에서 오는지 확인할 수 있습니다.
  • 보호된 분기 검사. 일부 분기에 대해 수동 코드 검토 프로세스가 있는 경우 이 보호를 파이프라인으로 확장할 수 있습니다. 각 리소스에 대한 보호된 분기 검사 구성합니다. 이렇게 하면 파이프라인이 사용자 분기를 기반으로 실행되지 않도록 자동으로 중지됩니다.
  • 보호된 리소스 검사 환경, 서비스 연결, 리포지토리, 변수 그룹, 에이전트 풀, 변수 그룹 및 보안 파일에 검사를 추가하여 파이프라인의 단계가 리소스를 사용하려면 먼저 충족해야 하는 조건을 지정할 수 있습니다. 검사 및 승인에 대해 자세히 알아봅니다.

검사 구성 스크린샷

다음 단계

다음으로, 리소스를 프로젝트 구조로 그룹화하는 방법을 고려합니다.