Google Distributed Cloud(GDC)エアギャップ アプライアンスの Vertex AI では、トークンを使用してリクエストを認証することで、プログラムで API にアクセスできます。認証トークンは、ユーザー アカウントまたはサービス アカウントを使用して取得できます。
次のいずれかのオプションを選択して、認証トークンを取得します。
ユーザー アカウント
ユーザー権限を持つ認証トークンを取得する手順は次のとおりです。
使用する API のエンドポイントをメモします。
IAM 権限を準備するに記載されている対応するロールをユーザー アカウントに付与して、使用する Vertex AI サービスへのアクセス権を取得します。
API を操作する必要があるユーザー アカウントで GDC エアギャップ アプライアンスにログインします。
gdcloud auth login認証トークンを取得します。
gdcloud auth print-identity-token --audiences=https://ENDPOINTENDPOINTは、組織で使用するサービス エンドポイントに置き換えます。詳細については、サービス ステータスとエンドポイントを表示するをご覧ください。認証トークンの用途によっては、次のように、オーディエンス パスのサービス エンドポイントの後にポートを含める必要があります。
- リクエストにクライアント ライブラリを使用する場合は、オーディエンス パスのサービス エンドポイントの後にポート
:443を含める必要があります。したがって、コマンドの--audiencesパスはhttps://ENDPOINT:443にする必要があります。 - リクエストに gRPC、
curl、またはプログラムによる REST 呼び出しを使用する場合は、ポートを含めないでください。したがって、コマンドの--audiencesパスはhttps://ENDPOINTにする必要があります。
- リクエストにクライアント ライブラリを使用する場合は、オーディエンス パスのサービス エンドポイントの後にポート
出力に認証トークンが表示されます。次の例のように、作成したコマンドライン リクエストのヘッダーにトークンを追加します。
-H "Authorization: Bearer TOKEN"
TOKEN は、出力に表示される認証トークンの値に置き換えます。
サービス アカウント
サービス アカウントで認証トークンを取得する手順は次のとおりです。
使用する API のエンドポイントをメモします。
Vertex AI サービスへのアクセスに使用するサービス アカウントを設定します。
サービス アカウントに、IAM 権限を準備するに記載されている対応するロールを付与して、使用するサービスにアクセスできるようにします。
google-authクライアント ライブラリをインストールします。pip install google-authPython スクリプトに次のコードを追加します。
import os import google.auth from google.auth.transport import requests import requests as reqs os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "PATH_TO_SERVICE_KEY" os.environ["GRPC_DEFAULT_SSL_ROOTS_FILE_PATH"] = "CERT_NAME" # If you use a client library for your request, # you must include port :443 after the service endpoint # in the audience path. audience = "https://ENDPOINT" creds, project_id = google.auth.default() print(project_id) creds = creds.with_gdch_audience(audience) def test_get_token(): sesh = reqs.Session() req = requests.Request(session=sesh) creds.refresh(req) print(creds.token) if __name__=="__main__": test_get_token()次のように置き換えます。
PATH_TO_SERVICE_KEY: サービス アカウントの鍵ペアを含む JSON ファイルへのパス。CERT_NAME: 認証局(CA)証明書ファイルの名前(org-1-trust-bundle-ca.certなど)。この値は、開発環境でのみ必要です。それ以外の場合は省略します。ENDPOINT: 組織で使用するサービス エンドポイント。詳細については、サービス ステータスとエンドポイントを表示するをご覧ください。認証トークンの用途によっては、次のように、オーディエンス パスのサービス エンドポイントの後にポートを含める必要があります。- リクエストにクライアント ライブラリを使用する場合は、オーディエンス パスのサービス エンドポイントの後にポート
:443を含める必要があります。したがって、スクリプトのaudienceパスは"https://ENDPOINT:443"にする必要があります。 - リクエストに gRPC、
curl、またはプログラムによる REST 呼び出しを使用する場合は、ポートを含めないでください。したがって、スクリプトのaudienceパスは"https://ENDPOINT"にする必要があります。
- リクエストにクライアント ライブラリを使用する場合は、オーディエンス パスのサービス エンドポイントの後にポート
Python スクリプトを保存します。
Python スクリプトを実行してトークンを取得します。
python SCRIPT_NAMESCRIPT_NAMEは、Python スクリプトに付けた名前(token.pyなど)に置き換えます。
出力に認証トークンが表示されます。次の例のように、作成したコマンドライン リクエストのヘッダーにトークンを追加します。
-H "Authorization: Bearer TOKEN"
TOKEN は、出力に表示される認証トークンの値に置き換えます。