프로바이더별 계정 연동

CSP(클라우드 프로바이더)에 따라 Cloudforet 시스템과의 자동 동기화 방법을 확인할 수 있습니다.

1 - AWS 계정 자동 동기화

AWS Control Tower 계정 연동 가이드

SpaceONE(Cloudforet)이 제공하는 Account Auto Sync를 통해 AWS Control Tower를 기준으로 하위에 존재하는 관리 그룹의 계층을 SpaceONE에 동기화 할 수 있습니다.



계층 구조 동기화

SpaceONE의 Trusted Service Account를 통해 AWS의 Account 계층 구조를 자동으로 동기화할 수 있습니다.

각각의 구독을 기준으로 계층을 파악하여 동기화 되며 SpaceONE의 워크스페이스, 프로젝트 그룹, 프로젝트 그리고 서비스어카운트로 동기화가 이루어 집니다.


[자동 동기화 기준]

AWSSpaceONE(Cloudforet)
RootWorkspace
최상위 OUs(Organization Units)Workspaces, Project Groups
하위 OUs(Nested Organization Units)Project Groups
Resources, Member accountsProject and Service Account

[AWS 계층 구조 참고]



권한 부여

1) AWS Cloudformation을 이용하여 SpaceONE 전용 Role 생성하기

  • Sync 작업을 진행하기 전 먼저 SpaceONE이 이용할 수 있는 IAM Role를 하위 member account별로 생성합니다.
  • Role 자동생성을 위해 Management Account에 CloudFormation StackSet를 생성합니다.

[AWS CloudFormation StackSet을 생성하는 과정]

  • Template 선택: Stack Resource와 구성을 정의하는 CloudFormation 템플릿을 준비합니다.


  • StackSet 세부 정보 지정: StackSet의 이름, 설명, 필요한 파라미터를 입력합니다.


  • StackSet 옵션 구성: StackSet의 실행방식 등을 구성합니다.

  • 위의 화면을 참조하여
    • 태그는 Optional인 관계로 기호에 따라 추가해줍니다.
    • 실행 구성은 “비활성” 으로 선택합니다.

  • 배포 옵션 설정: StackSet을 적용할 대상 및 자동 배포 유무 등을 설정합니다.

  • 위의 화면들을 참조하여,
    • 스택 세트에 스택 추가는 “새 스택 배포”를 선택
    • 배포 대상은 “OU(조직 단위)에 배포” 선택
      • AWS OU ID는 AWS Control Tower의 Management Account의 root id를 입력합니다.
      • 계정 필터 유형은 “차집합” 선택
      • 계정 번호는 role 생성을 제외시킬 Security OU에 있는 Audit 과 Log Archive Account의 ”Account ID”를 입력합니다.
        • Ex. 386390908341, 942155983773
        • Audit과 Log Archive에 Role 생성을 하지 않을 뿐, Account Sync하는 과정에서 빠지진 않습니다.
    • 자동 배포 옵션은
      • 자동 배포 “활성화됨”
      • 계정 제거 동작은 “스택 삭제”
    • 리전 지정은 해당 Control Tower가 있는 리전을 지정합니다. (보통은 “아시아 태평양(서울)”)
    • 배포 옵션은 따로 변경하는 것 없이 진행합니다.

2) Management Account에 IAM User 생성하기

SpaceONE Console에 등록하려는 AWS account의 User는 아래의 permissions를 가져야 합니다.

(아래의 예시는 spaceone-test라는 이름의 User입니다.)

  • ReadOnlyAccess(AWS Managed Policy)
  • sts.AssumeRole Policy
    • 위 사진의 SpaceONEAssumeRolePolicy와 같이 사전에 Cloudformation StackSet으로 생성한 role에 대해 assume role권한을 허용하는 policy가 필요합니다.
    • (YOUR_SPACEONE_ROLE_NAME = IAM Role 생성에서 만든 Role Name을 넣어주세요.)
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole"
            ],
            "Resource": [
                "arn:aws:iam::*:role/YOUR_SPACEONE_ROLE_NAME"
            ]
        }
    ]
}



자동화 결과

SpaceONE의 Account Auto Sync 기능은 Trusted Account Scope에 따라 다르게 적용됩니다.


✔️ Domain Scope의 Trusted Account (Admin Mode에서 생성 가능)

Domain에서 생성된 Trusted Account의 경우, 아래 두 가지로 설정이 가능합니다.

방법1) Organization이 SpaceONE의 단일 Workspace가 되어 하위의 전체 프로젝트 및 계정 동기화가 적용될 수 있습니다.

AWSSpaceONE(Cloudforet)
RootWorkspace
OUs(Organization Units)Project Groups
Resources, Member accountsProject and Service Account

방법 2) 최상위 OUs(Organization Units)를 다중의 Workspace로 동기화할 수 있습니다. 이는 좀 더 관리 체계를 조직 단위로 구성함으로써 성능 및 관리에 최적화할 수 있습니다.

AWSSpaceONE(Cloudforet)
최상위 OUs(Organization Units)Workspaces
하위 OUs(Nested Organization Units)Project Groups
Resources, Member accountsProject and Service Account

✔️ Workspace Scope의 Trusted Account

Workspace에서 생성된 Trusted Account의 경우 Workspace 하위에 동기화가 적용됩니다.

AWSSpaceONE(Cloudforet)
OUs(Organization Units)Project Groups
Resources, Member accountsProject and Service Account

2 - Azure 계정 자동 동기화

Azure 구독 기준의 계정 연동 가이드

SpaceONE(Cloudforet)이 제공하는 Account Auto Sync를 통해 Azure 구독을 기준으로 Tenant 포함 하위에 존재하는 관리 그룹의 계층을 SpaceONE에 동기화 할 수 있습니다.



계층 구조 동기화

SpaceONE의 Trusted Service Account를 통해 Azure의 Resource 계층 구조를 자동으로 동기화할 수 있습니다.

각각의 구독을 기준으로 계층을 파악하여 동기화 되며 SpaceONE의 워크스페이스, 프로젝트 그룹, 프로젝트 그리고 서비스어카운트로 동기화가 이루어 집니다.


[자동 동기화 기준]

AzureSpaceONE(Cloudforet)
Azure AD TenantWorkspace, Project Group
Management GroupsProject Group
SubscriptionProject and Service Account

[Azure 계층 구조 참고]


Azure CSP 공급자가 관리하는 고객의 구독에 대한 동기화 과정은 아래와 같습니다.

  • 먼저 관리하는 고객(customer)의 리스트를 조회합니다.
  • 고객이 소유한 구독의 정보를 조회합니다.
  • 만약 App이 고객의 관리 그룹의 대한 조회 권한이 있을 경우 구독이 속한 Management Group의 계층 구조를 조회합니다.

권한 부여

SpaceONE에서 Service Account Auto Sync 기능을 사용하기 위해 Azure의 서비스 주체(Service Principal)에 권한을 올바르게 할당해야 합니다.


➊ Management Group

Azure의 공식 문서를 참고하여 관리그룹의 IAM에 생성한 앱을 등록해 주세요.

필요 권한은 관리 그룹 읽기 권한자 입니다.


➋ CSP

Azure의 공식 문서를 참고하여 비용 분석의 IAM에 생성한 앱을 등록해 주세요. CSP의 권한으로 고객의 테넌트와 구독 정보를 가져옵니다. 필요 권한은 비용 관리 읽기 권한자 입니다.


➌ EA (지원 예정)



자동화 결과

SpaceONE의 Account Auto Sync 기능은 Trusted Account Scope에 따라 다르게 적용됩니다.


✔️ Domain Scope의 Trusted Account (Admin Mode에서 생성 가능)

Domain에서 생성된 Trusted Account의 경우, Tenant가 SpaceONE의 (멀티 또는 단일)Workspace가 되어 동기화가 적용됩니다.

AzureSpaceONE(Cloudforet)
Azure AD TenantWorkspace
Management GroupsProject Group
SubscriptionProject and Service Account

✔️ Workspace Scope의 Trusted Account

Workspace에서 생성된 Trusted Account의 경우 Workspace 하위에 동기화가 적용됩니다.

AzureSpaceONE(Cloudforet)
Azure AD TenantProject Group
Management GroupsProject Group
SubscriptionProject and Service Account

3 - GCP 계정 자동 동기화

Google Cloud 관리 쳬계 기준의 계정 연동 가이드

SpaceONE(Cloudforet)이 제공하는 Account Auto Sync를 통해 Google Cloud 계정을 기준으로 하위에 존재하는 관리 그룹의 계층을 SpaceONE에 동기화 할 수 있습니다.



계층 구조 동기화

SpaceONE의 Trusted Service Account를 통해 GCP의 Organization 계층 구조를 자동으로 동기화할 수 있습니다.

각각의 구독을 기준으로 계층을 파악하여 동기화 되며 SpaceONE의 워크스페이스, 프로젝트 그룹, 프로젝트 그리고 서비스어카운트로 동기화가 이루어 집니다.


[자동 동기화 기준]

Google cloudSpaceONE(Cloudforet)
OrganizationWorkspace
FolderWorkspace, Project Group
ProjectProject
Service AccountService Account

[GCP 계층 구조 참고]

Google Cloud의 관리 체계는 Organization > Folder > Project 구조로, SpaceONE과 동일한 구조를 가지는 것을 확인해볼 수 있습니다. 마찬가지로 Google Cloud계정은 이름이 동일한 Service Account를 가지고 있습니다.


권한 부여

SpaceONE에서 Service Account Auto Sync 기능을 사용하기 위해 Organization에 사용 중인 Trusted Account 설정에 사용된 Service Account에 조직 뷰어(Organization Viewer), 폴더 뷰어(Folder Viewer)에 대한 롤을 추가해야 합니다.



자동화 결과

SpaceONE의 Account Auto Sync 기능은 Trusted Account Scope에 따라 다르게 적용됩니다.


✔️ Domain Scope의 Trusted Account (Admin Mode에서 생성 가능)

Domain에서 생성된 Trusted Account의 경우, 아래 두 가지로 설정이 가능합니다.

방법1) Organization이 SpaceONE의 단일 Workspace가 되어 하위의 전체 프로젝트 및 계정 동기화가 적용될 수 있습니다.

Google CloudSpaceONE(Cloudforet)
OrganizationWorkspace
FolderProject Group
ProjectProject
Service AccountService Account

방법 2) 최상위 Google Cloud Folder를 다중의 Workspace로 동기화할 수 있습니다. 이는 좀 더 관리 체계를 조직 단위로 구성함으로써 성능 및 관리에 최적화할 수 있습니다.

Google CloudSpaceONE(Cloudforet)
최상위 FolderWorkspace
하위 FolderProject Group
ProjectProject
Service AccountService Account

✔️ Workspace Scope의 Trusted Account

Workspace에서 생성된 Trusted Account의 경우 Workspace 하위에 동기화가 적용됩니다.

Google CloudSpaceONE(Cloudforet)
FolderProject Group
ProjectProject
Service AccountService Account

4 - Kubernetes 계정 연동

Kubernetes Cluster 계정 연동 가이드

쿠버네티스 서비스 어카운트 생성하기

(1) [에셋 인벤토리 > 서비스 계정] 페이지에서 쿠버네티스 서비스를 선택합니다.

(2) [+생성] 버튼을 클릭합니다.

(3) 서비스 계정 생성 폼을 작성합니다.

(3-1) SpaceONE에 생성하고자 하는 서비스 어카운트 이름을 입력합니다.

(3-2) 해당 서비스 계정에 연결할 프로젝트를 지정합니다.

(4) [추가] 버튼을 클릭하여 완료합니다.


쿠버네티스 클러스터 연결하기

(1) 연결하고자 하는 서비스 어카운트 페이지에서 [+클러스터 연결하기] 버튼을 클릭합니다.

(2) 클러스터 기본 정보를 작성합니다.

(2-1) 시스템에 설치되어 있는 클러스터 이름을 입력합니다.

(2-2) kube-state-metrics, prometheus-node-exporter 두 가지 항목이 클러스터에 설치되었는지 확인이 필요합니다.

만약, 하나의 항목이라도 설치되어 있지 않다면 SpaceONE 에이전트에서 대신 설치됩니다.

(3) 로컬 helm 저장소에 SpaceONE 에이전트 추가합니다.

(4) 클라우드 셀이나 터미널에 코드를 복사하여 SpaceONE 에이전트를 클러스터에 설치합니다.

(5) [완료] 버튼을 클릭하여 클러스터 연결을 완료합니다.


쿠버네티스 클러스터 연결하기

삭제하고자 하는 서비스 어카운트 페이지에 진입합니다.

삭제 아이콘 버튼을 통해 해당 서비스 어카운트를 삭제할 수 있습니다.

서비스 어카운트 삭제시 해당 어카운트로 수집된 모든 데이터가 유실됩니다.


연결된 쿠버네티스 클러스터 편집하기

편집하고자 하는 서비스 어카운트 페이지에 진입합니다.

연결된 쿠버네티스 클러스터 비활성화하기

[비활성화] 버튼을 눌러 클러스터 연결을 일시적으로 해제할 수 있습니다.

연결된 쿠버네티스 클러스터 재연결하기

[재연결] 버튼을 눌러 클러스터를 다시 연결할 수 있습니다.

연결된 쿠버네티스 클러스터 삭제하기

[삭제] 버튼을 클릭하여 연결된 클러스터 정보를 삭제할 수 있습니다.

5 - Kubernetes 계정 연동

Kubernetes Cluster 계정 연동 가이드

쿠버네티스 서비스 어카운트 생성하기

(1) [에셋 인벤토리 > 서비스 계정] 페이지에서 쿠버네티스 서비스를 선택합니다.

(2) [+생성] 버튼을 클릭합니다.

(3) 서비스 계정 생성 폼을 작성합니다.

(3-1) SpaceONE에 생성하고자 하는 서비스 어카운트 이름을 입력합니다.

(3-2) 해당 서비스 계정에 연결할 프로젝트를 지정합니다.

(4) [추가] 버튼을 클릭하여 완료합니다.


쿠버네티스 클러스터 연결하기

(1) 연결하고자 하는 서비스 어카운트 페이지에서 [+클러스터 연결하기] 버튼을 클릭합니다.

(2) 클러스터 기본 정보를 작성합니다.

(2-1) 시스템에 설치되어 있는 클러스터 이름을 입력합니다.

(2-2) kube-state-metrics, prometheus-node-exporter 두 가지 항목이 클러스터에 설치되었는지 확인이 필요합니다.

만약, 하나의 항목이라도 설치되어 있지 않다면 SpaceONE 에이전트에서 대신 설치됩니다.

(3) 로컬 helm 저장소에 SpaceONE 에이전트 추가합니다.

(4) 클라우드 셀이나 터미널에 코드를 복사하여 SpaceONE 에이전트를 클러스터에 설치합니다.

(5) [완료] 버튼을 클릭하여 클러스터 연결을 완료합니다.


쿠버네티스 클러스터 연결하기

삭제하고자 하는 서비스 어카운트 페이지에 진입합니다.

삭제 아이콘 버튼을 통해 해당 서비스 어카운트를 삭제할 수 있습니다.

서비스 어카운트 삭제시 해당 어카운트로 수집된 모든 데이터가 유실됩니다.


연결된 쿠버네티스 클러스터 편집하기

편집하고자 하는 서비스 어카운트 페이지에 진입합니다.

연결된 쿠버네티스 클러스터 비활성화하기

[비활성화] 버튼을 눌러 클러스터 연결을 일시적으로 해제할 수 있습니다.

연결된 쿠버네티스 클러스터 재연결하기

[재연결] 버튼을 눌러 클러스터를 다시 연결할 수 있습니다.

연결된 쿠버네티스 클러스터 삭제하기

[삭제] 버튼을 클릭하여 연결된 클러스터 정보를 삭제할 수 있습니다.