在 API Gateway 中選擇API金鑰來源 - Amazon API Gateway

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 API Gateway 中選擇API金鑰來源

當您將用量計劃與 建立關聯,API並啟用API方法的API金鑰時,對 的每次傳入請求API都必須包含API金鑰 。API Gateway 會讀取金鑰,並將其與用量計劃中的金鑰進行比較。如果有相符項目,APIGateway 會根據計劃的請求限制和配額來限流請求。否則,它會擲出 InvalidKeyParameter 例外狀況。因此,發起人收到 403 Forbidden 回應。

Gateway APIAPI可以從兩個來源之一接收API金鑰:

HEADER

您可以將API金鑰分發給客戶,並要求他們傳遞API金鑰,做為每個傳入請求的X-API-Key標頭。

AUTHORIZER

您有一個 Lambda 授權方傳回API金鑰作為授權回應的一部分。如需授權回應的詳細資訊,請參閱從 API Gateway Lambda 授權方輸出

注意

如需考量最佳實務,請參閱 API 金鑰和用量計畫的最佳實務

API 使用 API Gateway 主控台選擇 的API金鑰來源
  1. 登入API閘道主控台。

  2. 選擇現有的 API或建立新的 。

  3. 在主導覽窗格中,選擇API設定

  4. API詳細資訊區段中,選擇編輯

  5. API金鑰來源 下,Authorizer從下拉式清單中選取 Header或 。

  6. 選擇 Save changes (儲存變更)。

若要API使用 為 選擇API金鑰來源 AWS CLI,請呼叫 update-rest-api命令,如下所示:

aws apigateway update-rest-api --rest-api-id 1234123412 --patch-operations op=replace,path=/apiKeySource,value=AUTHORIZER

若要讓用戶端提交API金鑰,請在上述CLI命令HEADER中將 value 設為 。

若要API使用API閘道 為 選擇API金鑰來源RESTAPI,請呼叫 restapi:update,如下所示:

PATCH /restapis/fugvjdxtri/ HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160603T205348Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160603/us-east-1/apigateway/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature={sig4_hash} { "patchOperations" : [ { "op" : "replace", "path" : "/apiKeySource", "value" : "HEADER" } ] }

若要讓授權方傳回API金鑰,請在先前的patchOperations輸入AUTHORIZER中將 value 設定為 。

根據您選擇的API金鑰來源類型,使用下列其中一個程序,在方法調用中使用標頭來源API金鑰或授權方傳回的API金鑰:

若要使用標頭來源API金鑰:
  1. API 使用所需的API方法建立 ,然後將 部署API到階段。

  2. 建立新的用量計劃或選擇現有的用量計劃。將部署API階段新增至使用計畫。將API金鑰連接至使用計畫,或選擇計畫中的現有API金鑰。請注意選擇的API金鑰值。

  3. 設定API方法以要求API金鑰。

  4. 將 重新部署API至相同的階段。如果您將 部署API到新的階段,請務必更新使用計劃以連接新的API階段。

用戶端現在可以呼叫 API 方法,同時提供具有所選API金鑰的x-api-key標頭作為標頭值。

若要使用授權方來源API金鑰:
  1. API 使用所需的API方法建立 ,然後將 部署API到階段。

  2. 建立新的用量計劃或選擇現有的用量計劃。將部署API階段新增至使用計畫。將API金鑰連接至使用計畫,或選擇計畫中的現有API金鑰。請注意選擇的API金鑰值。

  3. 建立權杖型 Lambda 授權方。納入 usageIdentifierKey:{api-key} 作為授權回應的根層級屬性。如需建立以權杖為基礎的授權方的指示,請參閱 TOKEN 授權方 Lambda 函數範例

  4. 設定API方法以要求API金鑰,並同時在方法上啟用 Lambda 授權方。

  5. 將 重新部署API至相同的階段。如果您將 部署API到新的階段,請務必更新使用計劃以連接新的API階段。

用戶端現在可以呼叫API金鑰所需的方法,而無需明確提供任何API金鑰。授權方傳回的API金鑰會自動使用。