Azure Resource Manager 서비스 연결 문제 해결
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
이 문서에서는 Azure Resource Manager 서비스 연결을 만들 때 발생할 수 있는 문제를 해결하는 데 도움이 되는 일반적인 문제 해결 시나리오를 제공합니다. 서비스 연결을 만들고, 편집하고, 보호하는 방법을 알아보려면 서비스 연결 관리를 참조하세요.
Azure Resource Manager 서비스 연결을 만들면 어떻게 되나요?
서비스 연결이 없는 경우 다음과 같이 만들 수 있습니다.
프로젝트 내에서 프로젝트 설정을 선택한 다음 서비스 연결을 선택합니다.
새 서비스 연결을 선택하여 새 서비스 연결을 추가한 다음, Azure Resource Manager를 선택합니다. 완료한 경우 다음을 선택합니다.
앱 등록(자동)을 선택하고 워크로드 ID 페더레이션을 자격 증명으로 선택합니다.
구독을 선택한 다음 드롭다운 목록에서 구독을 선택합니다. 양식의 나머지 부분을 입력한 다음, 완료되면 저장을 선택합니다.
새 Azure Resource Manager 서비스 연결을 저장하면 Azure DevOps에서 다음 작업을 수행합니다.
- 선택한 구독에 대한 Microsoft Entra 테넌트에 연결합니다.
- 사용자를 대신하여 Microsoft Entra ID에서 애플리케이션을 만듭니다.
- 애플리케이션을 선택한 구독에 기여자로 할당합니다.
- 이 애플리케이션의 세부 정보를 사용하여 Azure Resource Manager 서비스 연결을 만듭니다.
참고 항목
서비스 연결을 만들려면 프로젝트 설정: 프로젝트 설정>서비스 연결 보안에서 엔드포인트 작성자 그룹에 추가됩니다.> 참가자는 기본적으로 이 그룹에 추가됩니다.
문제 해결 시나리오
서비스 연결을 만들 때 다음과 같은 문제가 발생할 수 있습니다.
사용자에게 디렉터리에 게스트 권한만 있습니다.
관리자 계정을 사용하여 Azure Portal에 로그인합니다. 계정은 소유자 또는 사용자 계정 관리자여야 합니다.
왼쪽 탐색 모음에서 Microsoft Entra ID를 선택합니다.
사용자 구독에 해당하는 적절한 디렉터리를 편집하고 있는지 확인합니다. 그렇지 않은 경우 디렉터리 전환을 선택하고 필요한 경우 적절한 자격 증명을 사용하여 로그인합니다.
관리 섹션에서 사용자를 선택합니다.
사용자 설정을 선택합니다.
외부 사용자 섹션에서 외부 공동 작업 설정 관리를 선택합니다.
게스트 사용자 권한을 변경하면 옵션이 아니요로 제한됩니다.
또는 사용자에게 관리자 수준 권한을 부여할 준비가 된 경우 사용자를 관리자 역할의 구성원으로 만들 수 있습니다. 다음 단계를 수행합니다.
Warning
사용자를 전역 관리자 역할에 할당하면 Microsoft Entra 조직의 모든 관리 설정을 읽고 수정할 수 있습니다. 조직의 5명 미만에게 이 역할을 할당하는 것이 가장 좋습니다.
관리자 계정을 사용하여 Azure Portal에 로그인합니다. 계정은 소유자 또는 사용자 계정 관리자여야 합니다.
왼쪽 탐색 창에서 Microsoft Entra ID를 선택합니다.
사용자 구독에 해당하는 적절한 디렉터리를 편집하고 있는지 확인합니다. 그렇지 않은 경우 디렉터리 전환을 선택하고 필요한 경우 적절한 자격 증명을 사용하여 로그인합니다.
관리 섹션에서 사용자를 선택합니다.
검색 상자를 사용하여 관리하려는 사용자를 검색합니다.
관리 섹션에서 디렉터리 역할을 선택한 다음 역할을 변경합니다. 완료되면 저장을 선택합니다.
일반적으로 변경 내용을 전역적으로 적용하는 데 15~20분이 걸립니다. 그러면 사용자가 서비스 연결을 다시 만들 수 있습니다.
사용자에게 디렉터리에 애플리케이션을 추가할 권한이 없습니다.
디렉터리에 통합된 애플리케이션을 추가할 수 있는 권한이 있어야 합니다. 디렉터리 관리자에게 이 설정을 변경할 수 있는 권한이 있습니다.
왼쪽 탐색 창에서 Microsoft Entra ID를 선택합니다.
사용자 구독에 해당하는 적절한 디렉터리를 편집하고 있는지 확인합니다. 그렇지 않은 경우 디렉터리 전환을 선택하고 필요한 경우 적절한 자격 증명을 사용하여 로그인합니다.
사용자를 선택한 다음 사용자 설정을 선택합니다.
앱 등록 다음 사용자가 애플리케이션을 등록할 수 있는 옵션을 예로 변경합니다.
Microsoft Entra ID에 필요한 권한이 이미 있는 기존 사용자를 사용하여 서비스 주체를 만들 수도 있습니다. 기존 서비스 주체와 Azure Resource Manager 서비스 연결 만들기를 참조하세요.
액세스 토큰을 가져오지 못했거나 유효한 새로 고침 토큰을 찾을 수 없습니다.
이러한 오류는 일반적으로 세션이 만료될 때 발생합니다. 이러한 문제를 해결하려면 다음을 수행합니다.
- Azure DevOps에서 로그아웃합니다.
- InPrivate 또는 incognito 브라우저 창을 열고 Azure DevOps로 이동합니다.
- 적절한 자격 증명을 사용하여 로그인합니다.
- 조직 및 프로젝트를 선택합니다.
- 서비스 연결을 만듭니다.
기여자 역할을 할당하지 못했습니다.
이 오류는 일반적으로 선택한 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 Services에 캐시된 이전 사용자 토큰: ARM(Azure Resource Manager) 서비스 연결을 만들 때 Azure 구독이 나열되지 않은 경우 Azure DevOps Services에 캐시된 이전 사용자 토큰 때문일 수 있습니다. Azure 구독의 목록 화면에 사용자 토큰이 오래되었음을 나타내는 오류 또는 경고 메시지가 표시되지 않으므로 이 시나리오는 즉시 명확하지 않습니다. 이 문제를 해결하려면 다음 단계를 수행하여 Azure DevOps Services에서 캐시된 사용자 토큰을 수동으로 업데이트합니다.
- Azure DevOps Services에서 로그아웃하고 다시 로그인합니다. 이 작업은 사용자 토큰을 새로 고칠 수 있습니다.
- 브라우저 캐시 및 쿠키를 지워서 이전 토큰이 제거되었는지 확인합니다.
- Azure DevOps 포털에서 서비스 연결로 이동하여 Azure에 대한 연결을 다시 인증합니다. 이 단계에서는 Azure DevOps에 새 토큰을 사용하도록 요청합니다.
서비스 주체의 토큰이 만료됨
자동으로 생성되는 서비스 주체에서 자주 발생하는 문제는 서비스 주체의 토큰이 만료되고 갱신되어야 한다는 것입니다. 그러나 토큰 을 새로 고치는 데 문제가 있는 경우 유효한 새로 고침 토큰을 찾을 수 없습니다.
자동으로 생성된 서비스 주체에 대한 액세스 토큰을 갱신하려면 다음을 수행합니다.
프로젝트 설정>서비스 연결로 이동한 다음 수정할 서비스 연결을 선택합니다.
오른쪽 위 모서리에서 편집을 선택하고 확인을 선택합니다.
저장을 선택합니다.
이제 서비스 주체의 토큰이 3개월 더 갱신됩니다.
참고 항목
서비스 주체의 토큰이 만료되지 않은 경우에도 이 작업을 사용할 수 있습니다.
서비스 주체 클라이언트 ID를 사용하여 JWT를 가져오지 못했습니다.
이 문제는 만료된 비밀이 있는 서비스 연결을 확인하려고 할 때 발생합니다.
이 문제를 해결하려면:
프로젝트 설정>서비스 연결로 이동한 다음 수정할 서비스 연결을 선택합니다.
오른쪽 위 모서리에서 편집을 선택한 다음 서비스 연결을 변경합니다. 가장 쉽고 권장되는 변경은 설명을 추가하는 것입니다.
저장을 선택하여 서비스 연결을 저장합니다.
참고 항목
저장을 선택합니다. 이 단계에서는 서비스 연결을 확인하지 마세요.
서비스 연결 편집 창을 종료한 다음 서비스 연결 페이지를 새로 고칩니다.
오른쪽 위 모서리에서 편집을 선택하고 이제 확인을 선택합니다.
저장을 선택하여 서비스 연결을 저장합니다.
Azure 구독이 이전 작업 출력에서 전달되지 않음
릴리스 파이프라인에 대해 Azure 구독을 동적으로 설정하고 이전 작업의 출력 변수를 사용하려는 경우 이 문제가 발생할 수 있습니다.
이 문제를 해결하려면 파이프라인의 변수 섹션 내에 값이 정의되어 있는지 확인합니다. 그런 다음 파이프라인의 작업 간에 이 변수를 전달할 수 있습니다.
지원되는 인증 메커니즘은 무엇인가요? 관리 ID는 어떻게 작동합니까?
Azure Resource Manager 서비스 연결은 SPA(서비스 주체 인증) 또는 관리 ID 인증을 사용하여 Azure 구독에 연결할 수 있습니다. Azure 리소스에 대한 관리 ID는 Microsoft Entra ID에서 자동으로 관리되는 ID를 Azure 서비스에 제공합니다. 이 ID를 사용하여 코드 또는 서비스 연결에서 자격 증명을 유지하지 않고 Microsoft Entra 인증을 지원하는 모든 서비스에 인증할 수 있습니다.
가상 머신의 관리 ID에 대한 자세한 내용은 역할 할당을 참조하세요.
참고 항목
관리 ID는 Microsoft 호스팅 에이전트에서 지원되지 않습니다. 이 시나리오에서는 Azure VM에서 자체 호스팅 에이전트를 설정하고 해당 VM에 대한 관리 ID를 구성해야 합니다.