メインコンテンツまでスキップ
バージョン: User Guides (BYOC)

クロスアカウントサービスアカウントの作成

このページでは、Zilliz Cloud のプロジェクトデータプレーンをブートストラップするためのクロスアカウントサービスアカウントの作成と設定方法について説明します。このサービスアカウントは、Zilliz Cloud がお客様に代わって VPC リソースを管理するために必要な権限を付与します。

📘Notes

Zilliz BYOC は現在一般提供されています。アクセスおよび実装の詳細については、Zilliz Cloud 営業までお問い合わせください。

手順

GCP ダッシュボードを使用して EKS ロールを作成できます。または、Zilliz Cloud が提供する Terraform スクリプトを使用して、GCP 上の Zilliz Cloud プロジェクトのインフラストラクチャをブートストラップすることもできます。詳細については、Terraform Provider を参照してください。

ステップ 1: カスタムロールの作成

クロスアカウントサービスアカウントを作成する前に、サービスアカウントに割り当てる必要があるいくつかのカスタムロールを作成する必要があります。

インスタンスグループマネージャーカスタムロールの作成

インスタンスグループマネージャーカスタムロールを作成し、上記で作成したサービスアカウントにカスタムロールを割り当てます。これにより、サービスアカウントは GKE ノードを管理するために必要な最小限の権限を持つことになります。

インスタンスグループマネージャーカスタムロールを作成する手順は以下の通りです:

1

GCP コンソールで IAMと管理 を検索してクリックします。

2

左側のナビゲーションペインから ロールs を選択します。

3

Create role をクリックします。

4

作成するカスタムロールのタイトルと説明を設定します。

このデモでは、Zilliz Cloud Custom ロール for GKE Management を使用できます。

5

ロールの起動段階アルファ から 一般 Availability に変更します。

6

Add permissions をクリックします。このステップで追加する権限は以下の通りです:

  • compute.instanceGroupManagers.get

  • compute.instanceGroupManagers.update

7

Create をクリックします。

IAM カスタムロールの作成

IAM カスタムロールを作成し、上記で作成したサービスアカウントにカスタムロールを割り当てます。これにより、サービスアカウントは IAM ポリシーを管理するために必要な最小限の権限を持つことになります。

カスタムロールを作成する手順は以下の通りです:

1

GCP コンソールで IAMと管理 を検索してクリックします。

2

左側のナビゲーションペインから ロールs を選択します。

3

Create role をクリックします。

4

作成するカスタムロールのタイトルと説明を設定します。

このデモでは、IAM カスタムロール を使用できます。

5

ロールの起動段階アルファ から 一般 Availability に変更します。

6

Add permissions をクリックします。このステップで追加する権限は以下の通りです:

  • iam.serviceアカウントs.getIamPolicy

  • iam.serviceアカウントs.setIamPolicy

7

Create をクリックします。

ステップ 2: サービスアカウントの作成

このステップでは、Zilliz Cloud がお客様に代わって VPC リソースを管理するためのサービスアカウントを作成し、サービスアカウントのメールアドレスを Zilliz Cloud コンソールに貼り付けます。

サービスアカウントを作成する手順は以下の通りです:

1

GCP コンソールで IAMと管理 を検索してクリックします。

2

左側のナビゲーションペインから Service アカウントs を選択します。

3

Create service account をクリックします。

4

作成するサービスアカウントの適切な名前を設定します。

このデモでは、your-org-cross-account-sa に設定できます。サービスアカウント ID はサービスアカウント名の先頭 18 文字です。手動で適切な値に設定することもできます。

5

Create and continue をクリックします。

6

Permissions セクションで、前のステップで作成したカスタムロールといくつかの GCP 管理ロールをサービスアカウントに追加します。

以下の表は、サービスアカウントに割り当てるロールを一覧表示しています。

ロール

Type

Condition

Instance group manager カスタムロール

Custom

resource.name.extract("projects/<name>").startsWith("PROJECT_ID") &&resource.name.extract("zones/<name>").startsWith("REGION") &&resource.name.extract("instanceGroupManagers/<name>").startsWith("gke-CLUSTER_NAME")

IAM カスタムロール

Custom

api.getAttribute("iam.googleapis.com/modifiedGrantsByロール", []).hasOnly(["roles/iam.workloadIdentityUser"])

Kubernetes Engine Admin

GCP-managed

N/A

Storage Object Viewer

GCP-managed

resource.name.startsWith("projects/_/buckets/YOUR_BUCKET_NAME")

📘Notes

上記の式にある 3 つのプレースホルダーを実際の値に置き換える必要があります:

  • PROJECT_ID

これは GCP プロジェクト ID です。

  • REGION

これは BYOC プロジェクトのクラウドリージョンです。

  • CLUSTER_NAME

これは Zilliz Cloud がお客様に代わって作成する GKE クラスターの名前です。

Google Cloud はクラスター名の前に gke- プレフィックスを追加することに注意してください。したがって、条件には gke- プレフィックスを保持し、CLUSTER_NAME のみを実際の名前に置き換えてください。

  • YOUR_BUCKET_NAME

これは前のステップで作成したバケットの名前です。

7

Save をクリックします。

他のサービスアカウントへのアクセス権の付与

前のステップで作成したクロスアカウントサービスアカウントに、いくつかの他のサービスアカウントへのアクセス権を付与します。

以下の手順に従って、クロスアカウントサービスアカウントにこれらのサービスアカウントへのアクセス権を付与します。

1

GCP コンソールで Service アカウント を検索してクリックします。

2

リストから以下のサービスアカウントを検索してクリックします。

Description

PROJECT_NUMBER-compute@developer.gserviceaccount.com

このサービスアカウントは、Compute Engine API を有効にしたときに自動的に作成されます。

📘Notes

GCP プロジェクトにはプロジェクト ID とプロジェクト番号があります:プロジェクト ID は GCP コンソールでプロジェクトを作成するときに入力した文字列であり、プロジェクト番号は GCP がプロジェクトの作成時に割り当てる文字列です。

PROJECT_NUMBER を独自の GCP プロジェクト番号に置き換える必要があります。

3

アクセス権を持つプリンシパル タブに切り替えて Grant access をクリックします。

4

Add principals > 新しいプリンシパル に前のステップで作成したクロスアカウントサービスアカウントを入力します。

5

Assign roles > ロールService アカウント User を選択します。

Zilliz Cloud のサービスアカウントの権限借用

クロスアカウントサービスアカウントに、Zilliz Cloud コンソールで提供された Zilliz Cloud のサービスアカウントを権限借用させます。

Zilliz Cloud が提供するサービスアカウントを権限借用する手順は以下の通りです:

1

Zilliz Cloud コンソールで、Zilliz Cloud が提供するサービスアカウントをコピーします。

2

GCP コンソールに移動し、IAMと管理 を検索してクリックします。

3

左側のナビゲーションペインから Service アカウントs を選択します。

4

クロスアカウントサービスアカウントをフィルタリングし、その名前をクリックして詳細を表示します。

5

アクセス権を持つプリンシパル タブに切り替えて Grant access をクリックします。

6

Add principals > 新しいプリンシパル に Zilliz Cloud コンソールからコピーしたサービスアカウントを貼り付けます。

7

Assign roles > ロールService アカウント Token Creator を選択します。

8

Save をクリックします。