Azure 계정 설정

Azure 계정 설정

Azure 계정 설정

Azure 계정을 생성하고 CloudXper Management Platform에서 해당 계정을 등록하기 위한 Policy를 설정합니다.



Step 1 : 리소스 수집 및 동기화를 위한 권한 설정

 

1. CLI를 통해 Application을 생성하고 Subscription에 대한 Role 부여하기.

이 방법을 통해 등록 시, CLI 또는 Powershell을 실행하기 위한 Azure 내 Storage Account가 필요합니다.

진행 과정에서 별도의 Resource Group과 Storage Account, Storage Account 내 File service / File Share 항목이 자동 생성될 수 있으니 유의하시기 바랍니다.

1-1. portal.azure.com에 로그인하여, CLI 메뉴를 클릭합니다.

image-20240729-012851.png

1-2. CLI를 실행하기 위한 Storage Account가 없을 시 다음과 같은 화면이 나타납니다. "Create"를 클릭하여 생성하고, cli 메뉴로 진입합니다.

image-20240729-012917.png

1-3. CLI 커맨드 창에, 다음과 같은 명령어를 입력합니다.
create ad user

az ad sp create-for-rbac --name CloudXper

1-4. 응답 결과를 복사해서 기록해 둡니다.

image-20240729-012958.png

중요 : 이때 생성된 password는 1년동안 유효합니다.
이 password에 대한 재발급 또는 갱신은 Azure Active Directory → App registration → All applications 에서 등록한 Application을 찾아서 갱신 가능합니다.

 

1-5. 왼쪽 메뉴 : Subscription > 해당하는 subscription 클릭 > Access Control(IAM) 메뉴 > Role Assignments 에서 1-1-4 에서 생성한 AD User가 Contributor로 등록되어 있음을 확인합니다.

2024-04-04. 이제 더 이상 create-for-rbac을 통해 생성한 App이 Contributor 역할을 받지 않습니다. 
생성된 App은 좌측 메뉴 중 Microsoft EntraID > 앱 등록 > 모든 애플리케이션에서 등록된 결과를 볼 수 있습니다.

 

2. Custom Role 등록하기

2-1. 왼쪽 메뉴 : Subscription > 해당하는 subscription 클릭 > Access Control(IAM) 메뉴 > Roles 탭으로 이동합니다.

image-20240729-013204.png

 

2-2. Add > Add custom role을 클릭하여 다음과 같이 입력/선택합니다.

Baseline permissions에서 "Clone a role"을 선택하고, "Role to clone"에서 Reader를 선택합니다.

image-20240729-013603.png

2-3. JSON 탭으로 이동하여, 우측의 Edit 버튼을 클릭 후 permissions 하위의 actions 항목의 내용을 다음과 같이 변경합니다. 그리고 Save 버튼을 클릭합니다.
add permission

"actions": [
    "*/read",
    "Microsoft.Storage/storageAccounts/listkeys/action"
],

image-20240729-013646.png

2-4. Review + Create 탭으로 이동하여, create 버튼을 클릭하여 custom role을 생성합니다.

 

3. 등록한 Application의 Role 수정하기

3-1. 다시 Subscription 메뉴 > Subscription 선택 > Access Controle (IAM) 메뉴로 진입합니다.

 

3-2. Role assignment 탭에서, Contributor로 지정되어 있는 CloudXper 앱을 선택하고 "Remove"를 클릭합니다.

image-20240729-013717.png

 

3-3. 상단의 Add 버튼을 클릭합니다.

image-20240729-013737.png

3-4. 우측 패널에서 아래와 같이 선택 후 Save 버튼을 클릭합니다.

image-20240729-013810.png

 

4. API Permissions 등록

4-1. 모든 서비스(All Service) > Azure Active Directory 항목으로 이동합니다.

image-20240729-013841.png

4-2. 왼쪽 탭: 앱 등록(App Registration) > 모든 애플리케이션 보기 를 선택합니다.

 

4-3. 1번 과정에서 생성한 Application 선택해 상세 페이지로 이동합니다.

image-20240729-014021.png

4-4. 왼쪽 탭: API 사용 권한(API Premissions) > 권한 추가 > Microsoft Graph 항목을 선택합니다.

image-20240729-014038.png

4-5. Role Management, User 를 검색하여 다음의 3가지 권한을 추가합니다.

add permission

RoleManagement

  - RoleManagement.Read.All

  - RoleManagement.Read.Directory

User

  - User.Read.All

image-20240729-014103.png

이후 기본 디렉터리에 대한 관리자 동의 허용 버튼을 눌러 동의를 신청합니다. 별도의 관리자가 있는 경우 승인될 때까지 대기가 필요합니다.

 

5. 완료 후 credential 공유하기

5-1. 4번까지(관리자의 동의가 완료된 후) 진행 후, 1-4 항목의 결과를 cloudxper 관리자 메일(cmpadmin.cloudxper@lgcns.com)으로 공유합니다.

항목

내용

항목

내용

제목

[CloudXper] 인벤토리 수집 등록 요청

수신

cmpadmin.cloudxper@lgcns.com

내용

인벤토리 수집 등록 요청합니다.

계정 명 : xx서비스 xx환경 (예)

Azure Subscription ID : (등록 진행한 Azure 구독 ID 기재)

{
    "appId": "21715d1e-e40c-4812-9076-105a77643271",
    "displayName": "CloudXper2",
    "name": "http://CloudXper2",
    "password": "Z_8sSGrFYx1Qw6ctU2C0_j8ZJlwb75.0N5",
    "tenant": "30c30f12-7842-4464-adf5-7ebef310f18c"
}

5-2. 완료 후 1-2에서 생성된 resource group, storage account는 불필요한 경우 삭제합니다.

 

Step 2 : CSR 실행을 위한 권한 설정 (선택 사항)

1. Application 등록

1-1. Azure 포탈에 접속하여 아래와 같이 Application을 생성합니다.

  • (1) Azure Active Directory 메뉴 > (2) App registrations(앱 등록) 탭 > (3) New registration(새 등록) 클릭 > (4) Name(이름)에 'CSR' 입력 > (5) Register(등록) 클릭

  • (6) 생성 후 Application 중에 CSR을 선택하여 상세 화면으로 이동

image-20240729-014210.png

2. Client Secret 추가

2-1. CSR Application에 아래와 같이 Client secret을 추가합니다.

  • (1) Certificates & secrets(인증서 및 암호) 탭 > New client secret(새 클라이언트 암호) 버튼 클릭 > (2) Expires(만료 시간)을 12months로 변경 > (3) Add (추가) 클릭

  • (4) 추가된 Client secret 확인이 가능

image-20240729-014235.png

2-2. 이렇게 생성된 Client secrets(클라이언트 암호)의 Value(값)는 cloudxper에 공유되어야 할 'password' 항목에 해당합니다.

 

3. API Permissions 등록

3-1. API permissions에서 아래와 같이 Azure Active Directory Graph를 선택합니다.

  • (1) API permissions(API 사용 권한) 탭 > (2) Add a permission(권한 추가) 버튼 클릭 > (3) 오른쪽 Request API permissions (API 사용 권한 요청)에서 가장 아래쪽에 Azure Active Directory Graph를 선택

image-20240729-014303.png

3-2. 아래와 같이 Application permissions를 추가합니다.

  • (1) Application permissions(애플리케이션 사용 권한) 선택 > (2) 4개(Application.Read.All, Application.ReadWrite.All, Directory.Read.All, Policy.Read.All)의 항목을 선택 > (3) Add permissions(권한 추가) 클릭

  • (4) Grant admin consent for 기본 디렉터리(기본 디렉터리에 대한 관리자 동의 허용)를 클릭 > 예 > 별도의 관리자가 있는 경우 승인 요청까지 대기 시간이 필요

image-20240729-014334.png

3-3. API permissions에서 아래와 같이 Microsoft Graph를 선택합니다.

  • (1) API permissions(API 사용 권한) 탭 > (2) Add a permission(권한 추가) 버튼 클릭 > (3) 오른쪽 Request API permissions (API 사용 권한 요청)에서 가장 위쪽에 Microsoft Graph를 선택

image-20240729-014407.png

3-4. 아래와 같이 Application permissions를 추가합니다.

  • (1) Application permissions(애플리케이션 사용 권한) 선택 > (2) 검색을 하여 RoleManagement의 전체 항목과, User의 전체 항목을 선택 > (3) Add permissions(권한 추가) 클릭

  • (4) Grant admin consent for 기본 디렉터리(기본 디렉터리에 대한 관리자 동의 허용)를 클릭 > 예 > 별도의 관리자가 있는 경우 승인 요청까지 대기 시간이 필요

image-20240729-014446.png

 

4. Custom Role 등록

4.1 IAM에 Custom Role을 추가합니다.

  • (1) Subscriptions(구독) 메뉴 > (2) 해당하는 subscription 클릭 > (3) Access control (액세스 제어, IAM) 탭 > Add(추가) 버튼 클릭 > (4) Add custom role(사용자 지정 역할 추가) 선택

image-20240729-014513.png

 

4.2. Custom Role에 Permissions를 추가합니다

  • (1) JSON 선택 > (2) Edit을 눌러 아래 json 파일을 복사하여 작성한 후 Save > (3) Review + create (리뷰 + 만들기) > 만들기

    CustomRoleDefinition.JSON

    { "properties":{ "roleName":"CSR-for-CXP", "description":"Role for CSR Purposes for CXP", "assignableScopes":[ "/subscriptions/76e4e1fa-7f2b-4acc-b095-157412ee6fa9" ], "permissions":[ { "actions":[ "*/read", "Microsoft.ClassicCompute/virtualMachines/start/action", "Microsoft.ClassicCompute/virtualMachines/restart/action", "Microsoft.ClassicCompute/virtualMachines/stop/action", "Microsoft.ClassicCompute/virtualMachines/shutdown/action", "Microsoft.ClassicCompute/virtualMachines/detachDisk/action", "Microsoft.ClassicCompute/virtualMachines/attachDisk/action", "Microsoft.ClassicCompute/virtualMachines/delete", "Microsoft.ClassicCompute/virtualMachines/networkInterfaces/associatedNetworkSecurityGroups/write", "Microsoft.ClassicCompute/virtualMachines/networkInterfaces/associatedNetworkSecurityGroups/delete", "Microsoft.ClassicCompute/virtualMachines/associatedNetworkSecurityGroups/write", "Microsoft.ClassicCompute/virtualMachines/associatedNetworkSecurityGroups/delete", "Microsoft.Authorization/locks/read", "Microsoft.Authorization/locks/write", "Microsoft.Authorization/locks/delete", "Microsoft.ClassicCompute/virtualMachines/read", "Microsoft.Network/publicIPAddresses/read", "Microsoft.Network/publicIPAddresses/write", "Microsoft.Network/publicIPAddresses/delete", "Microsoft.Network/publicIPAddresses/join/action", "Microsoft.Compute/virtualMachines/deallocate/action", "Microsoft.Compute/virtualMachines/restart/action", "Microsoft.Compute/virtualMachines/start/action", "Microsoft.Compute/virtualMachines/delete", "Microsoft.Compute/disks/write", "Microsoft.Resources/subscriptions/resourceGroups/write", "Microsoft.Compute/snapshots/write", "Microsoft.Compute/disks/beginGetAccess/action", "Microsoft.Compute/snapshots/read", "Microsoft.Compute/snapshots/delete", "Microsoft.Compute/snapshots/beginGetAccess/action", "Microsoft.Compute/snapshots/endGetAccess/action", "Microsoft.Compute/disks/read", "Microsoft.Compute/disks/delete", "Microsoft.Compute/disks/endGetAccess/action", "Microsoft.Network/networkInterfaces/UpdateParentNicAttachmentOnElasticNic/action", "Microsoft.Network/networkInterfaces/effectiveNetworkSecurityGroups/action", "Microsoft.Network/networkInterfaces/effectiveRouteTable/action", "Microsoft.Network/networkInterfaces/delete", "Microsoft.Network/networkInterfaces/join/action", "Microsoft.Network/networkInterfaces/write", "Microsoft.Network/networkInterfaces/read", "Microsoft.Network/networkInterfaces/providers/Microsoft.Insights/metricDefinitions/read", "Microsoft.Network/networkInterfaces/tapConfigurations/delete", "Microsoft.Network/networkInterfaces/tapConfigurations/write", "Microsoft.Network/networkInterfaces/tapConfigurations/read", "Microsoft.Network/networkInterfaces/loadBalancers/read", "Microsoft.Network/networkInterfaces/ipconfigurations/join/action", "Microsoft.Network/networkInterfaces/ipconfigurations/read", "Microsoft.Network/networkInterfaces/diagnosticIdentity/read", "Microsoft.Network/networkSecurityGroups/read", "Microsoft.Network/networkSecurityGroups/write", "Microsoft.Network/networkSecurityGroups/delete", "Microsoft.Network/networkSecurityGroups/join/action", "Microsoft.Network/networkSecurityGroups/defaultSecurityRules/read", "Microsoft.Network/networksecuritygroups/providers/Microsoft.Insights/diagnosticSettings/read", "Microsoft.Network/networksecuritygroups/providers/Microsoft.Insights/diagnosticSettings/write", "Microsoft.Network/networksecuritygroups/providers/Microsoft.Insights/logDefinitions/read", "Microsoft.Network/networkSecurityGroups/securityRules/read", "Microsoft.Network/networkSecurityGroups/securityRules/write", "Microsoft.Network/networkSecurityGroups/securityRules/delete", "Microsoft.Authorization/roleAssignments/read", "Microsoft.Authorization/roleAssignments/write", "Microsoft.Authorization/roleAssignments/delete" ], "notActions":[ ], "dataActions":[ ], "notDataActions":[ ] } ] } }
  • image-20240729-014536.png

 

5. Application에 Role 할당

5.1 추가된 'Custom Role'을 'CSR' Application에 할당합니다.

  • (1) Subscriptions(구독) 메뉴 > (2) 해당하는 subscription 클릭 > (3) Access control (액세스 제어, IAM) 탭 > Add(추가) 버튼 클릭 > (4) Add role assignment(역할 할당 추가) 선택

  • (5) Role(역할)에서 'CSR-for-CXP' 선택 > Assign access to(다음에 대한 액세스 할당)에서 User, group, or service principal(사용자, 그룹 또는 서비스 주체) 선택 > Select(선택)에서 'CSR'을 검색하여 선택 > Save(저장) 클릭

image-20240729-014618.png

 

6. 완료 후 credential 공유하기

6-1. 5번까지(관리자의 동의가 완료된 후) 진행 후, 1-5 항목의 결과를 cloudxper 관리자 메일(cmpadmin.cloudxper@lgcns.com)으로 공유합니다.

항목

내용

항목

내용

제목

[CloudXper] 인벤토리 CSR 수행 등록 요청

수신

cmpadmin.cloudxper@lgcns.com

내용

인벤토리 CSR 수행 등록 요청합니다.

계정 명 : xx서비스 xx환경 (예)

Azure Subscription ID : (등록 진행한 Azure 구독 ID 기재)

{
    "appId": "21715d1e-e40c-4812-9076-105a77643271",
    "displayName": "CloudXper2",
    "name": "http://CloudXper2",
    "password": "Z_8sSGrFYx1Qw6ctU2C0_j8ZJlwb75.0N5",
    "tenant": "30c30f12-7842-4464-adf5-7ebef310f18c"
}

※ 등록 정보 확인 방법

  • CSR Application > (1) Overview(개요) > (2) Essentials(기본 정보)의 내용 중 appId, displayName, name, tenant를 확인할 수 있습니다.

  • password는 위의 2번 항목에서의 Client Secrets의 Value값을 확인하시면 됩니다.

image-20240729-014653.png

 

6-2. 수집과 CSR 수행에 대한 권한 및 사용자를 별도로 분리하신 경우 각각 메일을 작성하여 공유합니다.

 

Step 3 : 예약 구매 조회를 위한 가이드 (선택 사항)

  • TSC(Technical Support Center) 포털을 통해 요청할 수 있습니다.