在 Google Distributed Cloud (GDC) 實體隔離設備上,Vertex AI 可讓您使用權杖驗證要求,以程式輔助方式存取 API。您可以使用使用者帳戶或服務帳戶取得驗證權杖。
選擇下列其中一種方式取得驗證權杖:
使用者帳戶
請按照下列步驟,取得具備使用者授權的驗證權杖:
記下要使用的 API 端點。
如要存取想使用的 Vertex AI 服務,請授予使用者帳戶「準備 IAM 權限」中列出的相應角色。
使用與 API 互動所需的使用者帳戶,登入 GDC 實體隔離方案設備:
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 端點。
設定服務帳戶,用於存取 Vertex AI 服務。
將「準備 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 替換為輸出內容顯示的驗證權杖值。