ARM 서비스 연결 문제 해결

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

이 문서에서는 Azure Resource Manager 서비스 연결을 만들 때 발생할 수 있는 문제를 해결하는 데 도움이 되는 일반적인 문제 해결 시나리오를 제공합니다. 서비스 연결을 만들고, 편집하고, 보호하는 방법을 알아보려면 서비스 연결 관리를 참조하세요.

ARM 서비스 연결을 만들면 어떻게 되나요?

서비스 연결이 없는 경우 다음과 같이 만들 수 있습니다.

  1. 프로젝트 내에서 프로젝트 설정을 선택한 다음 서비스 연결을 선택합니다.

    프로젝트 설정에서 서비스 연결에 액세스하는 방법을 보여 주는 스크린샷

  2. 새 서비스 연결을 선택하여 새 서비스 연결을 추가한 다음, Azure Resource Manager를 선택합니다. 완료되면 다음을 선택합니다.

    서비스 연결 유형을 보여 주는 스크린샷.

  3. 서비스 주체(자동)를 선택한 다음** 다음을 선택합니다.

  4. 구독을 선택한 다음 드롭다운 목록에서 구독을 선택합니다. 양식을 작성하고 완료되면 저장을 선택합니다.

    새 ARM 서비스 연결 양식을 보여 주는 스크린샷

새 ARM 서비스 연결을 저장하면 Azure DevOps는 다음을 수행합니다.

  1. 선택한 구독에 대한 Microsoft Entra 테넌트에 커넥트.
  2. 사용자를 대신하여 Microsoft Entra ID에서 애플리케이션을 만듭니다.
  3. 애플리케이션을 성공적으로 만든 후 선택한 구독에 기여자로 애플리케이션을 할당합니다.
  4. 이 애플리케이션의 세부 정보를 사용하여 Azure Resource Manager 서비스 연결을 만듭니다.

참고 항목

서비스 연결을 만들려면 프로젝트 설정: 프로젝트 설정>서비스 연결>보안에서 엔드포인트 작성자 그룹에 추가해야 합니다. 참가자는 기본적으로 이 그룹에 추가됩니다.

문제 해결 시나리오

다음은 서비스 연결을 만들 때 발생할 수 있는 몇 가지 문제입니다.

작업을 완료할 수 있는 권한이 부족합니다.

이는 일반적으로 시스템에서 사용자 대신 Microsoft Entra ID로 애플리케이션을 만들려고 할 때 발생합니다.

이 문제는 다음과 같은 원인으로 인해 발생할 수 있는 권한 문제입니다.

사용자에게 디렉터리에 게스트 권한만 있습니다.

이 문제를 해결하는 가장 좋은 방법은 사용자에게 최소 추가 권한만 부여하는 동시에 다음과 같이 게스트 사용자 권한을 늘리는 것입니다.

  1. 관리자 계정을 사용하여 Azure Portal에 로그인합니다. 계정은 소유자, 전역 관리자 또는 사용자 계정 관리자여야 합니다.

  2. 왼쪽 탐색 모음에서 Microsoft Entra ID를 선택합니다.

  3. 사용자 구독에 해당하는 적절한 디렉터리를 편집하고 있는지 확인합니다. 그렇지 않은 경우 디렉터리 전환을 선택하고 필요한 경우 적절한 자격 증명을 사용하여 로그인합니다.

  4. 관리 섹션에서 사용자를 선택합니다.

  5. 사용자 설정을 선택합니다.

  6. 외부 사용자 섹션에서 외부 공동 작업 설정 관리를 선택합니다.

  7. 게스트 사용자 권한을 변경하면 옵션이 아니요제한됩니다.

또는 사용자에게 추가 권한(관리자 수준)을 부여할 준비가 된 경우 사용자를 전역 관리자 역할의 구성원으로 만들 수 있습니다. 이렇게 하려면 다음 단계를 수행합니다.

Warning

전역 관리자 역할에 할당된 사용자는 Microsoft Entra 조직의 모든 관리 설정을 읽고 수정할 수 있습니다. 조직에서 5명 미만의 사용자에게 이 역할을 할당하는 것이 좋습니다.

  1. 관리자 계정을 사용하여 Azure Portal에 로그인합니다. 계정은 소유자, 전역 관리자 또는 사용자 계정 관리자여야 합니다.

  2. 왼쪽 탐색 창에서 Microsoft Entra ID를 선택합니다.

  3. 사용자 구독에 해당하는 적절한 디렉터리를 편집하고 있는지 확인합니다. 그렇지 않은 경우 디렉터리 전환을 선택하고 필요한 경우 적절한 자격 증명을 사용하여 로그인합니다.

  4. 관리 섹션에서 사용자를 선택합니다.

  5. 검색 상자를 사용하여 관리하려는 사용자를 검색합니다.

  6. 관리 섹션에서 디렉터리 역할을선택한 다음, 역할을 전역 관리자변경합니다. 완료하면 저장을 선택합니다.

일반적으로 변경 내용을 전역적으로 적용하는 데 15~20분이 걸립니다. 그러면 사용자가 서비스 연결을 다시 만들 수 있습니다.

사용자에게 디렉터리에 애플리케이션을 추가할 권한이 없습니다.

디렉터리에 통합된 애플리케이션을 추가할 수 있는 권한이 있어야 합니다. 디렉터리 관리자에게 이 설정을 변경할 수 있는 권한이 있습니다.

  1. 왼쪽 탐색 창에서 Microsoft Entra ID를 선택합니다.

  2. 사용자 구독에 해당하는 적절한 디렉터리를 편집하고 있는지 확인합니다. 그렇지 않은 경우 디렉터리 전환을 선택하고 필요한 경우 적절한 자격 증명을 사용하여 로그인합니다.

  3. 사용자를 선택한 다음 사용자 설정을 선택합니다.

  4. 앱 등록 다음 사용자가 애플리케이션을 등록할 수 있는 옵션을 예변경합니다.

Microsoft Entra ID에 필요한 권한이 이미 있는 기존 사용자를 사용하여 서비스 주체를 만들 수도 있습니다. 자세한 내용은 기존 서비스 주체와 Azure Resource Manager 서비스 연결 만들기를 참조하세요.

액세스 토큰을 가져오지 못했거나 유효한 새로 고침 토큰을 찾을 수 없습니다.

이러한 오류는 일반적으로 세션이 만료되었을 때 발생합니다. 이러한 문제를 해결하려면 다음을 수행합니다.

  1. Azure DevOps에서 로그아웃합니다.
  2. InPrivate 또는 incognito 브라우저 창을 열고 Azure DevOps로 이동합니다.
  3. 적절한 자격 증명을 사용하여 로그인합니다.
  4. 조직 및 프로젝트를 선택합니다.
  5. 서비스 연결을 만듭니다.

기여자 역할을 할당하지 못했습니다.

이 오류는 일반적으로 선택한 Azure 구독에 대한 쓰기 권한이 없는 경우에 발생합니다.

이 문제를 해결하려면 구독 관리자에게 Microsoft Entra ID에 적절한 역할을 할당하도록 요청합니다.

서비스 연결을 만들 때 구독이 나열되지 않음

다양한 Azure 구독 드롭다운 메뉴(청구, 서비스 연결 등)에 최대 50개의 Azure 구독이 나열됩니다. 서비스 연결을 설정하고 50개 이상의 Azure 구독이 있는 경우 일부 구독이 나열되지 않습니다. 이 시나리오에서는 다음 단계를 완료합니다.

  1. Azure 구독의 Microsoft Entra 인스턴스에 새 네이티브 Microsoft Entra 사용자를 만듭니다.

  2. 청구를 설정하거나 서비스 연결을 만들 수 있는 적절한 권한을 갖도록 Microsoft Entra 사용자를 설정합니다. 자세한 내용은 Azure DevOps 조직에 대한 청구를 설정할 수 있는 사용자 추가를 참조하세요.

  3. 관련자 액세스 수준이 있는 Azure DevOps 조직에 Microsoft Entra 사용자를 추가한 다음 Project Collection 관리istrators 그룹(청구용)에 추가하거나 사용자가 팀 프로젝트에 서비스 연결을 만들 수 있는 충분한 권한이 있는지 확인합니다.

  4. 새 사용자 자격 증명을 사용하여 Azure DevOps에 로그인하고 청구를 설정합니다. 목록에 하나의 Azure 구독만 표시됩니다.

일부 구독이 구독 목록에서 누락되었습니다.

지원되는 계정 유형 설정을 변경하고 애플리케이션을 사용할 수 있는 사용자를 정의하여 이 문제를 해결할 수 있습니다. 그렇게 하려면 아래 단계를 수행합니다.

  1. Azure Portal에 로그인합니다.

  2. 여러 테넌트에 액세스할 수 있는 경우 위쪽 메뉴에서 디렉터리 + 구독 필터를 사용하여 애플리케이션을 등록할 테넌트를 선택합니다.

    Azure Portal의 디렉터리 및 구독 아이콘을 보여 주는 스크린샷

  3. 왼쪽 창에서 Microsoft Entra ID를 선택합니다.

  4. 앱 등록을 선택합니다.

  5. 등록된 애플리케이션 목록에서 애플리케이션을 선택합니다.

  6. 인증에서 지원되는 계정 유형을 선택합니다.

  7. 지원되는 계정 유형에서 이 애플리케이션을 사용하거나 이 API에 액세스할 수 있는 사람은 누구인가요? 조직 디렉터리에서 계정을 선택합니다.

    지원되는 계정 유형을 보여 주는 스크린샷

  8. 완료하면 저장을 선택합니다.

서비스 주체의 토큰이 만료됨

자동으로 생성되는 서비스 주체에서 자주 발생하는 문제는 서비스 주체의 토큰이 만료되고 갱신되어야 한다는 것입니다. 그러나 토큰 을 새로 고치는 데 문제가 있는 경우 유효한 새로 고침 토큰을 찾을 수 없습니다.

자동으로 생성된 서비스 주체에 대한 액세스 토큰을 갱신하려면 다음을 수행합니다.

  1. 프로젝트 설정>서비스 연결이동한 다음 수정할 서비스 연결을 선택합니다.

  2. 오른쪽 위 모서리에서 편집을 선택하고 확인을 선택합니다.

  3. 저장을 선택합니다.

이제 서비스 주체의 토큰이 3개월 더 갱신되었습니다.

참고 항목

서비스 주체의 토큰이 만료되지 않은 경우에도 이 작업을 사용할 수 있습니다.

서비스 주체 클라이언트 ID를 사용하여 JWT를 가져오지 못했습니다.

이 문제는 만료된 비밀이 있는 서비스 연결을 확인하려고 할 때 발생합니다.

이 문제를 해결하려면:

  1. 프로젝트 설정>서비스 연결이동한 다음 수정할 서비스 연결을 선택합니다.

  2. 오른쪽 위 모서리에서 편집을 선택한 다음 서비스 연결을 변경합니다. 가장 쉽고 권장되는 변경은 설명을 추가하는 것입니다.

  3. 저장을 선택하여 서비스 연결을 저장합니다.

    참고 항목

    저장을 선택합니다. 이 단계에서는 서비스 연결을 확인하지 마세요.

  4. 서비스 연결 편집 창을 종료한 다음 서비스 연결 페이지를 새로 고칩니다.

  5. 오른쪽 위 모서리에서 편집을 선택하고 이제 확인을 선택합니다.

  6. 저장을 선택하여 서비스 연결을 저장합니다.

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를 구성해야 합니다.