다음을 통해 공유


Azure Pipelines에서 공유 인프라를 보호하는 권장 사항

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

Azure Pipelines의 보호된 리소스는 실제 인프라의 추상화입니다. 기본 인프라를 보호하려면 다음 권장 사항을 따릅니다.

Microsoft 호스팅 풀 사용

Microsoft 호스팅 풀은 파이프라인의 각 실행에 대해 격리 및 클린 가상 머신을 제공합니다. 가능하면 자체 호스팅 풀 대신 Microsoft 호스팅 풀을 사용합니다.

각 프로젝트에 대한 개별 에이전트

에이전트는 하나의 풀에만 바인딩할 수 있습니다. 여러 프로젝트와 풀을 공유하여 여러 프로젝트에서 에이전트를 공유할 수 있습니다. 즉, 여러 프로젝트가 동일한 에이전트에서 작업을 하나씩 실행할 수 있습니다. 이 방법은 인프라 비용을 절감하지만 횡적 이동을 허용할 수 있습니다.

이러한 형태의 횡적 이동을 제거하고 한 프로젝트가 다른 프로젝트의 에이전트를 "중독"시키는 것을 방지하려면 각 프로젝트에 대해 별도의 에이전트를 사용하여 별도의 에이전트 풀을 유지합니다.

권한이 낮은 계정을 사용하여 에이전트 실행

Azure DevOps 리소스에 직접 액세스할 수 있는 ID로 에이전트를 실행하는 것은 유혹적이지만 위험합니다. 이 문제가 있는 설정은 Microsoft Entra ID를 사용하는 조직에서 일반적입니다. Microsoft Entra ID에서 지원되는 ID로 에이전트를 실행하는 경우 작업의 액세스 토큰을 사용하지 않고 Azure DevOps API에 직접 액세스할 수 있습니다. 대신 네트워크 서비스와 같은 권한이 없는 로컬 계정으로 에이전트를 실행해야 합니다.

Azure DevOps에는 잘못된 이름의 Project Collection Service 계정 그룹이 있습니다. 상속을 통해 Project Collection Service 계정의 멤버는 Project Collection 관리istrators의 멤버이기도 합니다. 고객은 때때로 Microsoft Entra ID로 지원되고 프로젝트 컬렉션 서비스 계정의 멤버인 ID를 사용하여 빌드 에이전트를 실행합니다. 악의적 사용자가 이러한 빌드 에이전트 중 하나에서 파이프라인을 실행하는 경우 전체 Azure DevOps 조직을 인수할 수 있습니다.

또한 자체 호스팅 에이전트가 높은 권한의 계정으로 실행되는 것을 보았습니다. 이러한 에이전트는 종종 권한 있는 계정을 사용하여 비밀 또는 프로덕션 환경에 액세스합니다. 그러나 악의적 사용자가 이러한 빌드 에이전트 중 하나에서 손상된 파이프라인을 실행하는 경우 해당 비밀에 액세스할 수 있습니다. 그런 다음 악의적 사용자는 해당 계정을 통해 액세스할 수 있는 다른 시스템을 통해 횡적으로 이동할 수 있습니다.

시스템을 안전하게 유지하려면 가장 낮은 권한의 계정을 사용하여 자체 호스팅 에이전트를 실행합니다. 예를 들어 컴퓨터 계정 또는 관리 서비스 ID를 사용합니다. Azure Pipelines에서 비밀 및 환경에 대한 액세스를 관리할 수 있도록 합니다.

서비스 연결 범위 최소화

서비스 연결은 필요한 리소스에만 액세스할 수 있어야 합니다. 가능하면 Azure 서비스 연결에 대한 서비스 주체 대신 워크로드 ID 페더레이션사용합니다. 워크로드 ID 페더레이션은 업계 표준 기술인 OIDC(Open ID 커넥트)를 사용하여 Azure와 Azure DevOps 간의 인증을 용이하게 하며 비밀을 사용하지 않습니다.

Azure 서비스 연결의 범위는 서비스 연결에서 액세스해야 하는 리소스로 지정되어야 합니다. 사용자에게 전체 Azure 구독에 대한 광범위한 기여자 권한이 없어야 합니다.

Azure Resource Manager 서비스 연결을 만들 때 항상 리소스 그룹을 선택합니다. 리소스 그룹에 빌드에 필요한 VM 또는 리소스만 포함되어 있는지 확인합니다. 마찬가지로 GitHub 앱을 구성할 때 Azure Pipelines를 사용하여 빌드하려는 리포지토리에만 액세스 권한을 부여합니다.

다음 단계

보안을 위한 몇 가지 일반적인 권장 사항을 고려합니다 .