Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
이 문서에서는 ARM(Azure Resource Manager) 서비스 연결을 만들 때 발생할 수 있는 문제를 해결하는 데 도움이 되는 일반적인 문제 해결 시나리오를 제공합니다. 서비스 연결을 만들고, 편집하고, 보호하는 방법을 알아보려면 서비스 연결 관리를 참조하세요. 워크로드 ID 관련 문제를 해결하는 방법을 알아보려면 Azure Resource Manager 워크로드 ID 서비스 연결 문제 해결 을 참조하세요.
이 문서에서는 겹칠 수 있는 방식으로 "테넌트" 및 "디렉터리"라는 용어를 사용합니다. 테넌트는 조직에서 클라우드 서비스에 대한 모든 ID 및 액세스 제어를 수신하고 관리하는 격리된 전용 Microsoft Entra ID 인스턴스입니다. 디렉터리란 리소스에 대한 액세스를 관리하는 데 사용되는 사용자, 그룹 및 애플리케이션과 같은 개체를 보유하는 해당 테넌트 내의 컨테이너입니다.
팁 (조언)
오류 메시지 문제 해결에 대한 도움말을 Copilot 에 요청할 수 있습니다. 자세한 내용은 AI를 사용하여 Azure DevOps 서비스 연결 오류 문제를 해결하세요.
Azure Resource Manager 서비스 연결을 만들 때 발생하는 일
Azure Resource Manager 서비스 연결을 사용하여 Azure에 연결하기 위한 여러 인증 옵션이 있습니다. 앱 등록 또는 관리 ID와 함께 워크로드 ID 페더레이션을 사용하는 것이 좋습니다.
서비스 연결 만들기 프로세스가 성공하면 Azure DevOps는 Microsoft Entra 테넌트에서 이러한 단계를 자동으로 수행합니다. 이 프로세스 중에 오류가 발생하는 경우 아래의 문제 해결 시나리오를 참조하세요.
새 Azure Resource Manager 서비스 연결을 저장하면 Azure DevOps는 다음 작업을 수행합니다.
- 선택한 구독에 대한 Microsoft Entra 테넌트에 연결합니다.
- 사용자를 대신하여 Entra ID로 애플리케이션을 만듭니다.
- 애플리케이션을 선택한 구독에 기여자로 할당합니다.
- 이 애플리케이션의 세부 정보를 사용하여 Azure Resource Manager 서비스 연결을 만듭니다.
참고
서비스 연결을 만들려면 프로젝트 설정에서 엔드포인트 작성자 그룹에 대한 작성자 또는 관리자 역할을 할당해야 합니다. 프로젝트 설정>서비스 연결>기타 작업>보안. 프로젝트 참가자는 기본적으로 이 그룹에 추가됩니다.
사용자에게 디렉터리에 게스트 권한만 있습니다.
이 오류는 Azure DevOps가 애플리케이션을 만들고 Microsoft Entra ID에서 권한을 할당하려고 할 때 자동 서비스 연결 생성 프로세스 중에 발생합니다( Azure Resource Manager 서비스 연결을 만들 때 발생하는 작업에서 2-3단계). Microsoft Entra ID 디렉터리에 게스트 권한만 있는 사용자가 Azure DevOps에서 Azure Resource Manager 서비스 연결을 만들려고 하지만 권한이 부족한 경우에 발생합니다.
이 문제를 해결하려면:
관리자 계정으로 Azure Portal에 로그인합니다. 계정은 소유자 또는 사용자 계정 관리자여야 합니다.
왼쪽 탐색 모음에서 Microsoft Entra ID를 선택합니다.
사용자 구독에 해당하는 적절한 디렉터리를 편집하고 있는지 확인합니다. 그렇지 않은 경우 디렉터리 전환을 선택하고 필요한 경우 적절한 자격 증명으로 로그인합니다.
관리 섹션에서 사용자를 선택합니다.
사용자 설정을 선택합니다.
외부 사용자 섹션에서 외부 공동 작업 설정 관리를 선택합니다.
게스트 사용자 권한이 제한됩니다 옵션을 아니요로 변경합니다.
또는 사용자 관리자 수준 권한을 부여할 준비가 되면 사용자를 관리자 역할의 구성원으로 만들 수 있습니다. 다음 단계를 완료합니다.
경고
사용자를 전역 관리자 역할에 할당하면 Microsoft Entra 조직의 모든 관리 설정을 읽고 수정할 수 있습니다. 조직의 5명 미만에게 이 역할을 할당하는 것이 가장 좋습니다.
관리자 계정으로 Azure Portal에 로그인합니다. 계정은 소유자 또는 사용자 계정 관리자여야 합니다.
왼쪽 탐색 창에서 Microsoft Entra ID를 선택합니다.
사용자 구독에 해당하는 적절한 디렉터리를 편집하고 있는지 확인합니다. 그렇지 않은 경우 디렉터리 전환을 선택하고 필요한 경우 적절한 자격 증명으로 로그인합니다.
관리 섹션에서 사용자를 선택합니다.
검색 상자를 사용하여 관리하려는 사용자를 찾습니다.
디렉터리 역할을 관리 섹션에서 선택하고, 그런 다음 역할을 변경합니다. 완료되면 저장을 선택합니다.
일반적으로 변경 내용을 전역적으로 적용하는 데 15~20분이 걸립니다. 그러면 사용자가 서비스 연결을 다시 만들 수 있습니다.
사용자에게 디렉터리에 애플리케이션을 추가할 권한이 없습니다.
이 오류는 Azure DevOps가 사용자 대신 Microsoft Entra ID로 애플리케이션을 만들려고 할 때 자동 서비스 연결 생성 프로세스 중에 발생합니다( Azure Resource Manager 서비스 연결을 만들 때 발생하는 작업에서 2단계). 디렉터리에 통합된 애플리케이션을 추가할 수 있는 권한이 없습니다. 디렉터리 관리자에게 이 설정을 변경할 수 있는 권한이 있습니다.
이 문제를 해결하려면:
왼쪽 탐색 창에서 Microsoft Entra ID를 선택합니다.
사용자 구독에 해당하는 적절한 디렉터리를 편집하고 있는지 확인합니다. 그렇지 않은 경우 디렉터리 전환을 선택하고 필요한 경우 적절한 자격 증명으로 로그인합니다.
사용자를 선택한 다음, 사용자 설정을 선택합니다.
앱 등록에서 사용자가 애플리케이션을 등록할 수 있는 옵션을 예로 변경합니다.
Entra ID에 필요한 권한이 이미 있는 기존 사용자를 사용하여 서비스 주체를 만들 수도 있습니다. 기존 서비스 주체와 Azure Resource Manager 서비스 연결 만들기를 참조하세요.
액세스 토큰을 가져오지 못했거나 유효한 새로 고침 토큰을 찾을 수 없습니다.
이러한 오류는 일반적으로 세션이 만료되는 경우에 발생합니다.
이러한 문제를 해결하려면 다음을 수행합니다.
Azure DevOps에서 로그아웃합니다.
InPrivate 또는 incognito 브라우저 창을 열고 Azure DevOps로 이동합니다.
적절한 자격 증명으로 로그인합니다.
조직 및 프로젝트를 선택합니다.
서비스 연결을 다시 만들도록 시도하세요. 자세한 단계는 서비스 연결 관리를 참조하세요.
서비스 연결을 편집하거나 새로 만들려고 할 때, 현재 활성화된 Azure 구독이 없는 것 같습니다.
이 오류는 일반적으로 여러 Entra ID 테넌트의 일부일 때 발생합니다.
이 문제를 해결하려면:
VS 프로필로 이동합니다.
여러 테넌트가 있는지 확인합니다.
각 테넌트를 선택한 후 다시 인증하십시오.
서비스 연결을 만든 다음 구독이 로드되는지 확인합니다.
기여자 역할을 할당하지 못했습니다.
이 오류는 Azure DevOps가 애플리케이션을 구독에 기여자로 할당하려고 할 때 자동 서비스 연결 생성 프로세스 중에 발생합니다( Azure Resource Manager 서비스 연결을 만들 때 발생하는 일의 3단계). 이 오류는 일반적으로 선택한 Azure 구독에 대한 쓰기 권한이 없는 경우에 발생합니다.
이 문제를 해결하려면 구독 관리자에게 Microsoft Entra ID에 적절한 역할을 할당하도록 요청합니다.
서비스 연결을 만들 때 구독이 나열되지 않음
이 문제의 원인은 여러 가지가 있습니다.
다양한 Azure 구독 드롭다운 메뉴(청구, 서비스 연결 등)에 나열된 최대 50개의 Azure 구독을 초과 했습니다. 서비스 연결을 설정하고 50개 이상의 Azure 구독이 있는 경우 일부 구독이 나열되지 않습니다. 이 시나리오에서는 다음 단계를 완료합니다.
Azure 구독의 Microsoft Entra 인스턴스에 새 네이티브 Microsoft Entra 사용자를 만듭니다.
청구를 설정하거나 서비스 연결을 만들 수 있는 적절한 권한을 갖도록 Microsoft Entra 사용자를 설정합니다. 자세한 내용은 Azure DevOps 조직에 대한 청구를 설정할 수 있는 사용자 추가를 참조하세요.
관련자 액세스 수준이 있는 Azure DevOps 조직에 Microsoft Entra 사용자를 추가한 다음 프로젝트 컬렉션 관리자 그룹에 추가하거나(대금 청구) 팀 프로젝트에 서비스 연결을 만들 수 있는 충분한 권한이 있는지 확인합니다.
새 사용자 자격 증명을 사용하여 Azure DevOps에 로그인하고 청구를 설정합니다. 목록에 하나의 Azure 구독만 표시됩니다.
Azure DevOps Services에 캐시된 이전 사용자 토큰: ARM(Azure Resource Manager) 서비스 연결을 만들 때 Azure 구독이 표시되지 않는 경우 Azure DevOps Services에 캐시된 이전 사용자 토큰 때문일 수 있습니다. Azure 구독의 목록 화면에 사용자 토큰이 오래되었음을 나타내는 오류 또는 경고 메시지가 표시되지 않으므로 이 시나리오는 즉시 명확하지 않습니다. 이 문제를 해결하려면 다음 단계를 수행하여 Azure DevOps Services에서 캐시된 사용자 토큰을 수동으로 업데이트합니다.
- Azure DevOps Services에서 로그아웃하고 다시 로그인합니다. 이 작업은 사용자 토큰을 새로 고칠 수 있습니다.
- 브라우저 캐시 및 쿠키를 지워서 이전 토큰이 제거되었는지 확인합니다.
- Azure DevOps 포털에서 서비스 연결로 이동하여 Azure에 대한 연결을 다시 인증합니다. 이 단계에서는 Azure DevOps에 새 토큰을 사용하도록 요청합니다.
잘못된 지원 계정 유형 설정:지원되는 계정 유형 설정을 변경하고 애플리케이션을 사용할 수 있는 사용자를 정의하여 이 문제를 해결합니다. 아래 단계를 수행하세요.
Azure Portal에 로그인합니다.
여러 테넌트에 액세스할 수 있는 경우 위쪽 메뉴에서 디렉터리 + 구독 필터를 사용하여 애플리케이션을 등록할 테넌트를 선택합니다.
왼쪽 창에서 Microsoft Entra ID를 선택합니다.
앱 등록을 선택합니다.
등록된 애플리케이션 목록에서 애플리케이션을 선택합니다.
인증에서 지원되는 계정 유형을 선택합니다.
지원되는 계정 유형에서 이 애플리케이션을 사용하거나 이 API에 액세스할 수 있는 사람은 누구인가요? 조직 디렉터리에서 계정을 선택합니다.
완료되면 저장을 선택합니다.
서비스 주체 또는 비밀이 만료됨
Azure DevOps에서 자동으로 만드는 서비스 주체 또는 비밀은 만료되고 갱신이 필요합니다. 토큰을 새로 고치는 데 문제가 발생하는 경우 액세스 토큰을 가져오지 못했거나 유효한 새로 고침 토큰을 찾을 수 없음을 참조하세요. 비밀을 갱신할 필요가 없도록 하려면 Azure Resource Manager와 워크로드 ID 페더레이션을 사용합니다.
토큰이 만료되면 다음 오류 메시지 중 하나가 표시될 수 있습니다.
AADSTS7000215: Invalid client secret is providedAADSTS7000222: The provided client secret keys for app '***' are expiredInvalid client id or client secret
자동으로 생성된 서비스 주체 또는 비밀에 대한 액세스 토큰을 갱신하려면 다음을 수행합니다.
프로젝트 설정>서비스 연결로 이동한 다음 새로 고칠 서비스 연결을 선택합니다.
비밀 회전을 선택합니다.
이제 서비스 주체 또는 비밀에 대한 토큰이 3개월 더 갱신됩니다.
참고
서비스 주체의 토큰이 만료되지 않은 경우에도 이 작업을 사용할 수 있습니다. 서비스 주체에 등록된 앱의 비밀을 업데이트하므로 작업을 수행하는 사용자에게 구독 및 Microsoft Entra ID에 대한 적절한 권한이 있는지 확인합니다. 자세한 내용은 비밀로 앱 등록 만들기 를 참조하고 Resource Manager 서비스 연결을 만들면 어떻게 되나요?
서비스 주체 클라이언트 ID를 사용하여 JWT를 가져오지 못했습니다.
이 문제는 Microsoft Entra ID 수준에서 만료된 비밀 또는 기타 문제가 있는 서비스 연결을 저장하려고 할 때 발생합니다.
이 문제를 해결하려면:
프로젝트 설정이동한 다음 수정할 서비스 연결을 선택합니다.
오른쪽 위 모서리에서 편집을 선택한 다음, 서비스 연결을 수정합니다. 가장 쉽고 권장되는 변경은 설명을 추가하는 것입니다.
저장을 선택하여 서비스 연결을 저장합니다.
참고
다음과 같은 Failed to obtain the Json Web Token(JWT) using service principal client ID. Exception message: AADSTS7000112: Application is disabled.오류가 발생하는 경우 Microsoft Entra ID 팀과 협력하여 사용자가 서비스 주체와 연결된 엔터프라이즈 애플리케이션 에서 로그인할 수 있도록 설정된 옵션이 비활성화되지 않은지 확인합니다.
Azure 구독이 이전 작업 출력에서 전달되지 않음
릴리스 파이프라인에 대해 Azure 구독을 동적으로 설정하고 이전 작업의 출력 변수를 사용하려는 경우 이 문제가 발생할 수 있습니다.
이 문제를 해결하려면 파이프라인의 변수 섹션 내에 값이 정의되어 있는지 확인합니다. 그런 다음 파이프라인의 작업 간에 이 변수를 전달할 수 있습니다.
지원되는 인증 메커니즘은 무엇인가요? 관리 ID는 어떻게 작동합니까?
Azure Resource Manager 서비스 연결은 SPA(서비스 주체 인증) 또는 관리 ID 인증을 사용하여 Azure 구독에 연결할 수 있습니다.
Azure Resource Manager 서비스 연결은 다음을 사용하여 Azure 구독, 관리 그룹 또는 기계 학습 작업 영역에 연결할 수 있습니다.
- 앱 등록(권장): 워크로드 ID 페더레이션 또는 비밀을 사용하여 연결을 인증합니다.
- 관리 ID: Azure 리소스에 대한 관리 ID는 Azure 서비스에 Microsoft Entra ID에서 자동으로 관리되는 ID를 제공합니다. 에이전트 할당 관리 ID를 사용할 수도 있습니다.
관리 ID를 인증 방법으로 사용하여 서비스 연결을 설정하는 경우 프로세스는 새 관리 ID를 만들지 않습니다. 서비스 연결을 설정하기만 하면 됩니다. 이 인증 방법이 제대로 작동하려면 특정 조건을 충족해야 합니다. 특히 관리 ID는 선택한 인증 방법이기 때문에 사용 중인 가상 머신에는 시스템 할당 ID가 있어야 합니다. 또한 이 가상 머신은 워크플로가 완전히 실행되도록 파이프라인 내에서 자체 호스팅 에이전트 역할을 하여 파이프라인이 서비스 연결을 통해 변경 내용을 배포할 수 있도록 해야 합니다. VM에 할당된 시스템 ID는 동일한 VM이 파이프라인 내 에이전트로 작동하여 인증을 활성화하는 것을 확인합니다. 이 설정을 사용하면 기존 관리 ID를 활용할 수 있습니다.
가상 머신의 관리 ID에 대한 자세한 내용은 역할 할당을 참조하세요.
참고
Microsoft 호스팅 에이전트는 관리 ID를 지원하지 않습니다. 이 시나리오에서는 Azure VM에서 자체 호스팅 에이전트를 설정하고 해당 VM에 대한 관리 ID를 구성해야 합니다.
AI를 사용하여 Azure DevOps 서비스 연결 오류 문제 해결
코필로트 채팅에 대한 이 예제 프롬프트는 Copilot가 오류 코드 및 메시지 문제를 해결하는 데 도움이 됩니다. 이 프롬프트를 복사하여 코필로트 채팅에 붙여넣고 자리 표시자를 특정 오류 메시지로 바꿉 있습니다.
I'm getting this Azure DevOps service connection error: [PASTE YOUR ERROR MESSAGE HERE]
Can you help me troubleshoot this issue? Please provide step-by-step instructions to:
1. Identify the root cause
2. Fix the configuration in Azure or Entra ID
3. Verify the solution works
Context: This is for an Azure Resource Manager service connection in Azure DevOps.