Vertex AI 用にプロジェクトを設定する

Google Distributed Cloud(GDC)エアギャップで Vertex AI サービスを実行するには、専用のプロジェクトを準備し、開発環境を構成します。gdcloud CLI とサービス アカウントを設定して、機械学習をエアギャップのあるアプリケーションとワークフローに統合できるようにします。

このドキュメントは、AI 機能を使用してエアギャップ アプリケーションとワークフローを最適化するアプリケーション オペレーター グループのアプリケーション デベロッパーを対象としています。詳細については、GDC エアギャップ ドキュメントの対象読者をご覧ください。

管理者にプロジェクトの設定を依頼する

プロジェクトを設定するタスクのほとんどには、プラットフォーム管理者アクセス権が必要です。管理者は、プロジェクトを識別するために、わかりやすいプロジェクト名とプロジェクト ID を決める必要があります。組織に属している場合や、複数のプロジェクトを作成する予定がある場合は、Distributed Cloud で認識される命名規則とエンティティを検討してください。詳細については、リソース階層をご覧ください。

必要な権限がない場合は、管理者にプロジェクトの設定を依頼してください。

このドキュメントの手順に沿ってプロジェクトを設定します。

始める前に

プロジェクトを作成してサービス アカウントを構成するために必要な権限を取得するには、IAM 組織管理者または IAM プロジェクト管理者に、プロジェクトの名前空間で次のロールを付与するよう依頼してください。

  • プロジェクトを作成するには、プロジェクト作成者(project-creator)ロールを取得します。
  • サービス アカウントを作成するには、IAM プロジェクト管理者(project-iam-admin)ロールを取得します。

これらのロールについては、IAM 権限を準備するをご覧ください。サブジェクトに権限を付与する方法については、アクセス権の付与と取り消しをご覧ください。

次に、Vertex AI サービスをグループ化するプロジェクトを作成します。Distributed Cloud プロジェクトで課金が有効になっていることを確認します。

gdcloud CLI をインストールする

Distributed Cloud サービスを有効にして、ツールとコンポーネントにアクセスするには、gdcloud CLI をインストールします。

gdcloud CLI をインストールする手順は次のとおりです。

  1. gdcloud CLI をダウンロードします。
  2. gdcloud CLI を初期化します。

    gdcloud init
    

    詳細については、gdcloud CLI をインストールするをご覧ください。

  3. gdcloud CLI を使用して認証します。

    gdcloud auth login
    

    構成済みの ID プロバイダで認証し、ユーザー ID と Kubernetes クラスタの kubeconfig ファイルを取得する方法については、gdcloud CLI 認証をご覧ください。

サービス アカウントを設定する

サービス ID とも呼ばれるサービス アカウントは、Vertex AI サービスの管理において重要な役割を果たします。これは、ワークロードが Vertex AI サービスと AI モデルにアクセスし、承認された API 呼び出しをプログラムで行うために使用するアカウントです。たとえば、サービス アカウントは、Vertex AI Workbench ノートブックを管理して、Speech-to-Text API を使用して音声ファイルを文字変換できます。ユーザー アカウントと同様に、サービス アカウントには権限とロールを付与して、安全で制御された環境を提供できますが、人間のユーザーのようにログインすることはできません。

Vertex AI サービスのサービス アカウントを設定するには、サービス アカウントの名前、プロジェクト ID、鍵ペアの JSON ファイルの名前を指定します。

サービス アカウントを作成し、ロール バインディングを割り当て、鍵ペアを作成して追加する方法については、サービス アカウントを管理するをご覧ください。

gdcloud CLI を使用してサービス アカウントを設定する手順は次のとおりです。

  1. サービス アカウントの作成:

    gdcloud iam service-accounts create SERVICE_ACCOUNT --project=PROJECT_ID
    

    次のように置き換えます。

    • SERVICE_ACCOUNT: サービス アカウントの名前。 名前はプロジェクトの名前空間内で一意である必要があります。
    • PROJECT_ID: サービス アカウントを作成するプロジェクトのプロジェクト ID。gdcloud init がすでに設定されている場合は、--project フラグを省略できます。
  2. アプリケーションのデフォルト認証情報の JSON ファイルと、公開鍵と秘密鍵のペアを作成します。

    gdcloud iam service-accounts keys create APPLICATION_DEFAULT_CREDENTIALS_FILENAME \
        --project=PROJECT_ID \
        --iam-account=SERVICE_ACCOUNT \
        --ca-cert-path=CA_CERTIFICATE_PATH
    

    次のように置き換えます。

    • APPLICATION_DEFAULT_CREDENTIALS_FILENAME: JSON ファイルの名前(my-service-key.json など)。
    • PROJECT_ID: 鍵を作成するプロジェクト。
    • SERVICE_ACCOUNT: 鍵を追加するサービス アカウントの名前。
    • CA_CERTIFICATE_PATH: 認証エンドポイントを検証する認証局(CA)証明書のパスを指定するオプションのフラグ。このパスを指定しない場合、システム CA 証明書が使用されます。CA はシステム CA 証明書にインストールする必要があります。

    Distributed Cloud は、秘密鍵が署名する JSON ウェブトークン(JWT)の検証に使用するサービス アカウント キーに公開鍵を追加します。秘密鍵は、アプリケーションのデフォルト認証情報の JSON ファイルに書き込まれます。

  3. ロール バインディングを割り当てて、サービス アカウントにプロジェクト リソースへのアクセス権を付与します。ロールの名前は、サービス アカウントを使用する Vertex AI サービスによって異なります。

    gdcloud iam service-accounts add-iam-policy-binding \
        --project=PROJECT_ID \
        --iam-account=SERVICE_ACCOUNT \
        --role=ROLE
    

    次のように置き換えます。

    • PROJECT_ID: ロール バインディングを作成するプロジェクト。
    • SERVICE_ACCOUNT: 使用するサービス アカウントの名前。
    • ROLE: サービス アカウントに割り当てる事前定義ロール。ロールは Role/name の形式で指定します。ここで、Role は Kubernetes のタイプ(Role や ProjectRole など)で、name は事前定義ロールの Kubernetes リソース名です。たとえば、Vertex AI の事前トレーニング済み API の一部を使用するためにサービス アカウントに割り当てることができるロールは次のとおりです。

      • AI OCR デベロッパー(ai-ocr-developer)ロールを割り当てるには、ロールを Role/ai-ocr-developer に設定します。
      • AI Speech デベロッパー(ai-speech-developer)ロールを割り当てるには、ロールを Role/ai-speech-developer に設定します。
      • AI Translation デベロッパー(ai-translation-developer)ロールを割り当てるには、ロールを Role/ai-translation-developer に設定します。