本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 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金鑰來源
-
登入API閘道主控台。
-
選擇現有的 API或建立新的 。
-
在主導覽窗格中,選擇API設定 。
-
在API詳細資訊區段中,選擇編輯 。
-
在API金鑰來源 下,
Authorizer
從下拉式清單中選取Header
或 。 -
選擇 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金鑰:
-
API 使用所需的API方法建立 ,然後將 部署API到階段。
-
建立新的用量計劃或選擇現有的用量計劃。將部署API階段新增至使用計畫。將API金鑰連接至使用計畫,或選擇計畫中的現有API金鑰。請注意選擇的API金鑰值。
-
設定API方法以要求API金鑰。
-
將 重新部署API至相同的階段。如果您將 部署API到新的階段,請務必更新使用計劃以連接新的API階段。
用戶端現在可以呼叫 API 方法,同時提供具有所選API金鑰的x-api-key
標頭作為標頭值。
若要使用授權方來源API金鑰:
-
API 使用所需的API方法建立 ,然後將 部署API到階段。
-
建立新的用量計劃或選擇現有的用量計劃。將部署API階段新增至使用計畫。將API金鑰連接至使用計畫,或選擇計畫中的現有API金鑰。請注意選擇的API金鑰值。
-
建立權杖型 Lambda 授權方。納入
usageIdentifierKey:
作為授權回應的根層級屬性。如需建立以權杖為基礎的授權方的指示,請參閱 TOKEN 授權方 Lambda 函數範例。{api-key}
-
設定API方法以要求API金鑰,並同時在方法上啟用 Lambda 授權方。
-
將 重新部署API至相同的階段。如果您將 部署API到新的階段,請務必更新使用計劃以連接新的API階段。
用戶端現在可以呼叫API金鑰所需的方法,而無需明確提供任何API金鑰。授權方傳回的API金鑰會自動使用。