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 をインストールする手順は次のとおりです。
- gdcloud CLI をダウンロードします。
gdcloud CLI を初期化します。
gdcloud init詳細については、gdcloud CLI をインストールするをご覧ください。
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 を使用してサービス アカウントを設定する手順は次のとおりです。
サービス アカウントの作成:
gdcloud iam service-accounts create SERVICE_ACCOUNT --project=PROJECT_ID次のように置き換えます。
SERVICE_ACCOUNT: サービス アカウントの名前。 名前はプロジェクトの名前空間内で一意である必要があります。PROJECT_ID: サービス アカウントを作成するプロジェクトのプロジェクト ID。gdcloud initがすでに設定されている場合は、--projectフラグを省略できます。
アプリケーションのデフォルト認証情報の 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 ファイルに書き込まれます。
ロール バインディングを割り当てて、サービス アカウントにプロジェクト リソースへのアクセス権を付与します。ロールの名前は、サービス アカウントを使用する 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に設定します。
- AI OCR デベロッパー(