Contrôler l'accès pour l'appel d'une API
Dans cette section, vous allez apprendre à écrire les déclarations de stratégie IAM pour contrôler qui peut ou non appeler une API déployée dans API Gateway. Ici, vous trouverez également la référence de déclaration de stratégie, y compris les formats des champs Action
et Resource
liés au service de l'exécution des API. Vous devez également étudier la section IAM de Comment les stratégies de ressources API Gateway affectent le flux de travail d'autorisation.
Pour les API privées, vous devez utiliser une combinaison constituée d'une stratégie de ressources API Gateway et d'un point de terminaison de VPC. Pour plus d'informations, consultez les rubriques suivantes :
Contrôle des personnes habilitées à appeler une méthode d'API API Gateway avec les stratégies IAM
Pour contrôler qui peut ou non appeler une API déployée avec les autorisations IAM, créez un document de stratégie IAM avec les autorisations requises. Un modèle pour un tel document de stratégie est affiché comme suit.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "
Permission
", "Action": [ "execute-api:Execution-operation
" ], "Resource": [ "arn:aws:execute-api:region
:account-id
:api-id
/stage
/METHOD_HTTP_VERB
/Resource-path
" ] } ] }
Ici,
doit être remplacé par Permission
Allow
ou Deny
, selon que vous voulez accorder ou révoquer les autorisations incluses.
doit être remplacé par les opérations prises en charge par le service d'exécution des API. Execution-operation
représente un verbe HTTP pris en charge par les ressources spécifiées. METHOD_HTTP_VERB
est l'espace réservé du chemin d'URL d'une instance Resource-path
Resource
d'API déployée prenant en charge ledit verbe
. Pour de plus amples informations, veuillez consulter Référence de déclaration de stratégie IAM pour l'exécution des API dans API Gateway. METHOD_HTTP_VERB
Pour que les stratégies IAM soient efficaces, vous devez avoir activé l'authentification IAM sur les méthodes de l'API en définissant AWS_IAM
pour la propriété authorizationType
de la méthode. Faute de quoi ces méthodes d'API seront accessibles au public.
Par exemple, pour accorder à un utilisateur l'autorisation d'afficher la liste des « pets » exposés par une API spécifiée, mais lui refuser l'autorisation d'ajouter un « pet » à la liste, vous pouvez inclure la déclaration suivante dans la stratégie IAM :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:
account-id
:api-id
/*
/GET/pets
" ] }, { "Effect": "Deny", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id
:api-id
/*
/POST/pets
" ] } ] }
Pour accorder à un utilisateur l'autorisation d'afficher un « pet » exposé spécifique par une API configurée en tant que GET /pets/
, vous pouvez inclure la déclaration suivante dans la stratégie IAM :{petId}
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:
account-id
:api-id
/*/GET/pets
/a1b2
" ] } ] }
Référence de déclaration de stratégie IAM pour l'exécution des API dans API Gateway
Les informations suivantes décrivent le format des expressions Action et Resource des déclarations de stratégie IAM d'autorisation d'accès pour l'exécution d'une API.
Format de l'expression Action des autorisations d'exécution d'API dans API Gateway
L'expression Action
des autorisations d'exécution d'API a le format général suivant :
execute-api:
action
où action
est une action d'exécution d'API disponible :
-
*, qui représente l'ensemble des actions suivantes.
-
Invoke, utilisée pour appeler une API sur demande d'un client.
-
InvalidateCache, utilisée pour invalider le cache API sur demande d'un client.
Format de l'expression Resource des autorisations d'exécution d'API dans API Gateway
L'expression Resource
des autorisations d'exécution d'API a le format général suivant :
arn:aws:execute-api:
region
:account-id:api-id
/stage-name
/HTTP-VERB
/resource-path-specifier
où :
-
region
est la région AWS (telle queus-east-1
ou*
pour toutes les régions AWS) qui correspond à l'API déployée pour la méthode. -
account-id
est l'ID de compte AWS à 12 chiffres du propriétaire de l'API REST. -
api-id
est l'identifiant qu'API Gateway a attribué à l'API pour la méthode. -
stage-name
est le nom de l'étape associée à la méthode. -
HTTP-VERB
est le verbe HTTP pour la méthode. Les valeurs possibles sont GET, POST, PUT, DELETE, PATCH. -
resource-path-specifier
est le chemin de la méthode souhaitée.
Voici quelques exemples d'expression Resource :
-
arn:aws:execute-api:*:*:*
pour tout chemin de ressource à toute étape, pour toute API de toute région AWS. -
arn:aws:execute-api:us-east-1:*:*
pour tout chemin de ressource à toute étape, pour toute API dans la région AWSus-east-1
. -
arn:aws:execute-api:us-east-1:*:
pour tout chemin de ressource à toute étape, pour l'API avec l'identifiantapi-id
/*api-id
dans la région AWS us-east-1. -
arn:aws:execute-api:us-east-1:*:
pour le chemin de ressource à l'étapeapi-id
/test
/*test
, pour l'API avec l'identifiantapi-id
dans la région AWS us-east-1.
Pour en savoir plus, veuillez consulter la section Référence Amazon Resource Name (ARN) API Gateway.