設定開發環境

本文說明如何設定 API Gateway 開發環境。

必要條件

在 API Gateway 中建立 API 前,請確認您已完成下列事項:

  • 建立 Google Cloud 專案,而且具備專案的編輯者擁有者角色。初次部署之後,您可以將更多受限制的服務設定編輯者角色授予使用者、群組或服務帳戶。

  • 按照下方說明準備 Google Cloud CLI

  • 按照下文說明啟用必要的 Google 服務。

  • 請按照下方說明,設定用於建立 API 設定的服務帳戶。

準備 Google Cloud CLI 以進行部署

如要準備部署作業,請按照下列步驟操作:gcloud

  1. 安裝並初始化 gcloud CLI
  2. 更新 gcloud CLI:
    gcloud components update
  3. 確認 gcloud CLI 已獲授權,可存取您的資料和服務:
    gcloud auth login

    系統將開啟新的瀏覽器分頁,並提示您選擇一個帳戶。

  4. 設定預設專案。將 PROJECT_ID 替換為您的 Google Cloud 專案 ID:
    gcloud config set project PROJECT_ID 

啟用必要服務

API Gateway 需要啟用下列 Google 服務:

名稱 標題
apigateway.googleapis.com API Gateway API
servicemanagement.googleapis.com Service Management API
servicecontrol.googleapis.com Service Control API

請使用下列指令啟用這些服務:

gcloud services enable apigateway.googleapis.com
gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com

如要進一步瞭解 gcloud 服務,請參閱 gcloud 服務

設定服務帳戶

部署在閘道上的 API 設定會使用與閘道服務帳戶相關聯的權限執行。

最佳做法是在用於 API Gateway 的專案中建立專屬服務帳戶。接著,只將存取後端服務所需的權限指派給服務帳戶。這樣一來,您就能限制與 API 設定相關聯的權限。

如果是 API 閘道,建立或更新 API 設定或閘道的使用者,必須對服務帳戶物件擁有 iam.serviceAccounts.actAs 權限。「服務帳戶使用者」角色也具有此權限。

使用下列指令,將角色和權限新增至使用者的服務帳戶:

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
  --member user:USER_EMAIL \
  --role roles/iam.serviceAccountUser

其中:

  • SERVICE_ACCOUNT_EMAIL 是服務帳戶的電子郵件地址,格式為 SA_NAME@PROJECT_ID.iam.gserviceaccount.com
  • USER_EMAIL 是使用者的電子郵件地址。

例如:

gcloud iam service-accounts add-iam-policy-binding my-service-account@my-project.iam.gserviceaccount.com \
  --member user:myemail@email.com \
  --role roles/iam.serviceAccountUser

此外,閘道服務帳戶也必須具備存取後端服務所需的權限。例如:

  • 如果是 Cloud Functions 後端,服務帳戶必須獲派「Cloud Functions 叫用者」角色。
  • 如果是 Cloud Run 後端,服務帳戶必須獲派「Cloud Run 叫用者」角色。
  • 如果是 App Engine 後端,您必須按照「設定 IAP 存取權」一文中的步驟,將「受 IAP 保護的網路應用程式使用者」角色授予與閘道相關聯的服務帳戶。

限制與 API 設定相關聯的權限,可進一步保護後端系統。詳情請參閱身分與存取權管理 (IAM) 說明文件

建立服務帳戶後,請使用 --backend-auth-service-account 選項,在建立 API 設定時指定該服務帳戶的電子郵件地址:

gcloud api-gateway api-configs create CONFIG_ID \
  --api=API_ID --openapi-spec=API_DEFINITION \
  --backend-auth-service-account=SERVICE_ACCOUNT_EMAIL

如要進一步瞭解如何建立 API 設定,請參閱「建立 API」。

使用預設服務帳戶

部分 Google Cloud 產品會定義預設服務帳戶。 舉例來說,如果您使用 Compute Engine,並為專案啟用 Compute Engine API,系統會為您建立預設的 Compute Engine 服務帳戶。預設服務帳戶的電子郵件地址如下:

PROJECT_NUMBER-compute@developer.gserviceaccount.com

如果您將必要權限指派給預設服務帳戶,建立 API 設定時可以省略 --backend-auth-service-account 選項:

gcloud api-gateway api-configs create CONFIG_ID \
  --api=API_ID --openapi-spec=API_DEFINITION 

詳情請參閱「使用 Compute Engine 預設服務帳戶」。

使用 OpenID Connect

API Gateway 對後端服務的要求可能會使用驗證。這些要求會使用由閘道服務帳戶簽署的 OpenID Connect (OIDC) 權杖保護。請確認後端服務已正確設定,可接受 OIDC 權杖進行驗證和授權。Cloud Run functions、Cloud Run 和 Identity Aware Proxy (IAP) 都提供這項選項。

後續步驟