다수의 프로젝트 관리를 위한 설정

⚠️
이 과정을 진행하려면 자원 수집을 위한 권한 설정에 대한 이해가 선행되어야 합니다.

다수의 Google Cloud 프로젝트를 연동하기 위해, 다음 두 가지 방식을 취할 수 있습니다.

  • Organization 하위 프로젝트에 모든 권한 상속: 하나의 서비스 계정으로 모든 프로젝트를 관리합니다.
  • 특정 서비스 계정에 권한을 위임: 프로젝트 간 Trusting 관계를 설정하여 하나의 서비스 계정으로 여러 프로젝트에 접근합니다.
ℹ️

이 문서에서는 계층 구조에 대한 이해를 돕기 위해 다음과 같은 구성을 예시로 설명합니다.

1️⃣ cloudeco.io: Google Cloud 자원을 관리하기 위한 최상위 계층(Organization Level)

2️⃣ Root Project: 권한 상속을 위한 서비스 계정를 가지고 있는 프로젝트

3️⃣ Projects: 2️⃣ Root Project로부터 권한을 상속받는 프로젝트들

Organization 하위 프로젝트에 모든 권한 상속

Organization Level에서 IAM 역할(Role)을 부여하면 하위에 위치한 모든 노드(Folder 및 Project)가 해당 역할(Role)을 상속받기 때문에, 하나의 서비스 계정(2️⃣ Root Project)으로 모든 프로젝트를 관리할 수 있습니다.

Custom Role 생성

1️⃣ cloudeco.io에서 Custom Role을 생성합니다.

다음 [Name]에 해당하는 값을 [필터] 검색창에 검색하여, 기본 정보 및 6개의 권한을 설정합니다.

- storage.buckets.get
- storage.buckets.getIamPolicy
- storage.buckets.list
- storage.objects.get
- storage.objects.getIamPolicy
- storage.objects.list

별도 프로젝트 생성 및 권한 위임을 위한 서비스 계정 생성

2️⃣ Root Project를 생성하고, 해당 프로젝트로 이동하여 권한 상속을 위한 서비스 계정을 생성합니다.

기본 정보를 입력하고, SpaceONE 연동을 위해 단계 1에서 생성한 Custom Role을 설정합니다.

다음 [Name]에 해당하는 값을 [필터] 검색창에 검색하여 권한을 추가합니다.

- SpaceONE Custom Role
- Compute Viewer
- Cloud SQL Viewer
- Environment and Storage Object Viewer
- Monitoring Viewer
- Pub/Sub Viewer
- Cloud Functions Viewer
- Cloud Asset Viewer
- Recommender Viewer

API 사용 설정

프로젝트를 직접 SpaceONE에 등록할 경우, 해당 프로젝트에서 사용 중인 서비스는 자동으로 API가 활성화됩니다. 하지만 Trusting 관계 설정에서는 권한 위임된 서비스 계정에 Google Cloud API를 활성화해야만 정상적으로 자원을 수집할 수 있습니다.

⚠️

API 사용 설정이 필수인 자원 목록

Compute Engine | Networking | Cloud SQL | Storage | BigQuery | Cloud Pub/Sub | Cloud Functions | Recommender

  1. Google Cloud Console API 라이브러리 로 이동합니다.
  2. 프로젝트 목록에서 사용할 프로젝트를 선택합니다.
  3. API 라이브러리에서 사용할 API를 선택합니다.
  4. API 페이지에서 [사용 설정]을 클릭합니다.

1️⃣ cloudeco.io에 권한 위임된 서비스 계정을 바인딩

  1. [cloudeco.io > IAM > PERMISSIONS > ADD]에서 새로운 Principal 추가

  2. 단계 2에서 생성한 Service Account와 역할(Role) 정보를 동일하게 입력

지금까지의 과정을 모두 마쳤다면 1️⃣ cloudeco.io 내의 모든 3️⃣ Projects에 Google Cloud의 서비스 계정 및 역할(Role)이 상속됩니다.

[My First Project > Service Account > KEYS]에서 생성한 서비스 계정의 인증키를 JSON 형태로 다운로드합니다. 이는 SpaceONE에서 Trusted Account를 등록할 때 사용됩니다.

특정 서비스 계정에 권한을 위임

프로젝트 간 Trusting 관계를 설정하면, SpaceONE에서 인증키 정보를 직접 입력하지 않고 Project ID만으로 Google Cloud 서비스 계정을 연동할 수 있습니다.

SpaceONE에서 Trusted Account(2️⃣ Root Project)의 인증키는 그와 Trusting 관계인 General Account(3️⃣ Projects)에 접근 시 참조하여 활용됩니다.

개별 프로젝트로 이동

2️⃣ Root Project와 Trusting 관계를 설정할 개별 프로젝트로 이동합니다.

2️⃣ Root Project와 Trusting 관계 설정

[IAM > GRANT ACCESS > Add Principals]에서 2️⃣ Root Project의 계정을 구성원으로 추가하고, 편집자 권한까지 부여합니다.

이 과정을 반복하여 SpaceONE에 연동하고자 하는 모든 프로젝트의 Trusting 관계를 설정합니다.