다음을 통해 공유


서비스 주체에 기업계약 역할 할당

Azure Portal에서 EA(기업계약) 등록을 관리할 수 있습니다. 여러 역할을 만들어 조직을 관리하고, 비용을 살펴보고, 구독을 만들 수 있습니다. 이 문서에서는 Azure PowerShell 및 REST API와 함께 Microsoft Entra ID 서비스 주체를 사용하여 이러한 작업 중 일부를 자동화할 수 있도록 도와줍니다.

참고 항목

조직에 여러 EA 청구 계정이 있는 경우 각 EA 청구 계정에서 개별적으로 Microsoft Entra ID 서비스 주체에 EA 역할을 부여해야 합니다.

시작하기 전에 다음 문서를 숙지해야 합니다.

REST API를 호출하는 방법이 필요합니다. 다음은 API를 쿼리하는 데 많이 사용되는 몇 가지 방법입니다.

서비스 사용자 만들기 및 인증

서비스 주체를 사용하여 EA 작업을 자동화하려면 Microsoft Entra 앱 ID를 만든 다음에 자동화된 방식으로 인증할 수 있어야 합니다.

이 문서의 단계에 따라 서비스 주체를 사용하여 만들고 인증하세요.

다음은 애플리케이션 등록 페이지의 예입니다.

애플리케이션 등록을 보여주는 스크린샷.

서비스 주체 및 테넌트 ID 찾기

서비스 주체의 개체 ID와 테넌트 ID가 필요합니다. 이 정보는 이 문서의 뒷부분에 있는 사용 권한 할당 작업에 필요합니다. 모든 애플리케이션은 테넌트의 Microsoft Entra ID에 등록됩니다. 앱 등록이 완료되면 두 가지 유형의 개체가 만들어집니다.

  • 애플리케이션 개체 - 애플리케이션 ID는 엔터프라이즈 애플리케이션에서 볼 수 있는 것입니다. EA 역할을 부여하는 데 ID를 사용하지 마세요.
  • 서비스 주체 개체 - 서비스 주체 개체는 Microsoft Entra ID의 엔터프라이즈 등록 창에 표시되는 개체입니다. 개체 ID는 서비스 주체에 EA 역할을 부여하는 데 사용됩니다.
  1. Microsoft Entra ID를 열고 다음 엔터프라이즈 애플리케이션을 선택합니다.

  2. 목록에서 앱을 찾습니다.

    엔터프라이즈 애플리케이션 예제를 보여주는 스크린샷.

  3. 앱을 선택하여 애플리케이션 ID와 개체 ID를 확인합니다.

    엔터프라이즈 애플리케이션의 애플리케이션 ID 및 개체 ID를 보여주는 스크린샷.

  4. Microsoft Entra ID 개요 페이지로 이동하여 테넌트 ID를 확인합니다.

    테넌트 ID를 보여주는 스크린샷.

참고 항목

Microsoft Entra 테넌트 ID 값은 aaaabbbb-0000-cccc-1111-dddd2222eeee 형식의 GUID와 비슷합니다.

서비스 주체에 할당할 수 있는 권한

이 문서의 뒷부분에서는 EA 역할을 통해 작업 수행 권한을 Microsoft Entra ID 앱에 부여합니다. 서비스 주체에는 다음 역할만 할당할 수 있으며, 아래 나와 있는 대로 정확히 역할 정의 ID가 필요합니다.

역할 허용되는 작업 역할 정의 ID
EnrollmentReader 등록 읽기 권한자는 등록, 부서 및 계정 범위에서 데이터를 볼 수 있습니다. 데이터에는 테넌트 전체를 포함하여 범위 아래의 모든 구독에 대한 요금이 포함됩니다. 등록과 관련된 Azure 선불(이전 명칭은 현금 약정 금액) 잔액을 볼 수 있습니다. 24f8edb6-1668-4659-b5e2-40bb5f3a7d7e
EA 구매자 예약 주문을 구입하고 예약 트랜잭션을 봅니다. EnrollmentReader의 모든 권한을 가지고 있으며, EnrollmentReader는 DepartmentReader의 모든 권한을 가지고 있습니다. 모든 계정과 구독의 사용량 및 요금을 볼 수 있습니다. 등록과 관련된 Azure 선불(이전 명칭은 현금 약정 금액) 잔액을 볼 수 있습니다. da6647fb-7651-49ee-be91-c43c4877f0c4
DepartmentReader 본인이 관리하는 부서의 사용량 세부 정보를 다운로드할 수 있습니다. 본인의 부서와 관련된 사용량과 요금을 볼 수 있습니다. db609904-a47f-4794-9be8-9bd86fbffd8a
SubscriptionCreator 지정된 계정 범위에서 새 구독을 만듭니다. a0bcee42-bf30-4d1b-926a-48d21664ef71
  • 등록 작성자 역할을 가진 사용자만이 EnrollmentReader 역할을 서비스 주체에 할당할 수 있습니다. 서비스 주체에 할당된 EnrollmentReader 역할은 Azure Portal에 표시되지 않습니다. 이 역할은 프로그래매틱 방식으로 생성되고 사용됩니다.
  • 등록 작성자 역할 또는 부서 작성자 역할을 가진 사용자만이 DepartmentReader 역할을 서비스 주체에 할당할 수 있습니다.
  • 등록 계정의 소유자(EA 관리자)인 사용자만이 SubscriptionCreator 역할을 서비스 주체에 할당할 수 있습니다. 해당 역할은 Azure Portal에 표시되지 않습니다. 이 역할은 프로그래매틱 방식으로 생성되고 사용됩니다.
  • EA 구매자 역할은 Azure Portal에 표시되지 않습니다. 이 역할은 프로그래매틱 방식으로 생성되고 사용됩니다.

서비스 주체에 EA 역할을 부여할 때 필요한 billingRoleAssignmentName 속성을 사용해야 합니다. 이 매개 변수는 사용자가 제공해야 하는 고유한 GUID입니다. PowerShell 명령 New-Guid를 사용하여 GUID를 생성할 수 있습니다. 또한 온라인 GUID/UUID 생성기 웹 사이트에서 고유한 GUID를 생성할 수도 있습니다.

서비스 주체는 하나의 역할만 가질 수 있습니다.

서비스 주체에 등록 계정 역할 권한 할당

  1. 역할 할당 - Put REST API 문서를 읽어 보세요. 문서를 읽는 동안 사용해 보기를 선택하여 서비스 주체 사용을 시작하세요.

    Put 문서의 [사용해 보기] 옵션을 보여주는 스크린샷.

  2. 계정 자격 증명을 사용하여 할당하려는 등록 액세스 권한으로 테넌트에 로그인합니다.

  3. 다음 매개 변수를 API 요청에 포함하여 제공합니다.

    • billingAccountName: 이 매개 변수는 청구 계정 ID입니다. 이 ID는 Azure Portal의 Cost Management + Billing 개요 페이지에서 확인할 수 있습니다.

      청구 계정 ID를 보여주는 스크린샷.

    • billingRoleAssignmentName: 이 매개 변수는 사용자가 입력해야 하는 고유한 GUID입니다. PowerShell 명령 New-Guid를 사용하여 GUID를 생성할 수 있습니다. 또한 온라인 GUID/UUID 생성기 웹 사이트에서 고유한 GUID를 생성할 수도 있습니다.

    • api-version: 2019-10-01-preview 버전을 사용합니다. 역할 할당 - Put - 예제의 샘플 요청 본문을 사용합니다.

      요청 본문에는 사용해야 하는 세 개의 매개 변수가 있는 JSON 코드가 포함됩니다.

      매개 변수 찾는 위치
      properties.principalId 개체 ID의 값입니다. 서비스 주체 및 테넌트 ID 찾기를 참조하세요.
      properties.principalTenantId 서비스 주체 및 테넌트 ID 찾기를 참조하세요.
      properties.roleDefinitionId /providers/Microsoft.Billing/billingAccounts/{BillingAccountName}/billingRoleDefinitions/24f8edb6-1668-4659-b5e2-40bb5f3a7d7e

      청구 계정 이름은 API 매개 변수에서 사용한 것과 동일한 매개 변수입니다. Azure Portal에 표시되는 등록 ID입니다.

      24f8edb6-1668-4659-b5e2-40bb5f3a7d7e는 EnrollmentReader의 청구 역할 정의 ID입니다.

  4. 실행을 선택하여 명령을 시작합니다.

    실행할 준비가 된 예 정보가 포함된 예 역할 할당을 보여 주는 스크린샷.

    200 OK 응답은 서비스 주체가 성공적으로 추가되었음을 보여 줍니다.

이제 서비스 주체를 사용하여 EA API에 자동으로 액세스할 수 있습니다. 서비스 주체에는 EnrollmentReader 역할이 있습니다.

서비스 주체에 EA 구매자 역할 권한 할당

EA 구매자 역할에는 등록 읽기 권한자의 경우와 동일한 단계를 사용합니다. 다음 예제를 참조하여 roleDefinitionId를 지정합니다.

"/providers/Microsoft.Billing/billingAccounts/1111111/billingRoleDefinitions/ da6647fb-7651-49ee-be91-c43c4877f0c4"

서비스 주체에 부서 읽기 권한자 역할 할당

  1. 등록 부서 역할 할당 - Put REST API 문서를 읽어 보세요. 문서를 읽는 동안 사용해 보기를 선택합니다.

    등록 부서 역할 할당 Put 문서의 [사용해 보기] 옵션을 보여주는 스크린샷

  2. 계정 자격 증명을 사용하여 할당하려는 등록 액세스 권한으로 테넌트에 로그인합니다.

  3. 다음 매개 변수를 API 요청에 포함하여 제공합니다.

    • billingAccountName: 이 매개 변수는 청구 계정 ID입니다. 이 ID는 Azure Portal의 Cost Management + Billing 개요 페이지에서 확인할 수 있습니다.

      청구 계정 ID를 보여주는 스크린샷.

    • billingRoleAssignmentName: 이 매개 변수는 사용자가 입력해야 하는 고유한 GUID입니다. PowerShell 명령 New-Guid를 사용하여 GUID를 생성할 수 있습니다. 또한 온라인 GUID/UUID 생성기 웹 사이트에서 고유한 GUID를 생성할 수도 있습니다.

    • departmentName: 이 매개 변수는 부서 ID입니다. 부서 ID는 Azure Portal의 Cost Management + Billing>부서 페이지에서 확인할 수 있습니다.

      이 예에서는 ACE 부서를 사용했습니다. 예제의 ID는 84819입니다.

      예제 부서 ID를 보여주는 스크린샷

    • api-version: 2019-10-01-preview 버전을 사용합니다. 등록 부서 역할 할당 - Put의 샘플을 사용합니다.

      요청 본문에는 사용해야 하는 세 개의 매개 변수가 있는 JSON 코드가 포함됩니다.

      매개 변수 찾는 위치
      properties.principalId 개체 ID의 값입니다. 서비스 주체 및 테넌트 ID 찾기를 참조하세요.
      properties.principalTenantId 서비스 주체 및 테넌트 ID 찾기를 참조하세요.
      properties.roleDefinitionId /providers/Microsoft.Billing/billingAccounts/{BillingAccountName}/billingRoleDefinitions/db609904-a47f-4794-9be8-9bd86fbffd8a

      청구 계정 이름은 API 매개 변수에서 사용한 것과 동일한 매개 변수입니다. Azure Portal에 표시되는 등록 ID입니다.

      청구 역할 정의 ID db609904-a47f-4794-9be8-9bd86fbffd8a는 부서 읽기 권한자의 것입니다.

  4. 실행을 선택하여 명령을 시작합니다.

    예제 정보를 실행할 준비가 완료된 예제 등록 부서 역할 할당 - Put REST [사용해 보기]를 보여주는 스크린샷

    200 OK 응답은 서비스 주체가 성공적으로 추가되었음을 보여 줍니다.

이제 서비스 주체를 사용하여 EA API에 자동으로 액세스할 수 있습니다. 서비스 주체에는 DepartmentReader 역할이 있습니다.

서비스 주체에 구독 작성자 역할 할당

  1. 등록 계정 역할 할당 - Put 문서를 읽어 보세요. 문서를 읽는 동안 사용해 보기를 선택하여 구독 작성자 역할을 서비스 주체에 할당합니다.

    등록 계정 역할 할당 Put 문서의 [사용해 보기] 옵션을 보여주는 스크린샷

  2. 계정 자격 증명을 사용하여 할당하려는 등록 액세스 권한으로 테넌트에 로그인합니다.

  3. 다음 매개 변수를 API 요청에 포함하여 제공합니다. 등록 계정 역할 할당 - Put - URI 매개 변수의 문서를 읽어 보세요.

    • billingAccountName: 이 매개 변수는 청구 계정 ID입니다. 이 ID는 Azure Portal의 Cost Management + Billing 개요 페이지에서 확인할 수 있습니다.

      청구 계정 ID를 보여주는 스크린샷.

    • billingRoleAssignmentName: 이 매개 변수는 사용자가 입력해야 하는 고유한 GUID입니다. PowerShell 명령 New-Guid를 사용하여 GUID를 생성할 수 있습니다. 또한 온라인 GUID/UUID 생성기 웹 사이트에서 고유한 GUID를 생성할 수도 있습니다.

    • enrollmentAccountName: 이 매개 변수는 계정 ID입니다. 계정 이름의 계정 ID는 Azure Portal의 Cost Management + Billing 페이지에서 확인합니다.

      이 예에서는 GTM Test Account를 사용했습니다. ID는 196987입니다.

      계정 ID를 보여주는 스크린샷.

    • api-version: 2019-10-01-preview 버전을 사용합니다. 등록 부서 역할 할당 - Put - 예제의 샘플을 사용합니다.

      요청 본문에는 사용해야 하는 세 개의 매개 변수가 있는 JSON 코드가 포함됩니다.

      매개 변수 찾는 위치
      properties.principalId 개체 ID의 값입니다. 서비스 주체 및 테넌트 ID 찾기를 참조하세요.
      properties.principalTenantId 서비스 주체 및 테넌트 ID 찾기를 참조하세요.
      properties.roleDefinitionId /providers/Microsoft.Billing/billingAccounts/{BillingAccountID}/enrollmentAccounts/{enrollmentAccountID}/billingRoleDefinitions/a0bcee42-bf30-4d1b-926a-48d21664ef71

      청구 계정 이름은 API 매개 변수에서 사용한 것과 동일한 매개 변수입니다. Azure Portal에 표시되는 등록 ID입니다.

      청구 역할 정의 ID a0bcee42-bf30-4d1b-926a-48d21664ef71은 구독 작성자 역할의 것입니다.

  4. 실행을 선택하여 명령을 시작합니다.

    등록 계정 역할 할당 - Put 문서의 [사용해 보기] 옵션을 보여주는 스크린샷.

    200 OK 응답은 서비스 주체가 성공적으로 추가되었음을 보여 줍니다.

이제 서비스 주체를 사용하여 EA API에 자동으로 액세스할 수 있습니다. 서비스 주체에는 SubscriptionCreator 역할이 있습니다.

서비스 주체 역할 할당 확인

서비스 주체 역할 할당은 Azure Portal에 표시되지 않습니다. 구독 작성자 역할을 포함한 등록 계정 역할 할당은 청구 역할 할당 - 등록 계정별 목록 - REST API(Azure 청구) API를 사용하여 볼 수 있습니다. API를 사용하여 역할 할당이 성공했는지 확인합니다.

문제 해결

EA 역할을 부여한 Enterprise 애플리케이션 개체 ID를 식별하고 사용해야 합니다. 다른 애플리케이션의 개체 ID를 사용하면 API 호출이 실패합니다. 올바른 Enterprise 애플리케이션 개체 ID를 사용하고 있는지 확인합니다.

API 호출 시 다음 오류가 발생하면 앱 등록에 있는 서비스 주체 개체 ID 값을 잘못 사용하고 있을 수 있습니다. 이 오류를 해결하려면 앱 등록이 아닌 엔터프라이즈 애플리케이션의 서비스 주체 개체 ID를 사용하고 있는지 확인합니다.

The provided principal Tenant Id = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx and principal Object Id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx are not valid

다음 단계

기업계약 청구 계정을 시작합니다.