Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure DevOps는 보안 개념의 조합을 사용하여 권한 있는 사용자만 기능, 함수 및 데이터에 액세스할 수 있도록 합니다. 액세스는 사용자의 자격 증명을 확인하는 인증과 계정 자격에 따라 권한을 부여하는 권한 부여의 두 가지 주요 프로세스에 의해 결정됩니다. 이러한 프로세스는 함께 각 사용자가 Azure DevOps 내에서 수행할 수 있는 작업을 제어합니다.
이 문서는 권한, 액세스 및 보안 그룹 시작 에 대해 확장하고 관리자가 Azure DevOps 환경을 보호하는 데 사용할 수 있는 다양한 계정 유형, 인증 및 권한 부여 방법 및 보안 정책을 이해하는 데 도움이 됩니다.
계정 유형
- 사용자
- 조직 소유자
- 서비스 계정
- 서비스 주체 또는 관리 ID
- 작업 에이전트
인증
- 사용자 자격 증명
- Windows 인증
- 2FA(2단계 인증)
- SSH 키 인증
- Microfost Entra 토큰
- 개인용 액세스 토큰
- Oauth 구성
- Active Directory 인증 라이브러리
승인
- 보안 그룹 멤버 자격
- 역할 기반 액세스 제어
- 액세스 수준
- 기능 플래그
- 보안 네임스페이스 및 권한
정책
- 개인정보처리방침 URL
- 애플리케이션 연결 및 보안 정책
- 사용자 정책
- Git 리포지토리 및 분기 정책
계정 유형
- 사용자
- 서비스 계정
- 서비스 주체 또는 관리 ID
- 작업 에이전트
인증
- 사용자 자격 증명
- Windows 인증
- 2FA(2단계 인증)
- SSH 키 인증
- 개인용 액세스 토큰
- Oauth 구성
- Active Directory 인증 라이브러리
승인
- 보안 그룹 멤버 자격
- 역할 기반 권한
- 액세스 수준
- 기능 플래그
- 보안 네임스페이스 및 권한
정책
- Git 리포지토리 및 분기 정책
중요합니다
Azure DevOps는 대체 자격 증명 인증을 지원하지 않습니다. 대체 자격 증명을 계속 사용하는 경우 보다 안전한 인증 방법으로 전환하는 것이 좋습니다.
두 Azure DevOps는 계획에서 배포까지 소프트웨어 개발을 지원합니다. 각 플랫폼은 Azure SQL 데이터베이스를 비롯한 Microsoft Azure의 Platform as a Service 인프라 및 서비스를 사용하여 프로젝트에 안정적이고 전역적으로 사용 가능한 서비스를 제공합니다.
Microsoft에서 프로젝트의 안전, 사용 가능, 보안 및 프라이빗을 보장하는 방법에 대한 자세한 내용은 Azure DevOps 데이터 보호 개요를 참조하세요.
계정
사용자 사용자 계정이 주된 초점이지만 Azure DevOps는 다양한 작업에 대해 다양한 다른 계정 유형도 지원합니다.
- 조직 소유자: Azure DevOps Services 조직의 작성자 또는 할당된 소유자입니다. 조직의 소유자를 찾으려면 조직 소유자 조회를 참조하세요.
- 서비스 계정: 에이전트 풀 서비스, PipelinesSDK와 같은 특정 서비스를 지원하는 데 사용되는 내부 Azure DevOps 조직입니다. 서비스 계정에 대한 설명은 보안 그룹, 서비스 계정 및 권한을 참조 하세요.
- 서비스 주체 또는 관리 ID: Microsoft가 아닌 애플리케이션을 대신하여 작업을 수행하기 위해 조직에 추가된 Microsoft Entra 애플리케이션 또는 관리 ID 입니다. 일부 서비스 주체는 내부 작업을 지원하기 위해 내부 Azure DevOps 조직을 참조합니다.
- 작업 에이전트: 일정에 따라 특정 작업을 실행하는 데 사용되는 내부 계정입니다.
- 타사 계정: 웹 후크, 서비스 연결 또는 기타 타사 애플리케이션을 지원하기 위해 액세스 권한이 필요한 계정입니다.
보안 관련 문서 전체에서 "사용자"는 사용자 허브에 추가된 모든 ID를 참조하며, 여기에는 사용자 사용자 및 서비스 주체가 포함될 수 있습니다.
- 서비스 계정: 에이전트 풀 서비스, PipelinesSDK와 같은 특정 서비스를 지원하는 데 사용되는 내부 Azure DevOps 조직입니다. 서비스 계정에 대한 설명은 보안 그룹, 서비스 계정 및 권한을 참조 하세요.
- 서비스 주체 또는 관리 ID: Microsoft가 아닌 애플리케이션을 대신하여 작업을 수행하기 위해 조직에 추가된 Microsoft Entra 애플리케이션 또는 관리 ID입니다. 일부 서비스 주체는 내부 작업을 지원하기 위해 내부 Azure DevOps 조직을 참조합니다.
- 작업 에이전트: 일정에 따라 특정 작업을 실행하는 데 사용되는 내부 계정입니다.
- 타사 계정: 웹 후크, 서비스 연결 또는 기타 타사 애플리케이션을 지원하기 위해 액세스 권한이 필요한 계정입니다.
계정을 관리하는 가장 효과적인 방법은 보안 그룹에 계정을 추가하는 것입니다.
참고 항목
프로젝트 컬렉션 관리자 그룹의 조직 소유자 구성원에게 거의 모든 기능 및 기능에 대한 모든 액세스 권한이 부여됩니다.
인증
인증은 Azure DevOps에 로그인하는 동안 제공된 자격 증명을 기반으로 사용자의 ID를 확인합니다. Azure DevOps는 인증을 관리하기 위해 여러 ID 시스템과 통합됩니다.
- Microsoft Entra ID: 대규모 사용자 그룹을 관리하는 조직에 권장됩니다. 강력한 클라우드 기반 인증 및 사용자 관리를 제공합니다.
- MSA(Microsoft 계정) : Azure DevOps 조직에 액세스하는 소규모 사용자 기반에 적합합니다. 클라우드 인증을 지원합니다.
- AD(Active Directory) : 기존 AD 인프라를 사용하여 많은 사용자가 있는 온-프레미스 배포에 권장됩니다.
Microsoft Entra ID와 Microsoft 계정은 모두 클라우드 인증을 지원합니다. 자세한 내용은 Microsoft Entra ID를 사용하여 Azure DevOps에 액세스하는 방법을 참조하세요.
온-프레미스 환경의 경우 Active Directory를 사용하여 사용자 액세스를 효율적으로 관리합니다. 온-프레미스 배포에서 사용할 그룹 설정에 대해 자세히 알아봅니다.
프로그래밍 방식으로 인증
사용 가능한 인증 방법 중 하나를 선택하여 사용자 이름과 암호를 반복적으로 입력하지 않고 프로그래밍 방식으로 Azure DevOps 조직에 액세스합니다. 다음 방법을 사용하여 워크플로를 자동화하거나 REST API와 통합하거나 사용자 지정 애플리케이션을 빌드합니다.
- OAuth를 사용하여 사용자를 대신하여 작업을 수행하는 애플리케이션을 빌드합니다. 사용자는 앱에 동의해야 합니다. 새 앱의 경우 Microsoft Entra OAuth를 사용합니다.
- 서비스 주체 또는 관리 ID를 사용하여 워크플로를 자동화하거나 조직 리소스에 정기적으로 액세스하는 도구를 빌드합니다. 애플리케이션 자체를 대신하여 Microsoft Entra 토큰을 발급합니다.
- 안전한 클라우드 기반 인증 및 사용자 관리를 위해 Microsoft Entra ID 를 사용합니다.
- 임시 요청 또는 초기 프로토타입 생성에는 PAT(개인용 액세스 토큰) 를 사용합니다. 누출 및 오용에 더 취약하기 때문에 장기 앱 개발을 위해 PAT를 사용하지 마세요.
팁 (조언)
항상 자격 증명을 안전하게 저장 하고 인증 방법을 관리하기 위한 모범 사례를 따릅니다.
기본적으로 조직에서는 모든 인증 방법에 대한 액세스를 허용합니다. 조직 관리자는 보안 정책을 사용하지 않도록 설정하여 이러한 인증 방법에 대한 액세스를 제한할 수 있습니다. 테넌트 관리자는 만들 수 있는 방법을 제한하여 PAT 위험을 추가로 줄일 수 있습니다.
승인
권한 부여는 인증된 ID에 Azure DevOps의 특정 서비스, 기능, 함수, 개체 또는 메서드에 액세스하는 데 필요한 권한이 있는지 여부를 결정합니다. 인증 검사는 인증에 성공한 후에 항상 발생합니다. 인증에 실패하면 권한 부여가 평가되지 않습니다. 인증 후에도 사용자 또는 그룹이 필요한 권한이 없는 경우 특정 작업에 대한 액세스가 거부될 수 있습니다.
Azure DevOps는 사용자에게 직접 할당되거나 보안 그룹 또는 역할을 통해 상속된 권한을 통해 권한 부여를 관리합니다. 액세스 수준 및 기능 플래그는 특정 기능에 대한 액세스를 추가로 제어할 수 있습니다. 이러한 권한 부여 방법에 대한 자세한 내용은 권한, 액세스 및 보안 그룹 시작을 참조하세요.
보안 네임스페이스 및 권한
보안 네임스페이스는 Azure DevOps 리소스에 대한 특정 작업에 대한 사용자 액세스 수준을 정의합니다.
- 각 리소스 패밀리(예: 작업 항목 또는 Git 리포지토리)에는 고유한 네임스페이스가 있습니다.
- 각 네임스페이스 내에는 ACL(액세스 제어 목록)이 여러 개 있을 수 있습니다.
- 각 ACL에는 토큰, 상속 플래그 및 하나 이상의 ACE(액세스 제어 항목)가 포함됩니다.
- 각 ACE는 ID 설명자, 허용되는 권한에 대한 비트 마스크 및 거부된 권한에 대한 비트 마스크를 지정합니다.
자세한 내용은 보안 네임스페이스 및 권한 참조를 참조하세요.
보안 정책
조직 및 코드를 보호하기 위해 조직 수준(프로젝트 컬렉션 관리자) 또는 테넌트 수준(Azure DevOps 관리자) 관리자는 정책 범위에 따라 다양한 보안 정책을 사용하거나 사용하지 않도록 설정할 수 있습니다. 고려해야 할 주요 정책은 다음과 같습니다.
- 내부 및 외부 게스트 데이터 개인 정보를 처리하는 방법을 설명하는 개인 정보 정책 URL을 지정합니다.
- 조직의 사용자가 공개 프로젝트를 만들 수 있는지 여부를 결정합니다.
조직이 Microsoft Entra ID에 연결된 경우 다음과 같은 다른 보안 기능에 액세스할 수 있습니다.
- 조직 만들기를 특정 사용자로 제한합니다.
- 외부 게스트를 조직에 초대합니다.
- 팀 및 프로젝트 관리자가 새 사용자를 초대하도록 허용합니다.
- CAP(조건부 액세스 정책) 유효성 검사를 사용하도록 설정합니다.
- 조직에서 감사 이벤트와 스트림을 모니터링합니다.
조직의 보안 태세를 강화하고 데이터 개인 정보 보호 및 액세스 요구 사항을 준수하도록 이러한 정책을 검토하고 구성합니다.
프로젝트 범위 사용자 그룹
기본적으로 조직에 추가된 사용자는 사용자 목록, 프로젝트 목록, 청구 세부 정보, 사용량 현황 데이터 등을 비롯한 모든 조직 및 프로젝트 정보 및 설정을 볼 수 있습니다.
특정 사용자에 대한 액세스—예: 관련자, Microsoft Entra 게스트 사용자 또는 특정 보안 그룹 구성원의 경우—를 제한하려면 조직에 대해 특정 프로젝트에 대한 사용자 표시 및 협업을 제한하는 미리 보기 기능을 활성화하십시오. 이 기능을 사용하도록 설정하면 Project-Scoped 사용자 그룹에 추가된 모든 사용자 또는 그룹이 다음과 같은 방법으로 제한됩니다.
- 액세스는 조직 설정 내의 개요 및 프로젝트 페이지로 제한됩니다.
- 사용자는 명시적으로 추가된 프로젝트에만 연결하고 볼 수 있습니다.
- 사용자는 동일한 프로젝트에 명시적으로 추가된 사용자 및 그룹 ID만 선택할 수 있습니다.
자세한 내용은 조직 관리: 프로젝트 등에 대한 사용자 가시성 제한 및미리 보기 기능 관리를 참조하세요.
경고
이 미리 보기 기능을 사용할 때는 다음과 같은 제한 사항을 고려하세요.
- 이 섹션에서 설명하는 제한된 표시 유형 기능은 웹 포털을 통한 상호 작용에만 적용됩니다. REST API 또는
azure devops
CLI 명령을 사용하면 프로젝트 멤버가 제한된 데이터에 액세스할 수 있습니다. - 제한된 그룹의 사용자는 Azure DevOps에 명시적으로 추가된 사용자만 선택할 수 있으며 Microsoft Entra 그룹 멤버 자격을 통해 액세스할 수 있는 사용자는 선택할 수 없습니다.
- Microsoft Entra ID에서 기본 액세스 권한이 있는 제한된 그룹의 구성원인 게스트 사용자는 사용자 선택기가 있는 사용자를 검색할 수 없습니다.
Git 리포지토리 및 분기 정책
코드를 보호하기 위해 다양한 Git 리포지토리 및 분기 정책을 설정할 수 있습니다. 자세한 내용은 다음 문서를 참조하세요.
Azure Repos 및 Azure Pipelines 보안
리포지토리 및 빌드 및 릴리스 파이프라인은 고유한 보안 문제를 제기하므로 이 문서에서 설명하는 기능 이외의 다른 기능이 사용됩니다. 자세한 내용은 다음 문서를 참조하세요.
- Azure Pipelines 보안
- YAML 파이프라인을 보호하는 방법 계획
- 리포지토리 보호
- 파이프라인 리소스
- 파이프라인에서 프로젝트를 안전하게 구성하기 위한 권장 사항
- 템플릿을 통한 보안
- 파이프라인에서 변수 및 매개 변수를 안전하게 사용하는 방법
- Azure Pipelines에서 공유 인프라를 보호하기 위한 권장 사항
- 기타 보안 고려 사항