メインコンテンツまでスキップ
バージョン: 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 プロバイダー を参照してください。

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

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

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

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

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

  1. GCP コンソールで、IAM & Admin を検索してクリックします。

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

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

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

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

  5. ロール起動ステージAlpha から 一般提供 に変更します。

  6. 権限を追加 をクリックします。このステップで追加する権限は以下のとおりです:

    • compute.instanceGroupManagers.get

    • compute.instanceGroupManagers.update

  7. 作成 をクリックします。

IAM カスタムロールを作成

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

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

  1. GCP コンソールで、IAM & Admin を検索してクリックします。

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

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

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

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

  5. ロール起動ステージAlpha から 一般提供 に変更します。

  6. 権限を追加 をクリックします。このステップで追加する権限は以下のとおりです:

    • iam.serviceAccounts.getIamPolicy

    • iam.serviceAccounts.setIamPolicy

  7. 作成 をクリックします。

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

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

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

  1. GCP コンソールで、IAM & Admin を検索してクリックします。

  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/modifiedGrantsByRole", []).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 & Admin を検索してクリックします。

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

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

  5. アクセス権のあるプリンシパル タブに切り替え、アクセスを許可 をクリックします。

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

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

  8. 保存 をクリックします。