Choix d’une source de clé d’API dans API Gateway
Lorsque vous associez un plan d’utilisation à une API et activez des clés d’API sur les méthodes d’API, chaque demande entrante vers l’API doit inclure une clé d’API. API Gateway lit la clé et la compare à celles du plan d’utilisation. S’il y a correspondance, API Gateway restreint les demandes en fonction des limitations et quotas définis dans le plan. Sinon, il renvoie une exception InvalidKeyParameter
. En conséquence, l’appelant reçoit une réponse 403 Forbidden
.
Votre API API Gateway peut recevoir des clés d’API à partir de l’une de ces deux sources :
HEADER
-
Vous distribuez les clés d’API à vos clients et leur demandez de les transmettre comme en-tête X-API-Key
de chaque demande entrante.
AUTHORIZER
-
Un mécanisme d’autorisation Lambda renvoie la clé d’API dans le cadre de la réponse d’autorisation. Pour plus d’informations sur la réponse d’autorisation, consultez Sortie d’un mécanisme d’autorisation Lambda API Gateway.
La procédure ci-dessous montre comment choisir une source de clé d’API pour une API.
- AWS Management Console
Pour choisir une source de clé d’API pour une API
-
Connectez-vous à la console API Gateway.
-
Choisissez une API existante ou créez-en une.
-
Dans le panneau de navigation principal, choisissez Paramètres de l’API.
-
Dans la section Détails de l'API, choisissez Modifier.
-
Sous Source de clé d’API, sélectionnez Header
ou Authorizer
dans la liste déroulante.
-
Sélectionnez Enregistrer les modifications.
- AWS CLI
La commande update-rest-api suivante met à jour une API afin de définir la source de clé d’API sur AUTHORIZER
:
aws apigateway update-rest-api --rest-api-id 1234123412 --patch-operations op=replace,path=/apiKeySource,value=AUTHORIZER
Pour que le client soumette une clé d’API, définissez value
sur HEADER
dans la commande précédente.
- REST API
Pour choisir une source de clé d’API pour une API à l’aide de l’API REST API Gateway, appelez restapi:update
comme suit :
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"
}
]
}
Pour avoir qu’un mécanisme d’autorisation renvoie une clé d’API, définissez la value
sur AUTHORIZER
dans l’entrée patchOperations
précédente.