在工作站中驗證並設定 API 存取權

本文說明如何在工作站中驗證及設定 API 存取權,包括如何使用 Workstations UI 登入,以驗證 gcloud CLI,並將憑證提供給應用程式預設憑證 (ADC)。

使用 Google Cloud CLI 以使用者身分驗證

啟動 Cloud Workstations 後,您可以使用使用者帳戶,透過 gcloud CLI 存取 Google Cloud 服務和 API。

如要驗證 gcloud CLI 並將使用者憑證提供給應用程式預設憑證 (ADC),請選擇下列其中一個選項:

使用者透過 Workstations UI 登入

透過 Google Cloud 控制台登入後,系統會自動驗證gcloud CLI,並將您的使用者憑證提供給工作站環境中的應用程式預設憑證 (ADC)。

在工作站資源上啟用 UI 登入功能

如要使用這項功能,請確認工作站設定和叢集都已設為支援 UI 登入:

  1. 在 Google Cloud 控制台中,前往工作站設定的「Environment settings」(環境設定) 區段。在「驗證」下方,勾選「啟用推送憑證」核取方塊 (或在 API 中設定 enable_pushing_credentials: true)。
  2. 使用 gcloud CLI,將叢集的控制台基準網址設為 Google Cloud 控制台端點 (例如 https://console.cloud.google.com/):
    gcloud beta workstations clusters update CLUSTER_NAME \
        --region=REGION \
        --console-base-url="https://console.cloud.google.com/"

從工作站登入

如要登入並驗證工作站,請按照下列步驟操作:

  1. 在 Code OSS for Cloud Workstations 編輯器中,按一下「Sign in to your Workstation」。 Google Cloud 控制台登入視窗隨即開啟。
  2. 在 Google Cloud 控制台中,確認工作站詳細資料 (例如工作站 ID) 和帳戶詳細資料,然後按一下「Continue」(繼續)。
  3. 按一下「確認」即可完成登入。
  4. 看到確認訊息後,請關閉瀏覽器視窗,然後返回編輯器。 現在,您可以在工作站環境中,將憑證用於 gcloud CLI 和應用程式預設憑證 (ADC)。

登入工作階段會在 1 小時後過期。 工作階段即將到期時,Code OSS for Cloud Workstations 編輯器中的登入按鈕會顯示「EMAIL (Google) - Expiring soon」(EMAIL (Google) - 即將到期) (其中 EMAIL 是您的電子郵件地址),或「Workstation sign in expiring soon」(工作站登入即將到期)。如要重新整理憑證,請按一下按鈕,然後按照 Google Cloud 控制台中的提示操作。

使用 gcloud CLI 登入

如果設定或叢集未啟用 UI 登入功能,您可以在工作站內,透過終端機使用 gcloud CLI 手動登入:

  1. 在工作站中開啟終端機。開啟終端機視窗的方式取決於您使用的 IDE。舉例來說,如果您使用的是 Cloud Workstations 基本編輯器,請依序選取「Terminal」>「New Terminal」,或按下 Control+Shift+` 鍵,開啟終端機。
  2. 使用下列指令進行驗證:
    gcloud auth login --no-launch-browser
  3. 按照指令提供的操作說明,向 Google Cloud進行驗證。
  4. 使用下列指令指定 Google Cloud 專案 ID:
    gcloud config set project PROJECT_ID
  5. 啟用應用程式預設憑證,以便呼叫 Google Cloud 服務。
    gcloud auth application-default login
  6. gcloud CLI 憑證現已儲存,日後在工作站工作階段中可供使用。

向工作站發出 HTTP 要求

如要向工作站發出 HTTP 要求,您必須具備帳戶的存取權杖,且該帳戶在該工作站上具有 Cloud Workstations 使用者角色:

  1. 使用 generateAccessToken API 方法產生存取權杖。
  2. 新增名為 Authorization 的 HTTP 標頭,並將值設為 Bearer $TOKEN。

在瀏覽器中連線至工作站

在瀏覽器中開啟工作站網址,系統會自動重新導向至工作站伺服器進行驗證,並擷取由 generateAccessToken API 方法產生的存取權杖。系統會重新導向回工作站,並設定目前工作站工作階段有效的驗證 Cookie。

如要略過這項重新導向,請使用 _workstationAccessToken 網址參數:

  1. 使用 generateAccessToken API 方法產生存取權杖。
  2. 在瀏覽器中開啟工作站網址,並附加下列格式的網址參數:_workstationAccessToken=TOKEN。

這會在瀏覽器中設定驗證 Cookie,允許存取目前的工作站工作階段。如果網路政策封鎖了工作站伺服器的存取權,或使用 iframe 在其他網站顯示工作站,略過重新導向可能會有幫助。

模擬服務帳戶

如果貴組織的安全政策禁止使用者帳戶具備必要權限,您也可以模擬服務帳戶。如要模擬工作站設定中指定的服務帳戶,您可以指定服務帳戶範圍欄位。

        gcloud workstations configs create CONFIG \
            --cluster=CLUSTER \
            --region=REGION \
            --project=PROJECT \
            --service-account=SERVICE_ACCOUNT \
            --service-account-scopes=https://www.googleapis.com/auth/cloud-platform
      
如果指定,這項設定下的工作站使用者必須具備服務帳戶的 iam.serviceAccounts.actAs 權限。如要進一步瞭解如何指定服務帳戶的範圍,請參閱「存取權範圍」。

後續步驟