本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在API閘道中選擇API金鑰來源
當您將使用計劃與API方法上的啟用API鍵相關聯API並啟用時,對的每個傳入請求都API必須包含一個索API引鍵。APIGateway 會讀取金鑰,並將其與使用方案中的金鑰進行比較。如果有相符項目,APIGateway 會根據方案的要求限制和配額來限制要求。否則,它會擲出 InvalidKeyParameter
例外狀況。因此,發起人收到 403 Forbidden
回應。
您的API閘道API可以從下列其中一個來源接收API金鑰:
HEADER
-
您可以將API金鑰分配給客戶,並要求他們將金API鑰作為每個傳入要求的
X-API-Key
標頭傳遞。 AUTHORIZER
-
您有 Lambda 授權者在授權回應中傳回API金鑰。如需授權回應的詳細資訊,請參閱來自API閘道 Lambda 授權者的輸出。
注意
如需考量最佳實務,請參閱 API金鑰和使用方案的最佳做法。
使用API閘道主控台選擇API金鑰來源 API
-
登入API閘道主控台。
-
選擇現有的API或建立新的。
-
在主導覽窗格中,選擇 [API設定]。
-
在API詳細資料區段中,選擇編輯。
-
在API金鑰來源下,
Authorizer
從下拉式清單中選取Header
或。 -
選擇儲存變更。
若要使用選擇的API金鑰來源 AWS CLI,請API依照下列方式呼叫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金鑰來源 RESTAPI,請API依下列方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
輸value
入AUTHORIZER
中將設置為。
視您選擇的金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金鑰會自動使用。