Google Distributed Cloud (GDC) 實體隔離裝置上的 Vertex AI 提供需要驗證的 API 和服務。驗證是指您使用權杖證明身分,以存取服務的程序。
權杖是數位物件,可驗證呼叫端是否提供正確憑證,以及是否已成功換取權杖。權杖會攜帶要求帳戶的身分資訊,以及獲授權的特定存取權。
本頁說明如何以程式輔助方式向 Vertex AI API 進行驗證。本頁面說明如何取得 API 要求的驗證權杖,具體步驟取決於您是以使用者身分還是透過服務帳戶存取 Vertex AI API。
選擇下列其中一個選項來取得驗證權杖:
使用者帳戶
請按照下列步驟取得具有使用者權限的驗證權杖:
請記下要使用的 API 端點。
授予使用者帳戶「準備 IAM 權限」中列出的相應角色,即可存取要使用的 Vertex AI 服務。
使用必須與 API 互動的使用者帳戶,登入 GDC air-gapped 裝置:
gdcloud auth login
取得驗證權杖:
gdcloud auth print-identity-token --audiences=https://ENDPOINT
將
ENDPOINT
替換為貴機構使用的服務端點。詳情請參閱服務狀態和端點。視驗證權杖的預期用途而定,您可能需要在目標對象路徑中的服務端點後方加入通訊埠,如下所示:
- 如果您使用用戶端程式庫發出要求,則必須在目標對象路徑的服務端點後方加入通訊埠
:443
。因此,指令中的--audiences
路徑必須為https://ENDPOINT:443
。 - 如果您使用 gRPC、
curl
或程式輔助 REST 呼叫提出要求,請勿加入通訊埠。因此,指令中的--audiences
路徑必須為https://ENDPOINT
。
- 如果您使用用戶端程式庫發出要求,則必須在目標對象路徑的服務端點後方加入通訊埠
輸出內容會顯示驗證權杖。將權杖新增至您發出的指令列要求標頭,如下列範例所示:
-H "Authorization: Bearer TOKEN"
將 TOKEN
替換為輸出內容顯示的驗證權杖值。
服務帳戶
如要使用服務帳戶取得驗證權杖,請按照下列步驟操作:
請記下要使用的 API 端點。
授予服務帳戶「準備 IAM 權限」中列出的對應角色,讓服務帳戶取得要使用的服務存取權。
安裝
google-auth
用戶端程式庫:pip install google-auth
在 Python 指令碼中新增下列程式碼:
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_NAME
將
SCRIPT_NAME
替換為您為 Python 指令碼指定的名稱,例如token.py
。
輸出內容會顯示驗證權杖。將權杖新增至您發出的指令列要求標頭,如下列範例所示:
-H "Authorization: Bearer TOKEN"
將 TOKEN
替換為輸出內容顯示的驗證權杖值。