CSE/EA 계약 비용 수집을 위한 계정 설정

ℹ️
SpaceONE에서는 Azure Billing을 수집하기 위해서 Microsoft Partner Agreement(CSP) · Enterprise Agreement(EA) 와 같은 계약 형태를 지원하고 있습니다. 비용은 Azure Portal의 Cost Management API 를 통해서 수집합니다.

SpaceONE에서 Azure Billing 데이터 조회를 위해서 Credential을 활용한 방식을 지원합니다.
Credential을 활용한 방식은 아래 4가지의 key 값들이 필요합니다.

⚠️
아래 4가지 값을 확인 후, SpaceONE 담당자에게 전달해주시면 연동 작업을 진행하겠습니다

Billing Account ID는 Azure를 사용하기 위해 가입할 때 생성됩니다. 청구 계정을 사용하여 송장, 결제 및 비용 추적을 관리하고 여러 청구 계정에 액세스할 수 있습니다.

  • 소유자: 고객 (고객 계정으로 Azure Portal에 접속)
  • Azure 계정 설정 작업 진행: 고객
  • Tenant ID

Tenant ID는 Azure Active Directory(AD)에서 제공되는 조직에 대한 고유 식별자입니다. Azure AD는 클라우드 기반 ID 및 액세스 관리 서비스이며 사용자를 조직 단위로 관리하기 위해 사용합니다.

  • Client ID

Client ID는 Azure 앱 생성 시 발급되는 Application ID입니다. Azure App은 애플리케이션에 대한 자격증명과 IAM 사용자를 관리하기 위해 사용합니다.

  • Client Secret

Azure 앱 등록을 통해서 얻을 수 있는 Client Secret 키입니다. Azure의 API를 사용하고 지원 접근을 위한 토큰 발급 시 필요합니다.

이제 4가지 값을 생성 혹은 확인하기 위한 절차를 안내하며, 이미 생성된 정보나 서비스가 있다면 생략해도 됩니다.

1. Active Directory Enterprise App 생성

[Azure Active Directory] 서비스로 이동

Azure Portal에 접속한 뒤, 검색창에 ‘Azure Active Directory’를 입력 후 [Azure Active Directory] 서비스를 클릭합니다.

[엔터프라이즈 애플리케이션] 추가 버튼 클릭

[추가] 버튼을 클릭하고 [엔터프라이즈 애플리케이션]을 클릭합니다.

엔터프라이즈 애플리케이션 등록

(1) 입력창에 앱 이름을 입력 합니다.(ex. SpaceONE App for Billing)
(2) [갤러기에 없는 다른 애플리케이션 통합(비갤러리)] 라디오 버튼을 클릭합니다.
(3) 오른쪽 하단의 [만들기] 버튼을 클릭합니다.

2. Client ID, Client Secret 생성 및 조회

[앱 등록] 페이지로 이동

검색창에 ‘앱 등록’을 입력 후, [앱 등록] 서비스를 클릭합니다

[모든 애플리케이션]에서 애플리케이션 선택

카테고리 하단 검색창에 ‘SpaceONE App for Billing’을 검색한 뒤 선택합니다.

[인증서 및 암호] 메뉴로 이동

[클라이언트 비밀] 메뉴에서 클라이언트 암호 추가

(1) 클릭 후 나타난 오른쪽 메뉴에서 설명을 적고 만료시간을 설정합니다.
(2) 오른쪽 하단의 [추가]버튼을 클릭합니다.

클라이언트 암호 값 복사

클라이언트 암호 값은 생성 후 최초 1회만 확인 가능하므로 복사해둡니다. 해당 값은 SpaceONE 담당자에게 전달해야 하는 값(Client Secret) 입니다.

[개요] 메뉴에서 Client ID 조회

애플리케이션(클라이언트) ID 값을 확인합니다. 해당 값은 SpaceONE 담당자에게 전달해야 하는 값(Client ID) 입니다.

3. Tenant ID 조회

[Azure Active Directory] 페이지로 이동

검색창에 ‘Azure Active Directory’를 입력 후 [Azure Active Directory] 서비스를 클릭합니다.

[개요] 메뉴에서 Tenant ID 조회

[테넌트 ID] 값을 확인합니다. 해당 값은 SpaceONE 담당자에게 전달해야 하는 값(Tenant ID) 입니다.

4. Billing Account ID 조회

[비용 관리 + 청구] 페이지로 이동

검색창에 ‘비용 관리 + 청구’를 입력 후  [비용 관리 + 청구] 서비스를 클릭합니다.

[속성] 메뉴에서 Billing Account ID 조회

[속성] 메뉴로 이동 후, [일반] 탭에서 [ID] 혹은 [Billing Account ID] 값을 확인합니다. 해당 값은 SpaceONE 담당자에게 전달해야 하는 값(Billing Account ID) 입니다.

5. 비용 조회 역할 부여

Azure Enterprise Agreement에서 역할을 부여하기 위해서는 API를 사용해야 합니다. SpaceONE에서 비용 데이터를 확인하기 위해 읽기 권한을 가지고 있는 EnrollmentReader 역할을 부여합니다.

비용 조회 역할 부여 시 필요한 정보는 아래와 같습니다. billing_account_idtenant_id는 이전 단계에서 확인한 정보와 동일합니다.

  • billing_account_id (이전 단계에서 확인한 값)
  • tenant_id (이전 단계에서 확인한 값)
  • object_id
  • role_definition_id
  • guid

또한, 역할 부여 API를 요청하는 계정은 EA Admin 역할을 가지고 있어야 합니다. 먼저 EA Admin 역할을 가지고 있는지 확인하고, 필요한 정보를 확인하여 역할 부여를 진행합니다.

ℹ️
역할 부여를 완료해야 SpaceONE에서 Cost Management API를 호출 할 수 있습니다.

[비용 관리 + 청구] 서비스로 이동

검색창에 ‘비용 관리 + 청구’를 입력 후  [비용 관리 + 청구] 서비스를 클릭합니다.

로그인 계정 역할 확인

[액세스 제어(IAM)]을 클릭하고 로그인한 계정과 같은 이메일의 [···]을 클릭 후 [편집] 버튼을 클릭합니다.

역할이 엔터프라이즈 관리자 인지 확인합니다. 또한 [읽기 전용 액세스 제공] 이 체크 해제 되어있는지 확인합니다.

[개체 ID] 값 확인

(1) [Azure Active Directory] 서비스로 이동 검색창에 ‘Azure Active Directory’를 입력 후 [Azure Active Directory] 서비스를 클릭합니다.


(2) [엔터프라이즈 애플리케이션] 메뉴 선택


(3) 이전 단계에서 생성한 애플리케이션 선택


(4) [개체 ID] 값 확인 [개체 ID] 값을 확인합니다. 해당 값은 SpaceONE 담당자에게 전달해야 하는 값(object_id) 입니다.

EnrollmentReader 역할 부여

role_definition_id24f8edb6-1668-4659-b5e2-40bb5f3a7d7e를 확인합니다.

GUID 생성

GUID / UUID Generator 에서 GUID를 생성합니다.

(1) [Generate some GUIDs!] 버튼을 클릭합니다.
(2) [Copy to Clipboard] 버튼을 클릭합니다.
(3) GUID 값을 메모합니다.

역할 부여

마지막 단계인 역할 부여를 진행합니다.

(1) 먼저 Microsoft의 Role Assignments 사이트로 이동합니다.

(2) [사용해 보세요] 버튼을 클릭 후 로그인을 진행합니다. 로그인 계정은 이전에 확인한 것처럼 엔터프라이즈 관리자(EA Admin) 역할을 가지고 있어야 합니다.


(3) 매개 변수를 입력합니다. [billngAccountNam] 입력창에 billing_account_id 값을, [billingRoleAssignmentName] 입력창에 guid 값을 입력합니다.


(4) {} 값들을 변경하여 본문 내용을 작성합니다.

  • object_id
  • tenant_id
  • billing_account_id
  • role_definition_id
{
  "properties": {
    "principalId": "{object_id}",
    "principalTenantId": "{tenant_id}",
    "roleDefinitionId": "/providers/Microsoft.Billing/billingAccounts/{billing_account_id}/billingRoleDefinitions/{role_definition_id}"
  }
}