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