스크립트 자동화 연동

스크립트 파일 다운로드

다음 파일을 적절한 곳에 다운로드하여 압축을 해제합니다.

아래와 같은 파일들을 볼 수 있습니다.

gcloud-service-account-script
├── init-service-account.sh
└── README.md

GCP 콘솔 접속 및 로그인

GCP 콘솔에 최상위 권한으로 로그인 후 콘솔에 진입합니다. 콘솔 버튼은 우측 상단에 위치해 있습니다.

조직 및 프로젝트 선택

  • 좌측 상단의 프로젝트 또는 조직 드롭다운을 클릭합니다.
  • 조직을 선택합니다.
  • 전체 탭으로 이동합니다.
  • 서비스 계정을 생성하고 역할을 할당할 프로젝트를 선택합니다.

클라우드 콘솔 편집기 실행

콘솔 우측 상단의 Cloud Shell 활성화 버튼을 클릭하여 터미널을 활성화합니다.

팝업 창이 활성화되면 승인을 진행합니다.

콘솔 우측 상단의 편집기 열기 버튼을 클릭하여 클라우드 콘솔 편집기를 실행합니다.

편집기가 정상적으로 전환된 것을 확인합니다.

스크립트 파일 업로드

ℹ️
로컬 환경에서 본 스크립트를 실행해도 좋습니다. 단, gcloud cli 와 jq 가 설치된 환경에서 실행 가능합니다.

좌측 메뉴바 첫 번째 파일 아이콘 > 폴더 열기 > 경로 /home/{username}(자동입력) 이동

빨간 박스로 다운로드받아 압축 해제한 폴더를 드래그 앤 드롭하여 업로드

터미널 실행

상단 검색창에 > terminal을 입력하고 Create New Terminal (With Profile)을 선택한 후 bash 프로필을 선택합니다.

스크립트 실행 준비

업로드한 폴더로 이동하여 스크립트 파일의 실행 권한을 부여합니다. 다음 명령어를 한 줄씩 입력한 후 엔터를 눌러 실행합니다.

cd gcloud-service-account-script/ && ls -al
chmod +x init-service-account.sh && ls -al

통합 스크립트 실행

./init-service-account.sh 명령어로 통합 스크립트를 실행합니다.

./init-service-account.sh

스크립트 시작

  • 스크립트 실행 시 접속 유저와 접근 가능한 프로젝트 개수를 볼 수 있습니다.
  • 정보가 맞다면 Y를 입력하여 다음 단계로 진행합니다.
  • 필요하다면 다음 명령어를 통해 접속 유저를 변경할 수 있습니다.
gcloud auth list
gcloud config set account <USER_EMAIL>

대상 프로젝트 선택

  • 서비스 계정을 만들거나 역할을 할당할 프로젝트를 선택합니다.

대상 서비스 계정 선택 또는 생성

  • 서비스 계정을 선택하거나 0을 입력하여 새로운 계정을 생성할 수 있습니다.
  • 서비스 계정 생성 시 다음 규칙을 지켜야 합니다.
- 길이: 6-30자
- 문자: 소문자, 숫자, 하이픈만 허용
- 하이픈으로 시작하거나 끝날 수 없음
- 대문자, 언더스코어, 특수문자 사용 불가
- 프로젝트 내에서 고유해야 함

역할 할당

ℹ️
역할 할당 시 서비스 계정이 수집할 프로젝트에 따라 프로젝트 또는 조직을 선택해야 합니다. 역할 할당 관련 가이드는 다음 권한 부여 개념 가이드를 참고하세요.

본 스크립트는 다음 3가지 역할 할당을 지원합니다.

  • 단일 프로젝트 할당
  • 프로젝트 및 폴더 할당
  • 조직 할당 (Truested)
단일 프로젝트 할당

  • Trusted Role 할당 질문에 N으로 응답합니다.
  • 다른 프로젝트 Role 할당 질문에 N으로 응답합니다.
  • 스크립트는 자동으로 서비스 계정이 생성되는 프로젝트에 다음 역할을 부여합니다.
roles/browser
roles/iam.securityReviewer
roles/storage.bucketViewer
roles/storage.objectViewer
roles/viewer
프로젝트 및 폴더 할당

  • Trusted Role 할당 질문에 N으로 응답합니다.
  • 다른 프로젝트 Role 할당 질문에 Y로 응답합니다.
  • 스크립트가 조직 내 폴더 및 프로젝트를 수집하는 데 약간의 시간이 소요됩니다.
  • 리스트에서 역할 할당을 진행할 프로젝트 및 폴더를 콤마(,)로 나누어 입력합니다.
  • 스크립트는 자동으로 프로젝트 또는 폴더에 다음 역할을 부여합니다.
roles/browser
roles/iam.securityReviewer
roles/storage.bucketViewer
roles/storage.objectViewer
roles/viewer
조직 할당 (Trusted)

  • Trusted Role 할당 질문에 Y로 응답합니다.
  • 스크립트는 자동으로 서비스 계정이 생성되는 프로젝트와 조직에 다음 역할을 부여합니다.
roles/resourcemanager.organizationViewer (조직 레벨 역할)
roles/browser
roles/iam.securityReviewer
roles/storage.bucketViewer
roles/storage.objectViewer
roles/viewer

API 활성화

  • 스크립트는 이전에 생성 및 할당했던 모든 프로젝트와 역할 할당을 한 폴더 아래의 모든 프로젝트를 수집하여 API 활성화를 시도합니다.
  • API 활성화에는 상당한 시간이 소요됩니다.
  • 스크립트는 다음 API를 활성화합니다.
compute.googleapis.com 
cloudresourcemanager.googleapis.com
logging.googleapis.com
pubsub.googleapis.com 
cloudfunctions.googleapis.com 
sqladmin.googleapis.com 
cloudidentity.googleapis.com 
storage.googleapis.com
cloudbuild.googleapis.com
iam.googleapis.com
secretmanager.googleapis.com 
serviceusage.googleapis.com 
eventarc.googleapis.com 
bigquery.googleapis.com 

완료

지금까지의 과정을 모두 마쳤다면 새롭게 생성한 서비스 계정은 조직 내의 모든 프로젝트에 Google Cloud의 서비스 계정 및 역할(Role)이 상속됩니다.

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