자원 수집을 위한 권한 설정
SpaceONE 자원 컬렉터가 Google Cloud 서비스 계정에서 데이터를 수집하기 위해서는 최소한의 권한 설정이 필요합니다. SpaceONE은 Google Cloud 연동에 대해 OAuth2.0에 기반한 google_oauth2_credentials 방식을 지원하며, 이는 아래와 같은 정보를 필요로 합니다.
- Client Email
- Client ID
- Private Key
- Private Key ID
- Project ID
- client_x509_cert_url
위 정보를 획득하기 위해 아래와 같은 순서로 계정을 설정해야 합니다.
Google Cloud 서비스 계정 생성
Google Cloud 로그인 후, IAM 콘솔 로 이동하여 프로젝트를 클릭합니다.
[IAM 및 관리자 > 서비스 계정] 메뉴에서 [서비스 계정 만들기]를 클릭합니다.
서비스 계정 세부정보를 입력하고, [만들고 계속하기] 버튼을 클릭합니다.
역할(Role) 생성 및 서비스 계정에 추가
역할(Role) 은 Google Cloud 리소스에서 특정 작업을 수행할 수 있는 권한을 포함하고 있습니다. 서비스 계정에 역할(Role)을 부여하게 되면 역할(Role)에 포함된 권한을 부여받게 됩니다.
Google Cloud 플러그인이 리소스 정보를 수집하기 위해 서비스 계정에 적절한 권한을 설정해야 합니다. 해당 컬렉터 플러그인은 읽기 권한 이외의 어떠한 권한도 필요하지 않습니다.
컬렉터 플러그인이 수집할 수 있는 Google Cloud 서비스와 리소스를 수집하기 위해 필요한 권한 목록은 아래와 같습니다. 구글 컬렉터 플러그인은 총 8개 서비스에 대해 수집하고 있으며 이에 따른 필요한 권한을 갖는 역할(Role)을 생성해야 합니다.
Managed Role
아래 표의 Required Role
은 각 서비스 별 필요한 권한을 나타내며, 각각의 역할(Role)은 Google Cloud에서 제공하는 Managed Role에 해당합니다.
다만 Storage 뷰어(Custom)는 Managed Role로 지원되지 않습니다.
Service | Required Role | URL |
---|---|---|
Compute Engine | Compute 뷰어 | GitHub 링크 |
Networking | Compute 뷰어 | GitHub 링크 |
Cloud SQL | Cloud SQL 뷰어 | GitHub 링크 |
Storage | 1) Storage 뷰어(Custom) 2) 환경 및 스토리지 객체 뷰어 3) 모니터링 뷰어 | GitHub 링크 |
BigQuery | BigQuery 리소스 뷰어 | GitHub 링크 |
Cloud Pub/Sub | 게시/구독 뷰어 | GitHub 링크 |
Cloud Functions | Cloud 함수 뷰어 | GitHub 링크 |
Recommender | 1) 클라우드 애셋 뷰어 2) 추천자 뷰어 | GitHub 링크 |
Custom Role (Storage)
Storage 뷰어는 Managed Role로 지원되지 않아 Custom Role을 생성해야 합니다. 아래는 Storage 뷰어(Custom)에 필요한 권한 목록입니다.
Service | Name |
---|---|
Cloud Storage | storage.buckets.get |
Cloud Storage | storage.buckets.getIamPolicy |
Cloud Storage | storage.buckets.list |
Cloud Storage | storage.objects.get |
Cloud Storage | storage.objects.getIamPolicy |
Cloud Storage | storage.objects.list |
Custom Role 생성
[IAM 및 관리자 > 역할] 메뉴로 이동 후 [역할 만들기] 버튼을 클릭합니다.
[제목]에 값을 입력 후 [권한 추가] 버튼을 클릭합니다.
Storage 뷰어에 필요한 권한 목록의 [Name]을 검색하여 권한을 추가 합니다.
추가된 권한을 확인 후 [만들기] 버튼을 클릭하여 역할(Role) 생성을 완료합니다.
Google Cloud 서비스 계정에 Managed/Custom Role 추가
서비스 계정에 부여할 권한을 선택합니다.
[완료] 버튼을 클릭하여 역할(Role) 생성을 마무리합니다.
인증키 생성
인증키는 Google Cloud 자원에 접근하기 위한 자격 증명 정보를 가지고 있습니다.
[IAM 및 관리자 > 서비스 계정] 메뉴에서 서비스 계정 이메일을 클릭합니다.
[키] 탭 메뉴로 이동하고, [키 추가 > 새 키 만들기] 버튼을 클릭합니다.
키 유형 중 JSON 방식을 클릭한 후 [만들기] 버튼을 클릭합니다.
로컬 컴퓨터에 비공개 키가 JSON 파일로 저장됩니다. 다운로드 받은 JSON 파일에는 SpaceONE에서 서비스 어카운트 등록 시 필요한 설정 정보가 존재합니다.
SpaceONE 서비스 어카운트 등록을 위한 정보 확인
Project ID 설정 정보 확인
Google Cloud 대시보드 로 이동하고, 프로젝트를 선택 후 [열기] 버튼을 클릭합니다.
프로젝트 상세 정보에서 Project ID를 확인 할 수 있습니다.
google_oauth2_credentials 등록 정보 확인
3. 인증키 생성에서 다운로드 받은 JSON 파일을 열어서 아래 정보를 확인합니다.
- Client Email
- Client ID
- Private Key
- Private Key ID
- Project ID
- client_x509_cert_url