Gemini Enterprise Agent Platform Pipelines 用に Google Cloud プロジェクトを構成する

Agent Platform Pipelines を使用して ML パイプラインをオーケストレートする前に、 Google Cloud プロジェクトを設定する必要があります。一部のリソース(Vertex ML Metadata で使用されるメタデータ ストアなど)は、パイプラインの初回実行時にGoogle Cloud プロジェクトに作成されます。

次の手順で、Agent Platform Pipelines 用のプロジェクトを構成します。

  1. Google Cloud プロジェクトを作成して、Agent Platform Pipelines で使用できるように構成します

  2. サービス アカウントを指定しない場合、Agent Platform Pipelines は Compute Engine のデフォルトのサービス アカウントを使用してパイプラインを実行します。Compute Engine のデフォルトのサービス アカウントの詳細については、Compute Engine のデフォルトのサービス アカウントの使用をご覧ください。

    パイプラインを実行するサービス アカウントを作成し、パイプラインの実行に必要な Google Cloud リソースに対するきめ細かい権限をアカウントに付与することをおすすめします。

  3. Agent Platform Pipelines は Cloud Storage を使用して、パイプライン実行のアーティファクトを保存します。Cloud Storage バケットを作成し、このバケットへのアクセス権をサービス アカウントに付与します

  4. Agent Platform Pipelines は、Vertex ML メタデータを使用して、パイプライン実行によって作成されたメタデータを保存します。パイプラインを初めて実行するときに、プロジェクトのメタデータ ストアが存在しない場合、Gemini Enterprise Agent Platform はプロジェクトのメタデータ ストアを作成します。

    顧客管理の暗号鍵(CMEK)でデータを暗号化する場合は、パイプラインを実行する前に CMEK 鍵を使用してメタデータ ストアを手動で作成できます。プロジェクトに既存のデフォルト メタデータ ストアが存在しない場合は、Gemini Enterprise Agent Platform はパイプラインの初回実行時に使用された CMEK 鍵を使用してプロジェクトのメタデータ ストアを作成します。メタデータ ストアが作成されると、パイプラインの実行で使用される CMEK 鍵とは異なる CMEK 鍵が使用されます。

Google Cloud プロジェクトを設定する

次の手順で Google Cloud プロジェクトを作成し、Agent Platform Pipelines で使用するように構成します。

  1. Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Gemini Enterprise Agent Platform, Compute Engine, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Google Cloud CLI をインストールします。

  6. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  7. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  8. gcloud CLI を初期化した後に更新して、必要なコンポーネントをインストールします。

    gcloud components update
    gcloud components install beta
  9. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  10. Verify that billing is enabled for your Google Cloud project.

  11. Enable the Gemini Enterprise Agent Platform, Compute Engine, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  12. Google Cloud CLI をインストールします。

  13. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  14. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  15. gcloud CLI を初期化した後に更新して、必要なコンポーネントをインストールします。

    gcloud components update
    gcloud components install beta

きめ細かい権限を持つサービス アカウントを構成する

パイプラインを実行するときに、サービス アカウントを指定できます。パイプライン実行は、このサービス アカウントの権限で機能します。

サービス アカウントを指定しないと、パイプライン実行で Compute Engine のデフォルトのサービス アカウントが使用されます。Compute Engine のデフォルトのサービス アカウントの詳細については、Compute Engine のデフォルトのサービス アカウントの使用をご覧ください。

  • 以下の手順でサービス アカウントを作成して、 Google Cloud リソースに対するきめ細かい権限を付与します。

    1. 次のコマンドを実行して、サービス アカウントを作成します。

      gcloud iam service-accounts create SERVICE_ACCOUNT_ID \
          --description="DESCRIPTION" \
          --display-name="DISPLAY_NAME" \
          --project=PROJECT_ID
      

      次の値を置き換えます。

      • SERVICE_ACCOUNT_ID: サービス アカウントの ID。
      • DESCRIPTION: (省略可)サービス アカウントの説明。
      • DISPLAY_NAME: このサービス アカウントの表示名。
      • PROJECT_ID: サービス アカウントを作成するプロジェクト。

      詳しくは、サービス アカウントの作成をご覧ください。

    2. サービス アカウントに Gemini Enterprise Agent Platform へのアクセス権を付与します。アクセス権の変更が反映されるまでに時間がかかることがあります。詳細については、アクセス権の変更の伝播をご覧ください。

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/aiplatform.user"
      

      次の値を置き換えます。

      • PROJECT_ID: サービス アカウントが作成されたプロジェクト。
      • SERVICE_ACCOUNT_ID: サービス アカウントの ID。
    3. Artifact Registry を使用して、コンテナ イメージと Kubeflow Pipelines テンプレートをホストできます。

      Artifact Registry の詳細については、Artifact Registry のドキュメントをご覧ください。

    4. パイプラインで使用する任意の Google Cloud リソースへのアクセス権をサービス アカウントに付与します。

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com" \
          --role="ROLE_NAME"
      

      次の値を置き換えます。

      • PROJECT_ID: サービス アカウントが作成されたプロジェクト。
      • SERVICE_ACCOUNT_ID: サービス アカウントの ID。
      • ROLE_NAME: このサービス アカウントに付与する Identity and Access Management のロール。
    5. このサービス アカウントを使用して Agent Platform Pipelines でパイプラインを実行するには、次のコマンドを実行して、サービス アカウントの roles/iam.serviceAccountUser ロールをユーザー アカウントに付与します。

      gcloud iam service-accounts add-iam-policy-binding \
          SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \
          --member="user:USER_EMAIL" \
          --role="roles/iam.serviceAccountUser"
      

      次の値を置き換えます。

      • SERVICE_ACCOUNT_ID: サービス アカウントの ID。
      • PROJECT_ID: サービス アカウントが作成されたプロジェクト。
      • USER_EMAIL: このサービス アカウントとしてパイプラインを実行するユーザーのメールアドレス。
  • Compute Engine のデフォルトのサービス アカウントを使用してパイプラインを実行する場合は、Compute Engine API を有効にして、デフォルトのサービス アカウントに Gemini Enterprise Agent Platform へのアクセス権を付与します。アクセス権の変更が反映されるまでに時間がかかることがあります。詳細については、アクセス権の変更の伝播をご覧ください。

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
        --role="roles/aiplatform.user"
    

    次の値を置き換えます。

    • PROJECT_ID: デフォルトのサービス アカウントが作成されたプロジェクト。
    • PROJECT_NUMBER: デフォルトのサービス アカウントが作成されたプロジェクト番号。

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。

    API の有効化

パイプライン アーティファクト用の Cloud Storage バケットを構成する

Agent Platform Pipelines は、Cloud Storage を使用してパイプライン実行のアーティファクトを保存します。次の手順で Cloud Storage バケットを作成し、そのバケット内のオブジェクトに対する読み取り / 書き込みアクセス権をサービス アカウント(または Compute Engine のデフォルトのサービス アカウント)に付与します。

  1. 次のコマンドを実行して、パイプラインを実行するリージョンに Cloud Storage バケットを作成します。

    gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION --project=PROJECT_ID
    

    次の値を置き換えます。

    • PROJECT_ID: バケットが関連付けられているプロジェクトを指定します。
    • BUCKET_LOCATION: バケットのロケーションを指定します(例: US-CENTRAL1)。
    • BUCKET_NAME: バケットに付ける名前。命名の要件に従う必要があります。例: my-bucket

    詳しくは、Cloud Storage バケットの作成をご覧ください。

  2. 前の手順で作成したバケット内のパイプライン アーティファクトに対する読み取り / 書き込み権限をサービス アカウントに付与するには、次のコマンドを実行します。

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
    --member=serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \
    --role=roles/storage.objectUser
    

    次の値を置き換えます。

    • SERVICE_ACCOUNT_ID: サービス アカウントの ID。
    • PROJECT_ID: サービス アカウントが作成されたプロジェクト。
    • BUCKET_NAME: サービス アカウントにアクセス権を付与するバケットの名前。

    Compute Engine のデフォルトのサービス アカウントを使用してパイプラインを実行する場合は、gcloud iam service-accounts list コマンドを実行して、アカウントのプロジェクト番号を確認します。

    gcloud iam service-accounts list
    

    Compute Engine のデフォルトのサービス アカウントの名前は PROJECT_NUMBER-compute@developer.gserviceaccount.com です。

    次のコマンドを実行して、前の手順で作成したバケット内のパイプライン アーティファクトに対する読み取り / 書き込み権限を Compute Engine のデフォルト サービス アカウントに付与します。

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
    --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
    --role=roles/storage.objectUser
    

    次の値を置き換えます。

    • PROJECT_NUMBER: Compute Engine のデフォルトのサービス アカウントのプロジェクト番号。
    • BUCKET_NAME: サービス アカウントにアクセス権を付与するバケットの名前。

    詳しくは、Cloud Storage バケットへのアクセスの制御をご覧ください。

CMEK を使用するメタデータ ストアの作成(省略可)

次の手順で CMEK を作成し、この CMEK を使用する Vertex ML Metadata メタデータ ストアを設定します。

  1. Cloud Key Management Service を使用して顧客管理の暗号鍵を構成します。

  2. 次の REST 呼び出しを行うと、CMEK を使用してプロジェクトのデフォルトのメタデータ ストアを作成できます。

    リクエストのデータを使用する前に、次のように置き換えます。

    • LOCATION_ID: 使用するリージョン。
    • PROJECT_ID: [プロジェクト ID](/resource-manager/docs/creating-managing-projects#identifiers)。.
    • KEY_RING: 暗号鍵が存在する Cloud Key Management Service のキーリングの名前。
    • KEY_NAME: このメタデータ ストアに使用する暗号鍵の名前。

    HTTP メソッドと URL:

    POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores?metadata_store_id=default

    リクエストの本文(JSON):

    {
      "encryption_spec": {
        "kms_key_name": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME"
      },
    }
    

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATIONS_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateMetadataStoreOperationMetadata",
        "genericMetadata": {
          "createTime": "2021-05-18T18:47:14.494997Z",
          "updateTime": "2021-05-18T18:47:14.494997Z"
        }
      }
    }