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 메뉴를 클릭합니다.
1-2. CLI를 실행하기 위한 Storage Account가 없을 시 다음과 같은 화면이 나타납니다. "Create"를 클릭하여 생성하고, cli 메뉴로 진입합니다.
1-3. CLI 커맨드 창에, 다음과 같은 명령어를 입력합니다.
create ad user
|
1-4. 응답 결과를 복사해서 기록해 둡니다.
중요 : 이때 생성된 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 탭으로 이동합니다.
2-2. Add > Add custom role을 클릭하여 다음과 같이 입력/선택합니다.
Baseline permissions에서 "Clone a role"을 선택하고, "Role to clone"에서 Reader를 선택합니다.
2-3. JSON 탭으로 이동하여, 우측의 Edit 버튼을 클릭 후 permissions 하위의 actions 항목의 내용을 다음과 같이 변경합니다. 그리고 Save 버튼을 클릭합니다.
add permission
|
2-4. Review + Create 탭으로 이동하여, create 버튼을 클릭하여 custom role을 생성합니다.
3. 등록한 Application의 Role 수정하기
3-1. 다시 Subscription 메뉴 > Subscription 선택 > Access Controle (IAM) 메뉴로 진입합니다.
3-2. Role assignment 탭에서, Contributor로 지정되어 있는 CloudXper 앱을 선택하고 "Remove"를 클릭합니다.
3-3. 상단의 Add 버튼을 클릭합니다.
3-4. 우측 패널에서 아래와 같이 선택 후 Save 버튼을 클릭합니다.
4. API Permissions 등록
4-1. 모든 서비스(All Service) > Azure Active Directory 항목으로 이동합니다.
4-2. 왼쪽 탭: 앱 등록(App Registration) > 모든 애플리케이션 보기 를 선택합니다.
4-3. 1번 과정에서 생성한 Application 선택해 상세 페이지로 이동합니다.
4-4. 왼쪽 탭: API 사용 권한(API Premissions) > 권한 추가 > Microsoft Graph 항목을 선택합니다.
4-5. Role Management, User 를 검색하여 다음의 3가지 권한을 추가합니다.
add permission
RoleManagement - RoleManagement.Read.All - RoleManagement.Read.Directory User - User.Read.All |
이후 기본 디렉터리에 대한 관리자 동의 허용 버튼을 눌러 동의를 신청합니다. 별도의 관리자가 있는 경우 승인될 때까지 대기가 필요합니다.
5. 완료 후 credential 공유하기
5-1. 4번까지(관리자의 동의가 완료된 후) 진행 후, 1-4 항목의 결과를 cloudxper 관리자 메일(cmpadmin.cloudxper@lgcns.com)으로 공유합니다.
항목 | 내용 |
|---|---|
제목 | [CloudXper] 인벤토리 수집 등록 요청 |
수신 | cmpadmin.cloudxper@lgcns.com |
내용 | 인벤토리 수집 등록 요청합니다. 계정 명 : xx서비스 xx환경 (예) Azure Subscription ID : (등록 진행한 Azure 구독 ID 기재) { |
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을 선택하여 상세 화면으로 이동
2. Client Secret 추가
2-1. CSR Application에 아래와 같이 Client secret을 추가합니다.
(1) Certificates & secrets(인증서 및 암호) 탭 > New client secret(새 클라이언트 암호) 버튼 클릭 > (2) Expires(만료 시간)을 12months로 변경 > (3) Add (추가) 클릭
(4) 추가된 Client secret 확인이 가능
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를 선택
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 기본 디렉터리(기본 디렉터리에 대한 관리자 동의 허용)를 클릭 > 예 > 별도의 관리자가 있는 경우 승인 요청까지 대기 시간이 필요
3-3. API permissions에서 아래와 같이 Microsoft Graph를 선택합니다.
(1) API permissions(API 사용 권한) 탭 > (2) Add a permission(권한 추가) 버튼 클릭 > (3) 오른쪽 Request API permissions (API 사용 권한 요청)에서 가장 위쪽에 Microsoft Graph를 선택
3-4. 아래와 같이 Application permissions를 추가합니다.
(1) Application permissions(애플리케이션 사용 권한) 선택 > (2) 검색을 하여 RoleManagement의 전체 항목과, User의 전체 항목을 선택 > (3) Add permissions(권한 추가) 클릭
(4) Grant admin consent for 기본 디렉터리(기본 디렉터리에 대한 관리자 동의 허용)를 클릭 > 예 > 별도의 관리자가 있는 경우 승인 요청까지 대기 시간이 필요
4. Custom Role 등록
4.1 IAM에 Custom Role을 추가합니다.
(1) Subscriptions(구독) 메뉴 > (2) 해당하는 subscription 클릭 > (3) Access control (액세스 제어, IAM) 탭 > Add(추가) 버튼 클릭 > (4) Add custom role(사용자 지정 역할 추가) 선택
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":[ ] } ] } }
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(저장) 클릭
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 기재) { |
※ 등록 정보 확인 방법
CSR Application > (1) Overview(개요) > (2) Essentials(기본 정보)의 내용 중 appId, displayName, name, tenant를 확인할 수 있습니다.
password는 위의 2번 항목에서의 Client Secrets의 Value값을 확인하시면 됩니다.
6-2. 수집과 CSR 수행에 대한 권한 및 사용자를 별도로 분리하신 경우 각각 메일을 작성하여 공유합니다.
Step 3 : 예약 구매 조회를 위한 가이드 (선택 사항)
TSC(Technical Support Center) 포털을 통해 요청할 수 있습니다.