驗證 API 要求

在 Google Distributed Cloud (GDC) 實體隔離設備上,Vertex AI 可讓您使用權杖驗證要求,以程式輔助方式存取 API。您可以使用使用者帳戶或服務帳戶取得驗證權杖。

選擇下列其中一種方式取得驗證權杖:

使用者帳戶

請按照下列步驟,取得具備使用者授權的驗證權杖:

  1. 記下要使用的 API 端點。

  2. 如要存取想使用的 Vertex AI 服務,請授予使用者帳戶「準備 IAM 權限」中列出的相應角色。

  3. 使用與 API 互動所需的使用者帳戶,登入 GDC 實體隔離方案設備:

    gdcloud auth login
    
  4. 取得驗證權杖:

    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 替換為輸出內容顯示的驗證權杖值。

服務帳戶

請按照下列步驟,使用服務帳戶取得驗證權杖:

  1. 記下要使用的 API 端點。

  2. 設定服務帳戶,用於存取 Vertex AI 服務。

  3. 將「準備 IAM 權限」中列出的對應角色授予服務帳戶,讓服務帳戶能存取您要使用的服務。

  4. 取得服務帳戶的服務金鑰組。

  5. 安裝 google-auth 用戶端程式庫:

    pip install google-auth
    
  6. 將下列程式碼新增至 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"。
  7. 儲存 Python 指令碼。

  8. 執行 Python 指令碼來擷取權杖:

    python SCRIPT_NAME
    

    將 SCRIPT_NAME 替換為您為 Python 指令碼指定的名稱,例如 token.py。

輸出內容會顯示驗證權杖。將權杖新增至指令列要求的標頭,如下例所示:

-H "Authorization: Bearer TOKEN"

將 TOKEN 替換為輸出內容顯示的驗證權杖值。