クロスアカウントサービスアカウントの作成
このページでは、Zilliz Cloud のプロジェクトデータプレーンをブートストラップするためのクロスアカウントサービスアカウントの作成と設定方法について説明します。このサービスアカウントは、Zilliz Cloud がお客様に代わって VPC リソースを管理するために必要な権限を付与します。
Zilliz BYOC は現在一般提供されています。アクセスおよび実装の詳細については、Zilliz Cloud 営業までお問い合わせください。
手順
GCP ダッシュボードを使用して EKS ロールを作成できます。または、Zilliz Cloud が提供する Terraform スクリプトを使用して、GCP 上の Zilliz Cloud プロジェクトのインフラストラクチャをブートストラップすることもできます。詳細については、Terraform Provider を参照してください。
ステップ 1: カスタムロールの作成
クロスアカウントサービスアカウントを作成する前に、サービスアカウントに割り当てる必要があるいくつかのカスタムロールを作成する必要があります。
インスタンスグループマネージャーカスタムロールの作成
インスタンスグループマネージャーカスタムロールを作成し、上記で作成したサービスアカウントにカスタムロールを割り当てます。これにより、サービスアカウントは GKE ノードを管理するために必要な最小限の権限を持つことになります。
インスタンスグループマネージャーカスタムロールを作成する手順は以下の通りです:
GCP コンソールで IAMと管理 を検索してクリックします。
左側のナビゲーションペインから ロールs を選択します。
Create role をクリックします。
作成するカスタムロールのタイトルと説明を設定します。
このデモでは、Zilliz Cloud Custom ロール for GKE Management を使用できます。
ロールの起動段階 を アルファ から 一般 Availability に変更します。
Add permissions をクリックします。このステップで追加する権限は以下の通りです:
-
compute.instanceGroupManagers.get
-
compute.instanceGroupManagers.update
Create をクリックします。
IAM カスタムロールの作成
IAM カスタムロールを作成し、上記で作成したサービスアカウントにカスタムロールを割り当てます。これにより、サービスアカウントは IAM ポリシーを管理するために必要な最小限の権限を持つことになります。
カスタムロールを作成する手順は以下の通りです:
GCP コンソールで IAMと管理 を検索してクリックします。
左側のナビゲーションペインから ロールs を選択します。
Create role をクリックします。
作成するカスタムロールのタイトルと説明を設定します。
このデモでは、IAM カスタムロール を使用できます。
ロールの起動段階 を アルファ から 一般 Availability に変更します。
Add permissions をクリックします。このステップで追加する権限は以下の通りです:
-
iam.serviceアカウントs.getIamPolicy
-
iam.serviceアカウントs.setIamPolicy
Create をクリックします。
ステップ 2: サービスアカウントの作成
このステップでは、Zilliz Cloud がお客様に代わって VPC リソースを管理するためのサービスアカウントを作成し、サービスアカウントのメールアドレスを Zilliz Cloud コンソールに貼り付けます。
サービスアカウントを作成する手順は以下の通りです:
GCP コンソールで IAMと管理 を検索してクリックします。
左側のナビゲーションペインから Service アカウントs を選択します。
Create service account をクリックします。
作成するサービスアカウントの適切な名前を設定します。
このデモでは、your-org-cross-account-sa に設定できます。サービスアカウント ID はサービスアカウント名の先頭 18 文字です。手動で適切な値に設定することもできます。
Create and continue をクリックします。
Permissions セクションで、前のステップで作成したカスタムロールといくつかの GCP 管理ロールをサービスアカウントに追加します。
以下の表は、サービスアカウントに割り当てるロールを一覧表示しています。
ロール | Type | Condition |
|---|---|---|
Custom |
| |
Custom |
| |
Kubernetes Engine Admin | GCP-managed | N/A |
Storage Object Viewer | GCP-managed |
|
上記の式にある 3 つのプレースホルダーを実際の値に置き換える必要があります:
PROJECT_ID
これは GCP プロジェクト ID です。
REGION
これは BYOC プロジェクトのクラウドリージョンです。
CLUSTER_NAME
これは Zilliz Cloud がお客様に代わって作成する GKE クラスターの名前です。
Google Cloud はクラスター名の前に gke- プレフィックスを追加することに注意してください。したがって、条件には gke- プレフィックスを保持し、CLUSTER_NAME のみを実際の名前に置き換えてください。
YOUR_BUCKET_NAME
これは前のステップで作成したバケットの名前です。
Save をクリックします。
他のサービスアカウントへのアクセス権の付与
前のステップで作成したクロスアカウントサービスアカウントに、いくつかの他のサービスアカウントへのアクセス権を付与します。
以下の手順に従って、クロスアカウントサービスアカウントにこれらのサービスアカウントへのアクセス権を付与します。
GCP コンソールで Service アカウント を検索してクリックします。
リストから以下のサービスアカウントを検索してクリックします。
Description | |
|---|---|
このサービスアカウントは、Compute Engine API を有効にしたときに自動的に作成されます。 |
GCP プロジェクトにはプロジェクト ID とプロジェクト番号があります:プロジェクト ID は GCP コンソールでプロジェクトを作成するときに入力した文字列であり、プロジェクト番号は GCP がプロジェクトの作成時に割り当てる文字列です。
PROJECT_NUMBER を独自の GCP プロジェクト番号に置き換える必要があります。
アクセス権を持つプリンシパル タブに切り替えて Grant access をクリックします。
Add principals > 新しいプリンシパル に前のステップで作成したクロスアカウントサービスアカウントを入力します。
Assign roles > ロール で Service アカウント User を選択します。
Zilliz Cloud のサービスアカウントの権限借用
クロスアカウントサービスアカウントに、Zilliz Cloud コンソールで提供された Zilliz Cloud のサービスアカウントを権限借用させます。
Zilliz Cloud が提供するサービスアカウントを権限借用する手順は以下の通りです: