本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
API Gateway 中 REST API 的用量計畫和 API 金鑰
在您建立、測試和部署 API 之後,您可以使用 API Gateway 用量計劃讓它們可做為產品優惠供給客戶使用。您可以設定用量計劃和 API 金鑰,以便客戶存取選取的 API,並根據定義的限制和配額來調節傳送給這些 API 的請求量。您可在 API 或 API 方法層級進行設定這些內容。
什麼是用量計劃和 API 金鑰?
用量計劃會指定誰能存取一個或多個已部署 API 階段和方法,也可以設定目標請求率來開始調節請求量。計劃會使用 API 金鑰來識別 API 用戶端,以及每個金鑰的相關 API 階段可存取者。
API 金鑰是英數字串值,您會將其發布到應用程式開發人員客戶,以授與您 API 的存取權。您可以將 Lambda 授權方、IAM 角色或 Amazon Cognito 與 API 金鑰搭配使用,來控制對 API 的存取。API Gateway 可以代表您產生 API 金鑰,或從 CSV 檔案匯入它們。您可以在 API Gateway 中產生 API 金鑰,或從外部來源將它匯入 API Gateway。如需詳細資訊,請參閱使用 API Gateway 主控台設定 API 金鑰。
API 金鑰具有名稱和數值。(術語「API 金鑰」與「API 金鑰值」經常可以交換使用。) 名稱不能超過 1024 個字元。金鑰值是介於 20 與 128 個字元之間的英數字串,例如,apikey1234abcdefghij0123456789
。
重要
API 金鑰值必須是唯一的。如果您嘗試建立兩個名稱不同但數值相同的 API 金鑰,API Gateway 會將它們視為相同的 API 金鑰。
API 金鑰可以關聯到多個用量計劃。用量計劃可以關聯到多個階段。不過,特定 API 金鑰只能與每個 API 階段的一個用量計劃相關聯。
調節限制即為開始進行請求調節應的目標點。您可在 API 或 API 方法層級進行設定。
配額限制即為使用特定 API 金鑰在指定時間間隔內可以提交的目標請求量上限。您可以設定個別的 API 方法根據用量計劃組態來要求 API 金鑰授權。
調節和配額限制適用於在用量計劃中跨所有 API 階段彙總之個別 API 金鑰的請求。
注意
用量計劃調節和配額並非硬性限制,會依最佳作法來套用。在某些情況下,用戶端可能超出設定的配額。請勿依靠用量計劃配額或調節來控制成本或封鎖對 API 的存取。請考慮使用 AWS Budgets 來監控成本,使用 AWS WAF 來管理 API 請求量。
在 API Gateway 中設定用量計畫和 API 金鑰的步驟
下列任務概述設定用量計畫和 API 金鑰的必要步驟。如需最佳實務做法,請參閱「API 金鑰和用量計劃的最佳實務」。
設定用量計畫和 API 金鑰
-
建立 API 並設定每個 API 方法的方法請求,以要求 API 金鑰。然後將您的 API 部署至階段。
若要在用量計劃中包含 API 方法,您必須設定個別的 API 方法要求 API 金鑰。
如需有關如何設定方法以要求 API 金鑰的詳細資訊,請參閱 方法中需要 API 金鑰。
-
產生或匯入 API 金鑰來發布到將使用您 API 的應用程式開發人員 (您的客戶)。您的用量計畫需要 API 金鑰。
如需有關如何產生或匯入 API 金鑰的詳細資訊,請參閱 建立 API 金鑰。
-
建立具有所需限流和配額限制的用量計畫,然後為 API 階段和 API 金鑰與用量計畫建立關聯。
如需有關如何建立用量計畫的詳細資訊,請參閱 建立用量計劃。
API 發起人必須在請求 API 的 x-api-key
標頭中提供已指派的 API 金鑰。
如需建立用量計劃並與新階段和 API 金鑰建立關聯的完整 AWS CloudFormation 範本,請參閱 使用 建立和設定 API 金鑰和用量計劃 AWS CloudFormation。
API 金鑰和用量計劃的最佳實務
以下是使用 API 金鑰和用量計劃時建議遵循的最佳實務。
重要
-
不要使用 API 金鑰進行身分驗證或授權來控制 API 的存取權。然而,若用量計劃中具有多個 API,則持有該用量計劃中某 API 有效 API 金鑰的使用者便可存取該用量計劃中的所有 API。請改用 IAM 角色、Lambda 授權方或 Amazon Cognito 使用者集區來控制 API 的存取權。
-
使用 API Gateway 產生的 API 金鑰。API 金鑰不應包含機密資訊;用戶端通常會在可被記錄的標頭中傳輸這些資訊。
-
如果您是使用開發人員入口網站來發布 API,請注意,特定用量計畫中的所有 API 都是可訂閱的,即使您尚未讓客戶可以看到它們也一樣。
-
在某些情況下,用戶端可能超出設定的配額。請勿依靠用量計劃來控制成本。請考慮使用 AWS Budgets 來監控成本,使用 AWS WAF 來管理 API 請求量。
-
將 API 金鑰新增至用量計畫後,更新作業可能需要幾分鐘時間才能完成。