以前のバージョンの 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 は、このサービス アカウントを使用して 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 キーがあります。

サービス アカウントへの Identity and Access Management のロールの割り当て

各サービス アカウントには、特定の 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.writerlogging.logWritermonitoring.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"