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

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

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

📘Notes

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

手順

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

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

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

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

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

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

1

GCP コンソールで、IAM と管理 を見つけてクリックします。

2

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

3

ロールの作成をクリックします。

4

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

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

5

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

6

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

  • compute.instanceGroupManagers.get

  • compute.instanceGroupManagers.update

7

作成をクリックします。

IAM カスタムロールの作成

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

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

1

GCP コンソールで、IAM と管理 を見つけてクリックします。

2

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

3

ロールの作成をクリックします。

4

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

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

5

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

6

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

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

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

7

作成をクリックします。

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

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

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

1

GCP コンソールで、IAM と管理 を見つけてクリックします。

2

左側のナビゲーションペインでサービスアカウントを選択します。

3

サービスアカウントの作成をクリックします。

4

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

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

5

作成して続行をクリックします。

6

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

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

ロール

タイプ

条件

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

カスタム

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 カスタムロール

カスタム

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

Kubernetes Engine Admin

GCP 管理

N/A

Storage Object Viewer

GCP 管理

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

保存をクリックします。

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

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

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

1

GCP コンソールで、サービスアカウント を見つけてクリックします。

2

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

説明

PROJECT_NUMBER-compute@developer.gserviceaccount.com

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

📘Notes

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

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

3

アクセス権を持つプリンシパルタブに切り替え、アクセス権の付与をクリックします。

4

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

5

ロールの割り当て > ロールサービスアカウントユーザーを選択します。

Zilliz Cloud のサービスアカウントのなりすまし

クロスアカウントサービスアカウントに、Zilliz Cloud コンソールで提供される Zilliz Cloud のサービスアカウントになりすます権限を付与します。

Zilliz Cloud が提供するサービスアカウントになりすます手順は以下の通りです。

1

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

2

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

3

左側のナビゲーションペインでサービスアカウントを選択します。

4

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

5

アクセス権を持つプリンシパルタブに切り替え、アクセス権の付与をクリックします。

6

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

7

ロールの割り当て > ロールサービスアカウントトークン作成者を選択します。

8

保存をクリックします。