이전 버전의 GKE On-Prem 문서를 보고 있습니다. 최신 문서 보기

서비스 계정 및 키 만들기

이 페이지에서는 Anthos GKE On-Prem을 설치하는 데 필요한 Google Cloud 서비스 계정과 키를 만드는 방법을 보여줍니다.

관리 워크스테이션에 SSH로 연결

관리 워크스테이션에 SSH로 연결합니다.

ssh -i ~/.ssh/vsphere_workstation ubuntu@[IP_ADDRESS]

여기서 [IP_ADDRESS]는 관리 워크스테이션의 IP 주소입니다.

관리 워크스테이션에서 이 주제의 남은 단계를 모두 수행합니다.

로그인하기

계정 사용자 인증 정보를 사용하여 Google Cloud에 로그인합니다.

gcloud auth login

서비스 계정 개요

GKE On-Prem을 설치하기 전에 Google Cloud 프로젝트에 4개의 서비스 계정을 만들어야 합니다. 또한 각 서비스 계정마다 JSON 키를 만들어야 합니다. 필요한 서비스 계정은 다음과 같습니다.

  • 허용 목록에 포함된 서비스 계정
  • 서비스 계정 연결
  • 등록 서비스 계정
  • Google Cloud의 작업 제품군 서비스 계정

서비스 계정을 나열합니다.

gcloud iam service-accounts list

출력에 서비스 계정의 이메일 주소가 표시됩니다.

whitelisted-service-account@my-gcp-project.iam.gserviceaccount.com
some-other-service-account@my-gcp-project.iam.gserviceaccount.com
...

각 계정의 이메일 주소를 기록해 둡니다.

허용 목록에 포함된 서비스 계정

이미 허용 목록에 포함된 서비스 계정이 있습니다.

허용 목록에 포함된 서비스 계정의 키를 만듭니다.

gcloud iam service-accounts keys create whitelisted-key.json \
   --iam-account [WHITELISTED_SERVICE_ACCOUNT_EMAIL]

여기서 [WHITELISTED_SERVICE_ACCOUNT_EMAIL]는 허용된 서비스 계정의 이메일 주소입니다.

서비스 계정 연결

Connect는 이 서비스 계정을 사용하여 GKE On-Prem과 Google Cloud 간의 연결을 유지합니다.

연결 서비스 계정을 만듭니다.

gcloud iam service-accounts create connect-service-account

연결 서비스 계정의 키를 만듭니다.

gcloud iam service-accounts keys create connect-key.json \
   --iam-account [Connect_SERVICE_ACCOUNT_EMAIL]

여기서 [Connect_SERVICE_ACCOUNT_EMAIL]는 Connect 서비스 계정의 이메일 주소입니다.

등록 서비스 계정

Connect는 이 서비스 계정을 사용하여 GKE On-Prem 클러스터를 Google Cloud Console에 등록합니다.

등록 서비스 계정을 만듭니다.

gcloud iam service-accounts create register-service-account

등록 서비스 계정의 키를 만듭니다.

gcloud iam service-accounts keys create register-key.json \
   --iam-account [REGISTER_SERVICE_ACCOUNT_EMAIL]

여기서 [REGISTER_SERVICE_ACCOUNT_EMAIL]는 등록 서비스 계정의 이메일 주소입니다.

Google Cloud의 작업 제품군 서비스 계정

Connect는 이 서비스 계정을 사용하여 클러스터의 클러스터 로그를 GCP 프로젝트를 통해 Stackdriver로 내 보냅니다.

Google Cloud의 작업 제품군 서비스 계정을 만듭니다.

gcloud iam service-accounts create stackdriver-service-account

Google Cloud의 작업 제품군 서비스 계정의 키를 만듭니다.

gcloud iam service-accounts keys create stackdriver-key.json \
   --iam-account [Google Cloud's operations suite_SERVICE_ACCOUNT_EMAIL]

여기서 [Google Cloud's operations suite_SERVICE_ACCOUNT_EMAIL]은 Google Cloud 운영 제품군 서비스 계정의 이메일 주소입니다.

이 시점에서 Google Cloud 프로젝트에 서비스 계정 4개를 만들었으며 관리 워크스테이션의 각 서비스 계정에 JSON 키가 있습니다.

서비스 계정에 Cloud Identity and Access Management 역할 할당

각 서비스 계정에는 특정 Cloud IAM 역할이 있어야 합니다. 각 서비스 계정에 필요한 최소 역할 집합을 부여하는 것이 좋습니다.

먼저 Google Cloud 프로젝트에 있는 서비스 계정을 나열합니다.

gcloud iam service-accounts list

출력에 서비스 계정의 이메일 주소가 표시됩니다.

whitelisted-service-account@my-gcp-project.iam.gserviceaccount.com
register-service-account@my-gcp-project.iam.gserviceaccount.com
connect-service-account@my-gcp-project.iam.gserviceaccount.com
stackdriver-service-account@my-gcp-project.iam.gserviceaccount.com

각 계정의 이메일 주소를 기록해 둡니다. 다음 각 섹션에 관련 계정의 이메일 주소를 입력합니다.

등록 서비스 계정

등록 서비스 계정에 gkehub.adminserviceuseage.serviceUsageViewer 역할을 부여합니다.

gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[REGISTER_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/gkehub.admin"
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[REGISTER_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/serviceusage.serviceUsageViewer"

서비스 계정 연결

연결 서비스 계정에 gkehub.connect 역할을 부여합니다.

gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[Connect_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/gkehub.connect"

Google Cloud의 작업 제품군 서비스 계정

Google Cloud의 작업 제품군 서비스 계정에 stackdriver.resourceMetadata.writer, logging.logWriter, monitoring.metricWriter 역할을 부여합니다.

gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[Google Cloud's operations suite_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/stackdriver.resourceMetadata.writer"
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[Google Cloud's operations suite_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/logging.logWriter"
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[Google Cloud's operations suite_SERVICE_ACCOUNT_EMAIL]" \
--role "roles/monitoring.metricWriter"