

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Contrôler l’accès pour l’appel d’une API
<a name="api-gateway-control-access-using-iam-policies-to-invoke-api"></a>

Dans cette section, vous allez découvrir le modèle d’autorisation permettant de contrôler l’accès à votre API avec des autorisations IAM. Lorsque l'autorisation IAM est activée, les clients doivent utiliser la version de signature 4a (SIGv4a) et la version de signature 4 (Sigv4) pour signer leurs demandes avec des informations d'identification. AWS Pour plus d’informations, consultez [AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html).

Dans cette section, nous allons vous présenter un modèle de déclaration de politique IAM et la référence de cette déclaration. La référence de la déclaration de politique inclut les formats des champs `Action` et `Resource` liés au service d’exécution des API. Utilisez ces références pour créer votre déclaration de politique IAM. Lorsque vous créez votre déclaration de politique IAM, tenez compte de la façon dont les politiques de ressources API Gateway affectent le flux d’autorisation. Pour de plus amples informations, veuillez consulter [Comment les politiques de ressources API Gateway affectent le flux de travail d’autorisation](apigateway-authorization-flow.md).

Pour le mode privé APIs, vous devez utiliser une combinaison d'une politique de ressources API Gateway et d'une politique de point de terminaison VPC. Pour plus d’informations, consultez les rubriques suivantes :
+ [Contrôle d’accès à une API REST avec des politiques de ressources API Gateway](apigateway-resource-policies.md)
+ [Utiliser les politiques de point de terminaison VPC pour le mode privé APIs dans API Gateway](apigateway-vpc-endpoint-policies.md)

## Contrôle des personnes habilitées à appeler une méthode d’API API Gateway avec les politiques IAM
<a name="api-gateway-who-can-invoke-an-api-method-using-iam-policies"></a>

 Pour contrôler qui peut ou non appeler une API déployée avec les autorisations IAM, créez un document de politique IAM avec les autorisations requises. Un modèle pour un tel document de politique est affiché comme suit. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Permission",
      "Action": [
        "execute-api:Execution-operation"           
      ],
      "Resource": [
        "arn:aws:execute-api:region:123456789012:api-id/stage/METHOD_HTTP_VERB/Resource-path"
      ]
    }
  ]
}
```

------

 Ici, `Permission` doit être remplacé par `Allow` ou `Deny`, selon que vous voulez accorder ou révoquer les autorisations incluses. `Execution-operation` doit être remplacé par les opérations prises en charge par le service d’exécution des API. `METHOD_HTTP_VERB` représente un verbe HTTP pris en charge par les ressources spécifiées. `Resource-path` est l’espace réservé du chemin d’URL d’une instance `[Resource](https://docs.aws.amazon.com/apigateway/latest/api/API_Resource.html)` d’API déployée prenant en charge ledit verbe `METHOD_HTTP_VERB`. Pour de plus amples informations, veuillez consulter [Référence de déclaration de politique IAM pour l’exécution des API dans API Gateway](#api-gateway-calling-api-permissions). 

**Note**  
Pour que les politiques 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](https://docs.aws.amazon.com/apigateway/latest/api/API_Method.html#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 politique IAM : 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "execute-api:Invoke"           
      ],
      "Resource": [
        "arn:aws:execute-api:us-east-1:111111111111:api-id/*/GET/pets"
      ]
    },
    {
      "Effect": "Deny",
      "Action": [
        "execute-api:Invoke"           
      ],
      "Resource": [
        "arn:aws:execute-api:us-east-1:111111111111: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/{petId}`, vous pouvez inclure la déclaration suivante dans la politique IAM :

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "execute-api:Invoke"
            ],
            "Resource": [
                "arn:aws:execute-api:us-east-1:111122223333:api-id/*/GET/pets/a1b2"
            ]
        }
    ]
}
```

------

## Référence de déclaration de politique IAM pour l’exécution des API dans API Gateway
<a name="api-gateway-calling-api-permissions"></a>

Les informations suivantes décrivent le format des expressions Action et Resource des déclarations de politique 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
<a name="api-gateway-iam-policy-action-format-for-executing-api"></a>

L’expression `Action` des autorisations d’exécution d’API a le format général suivant :

```
execute-api:action
```

où se *action* trouve une action d'exécution d'API disponible :
+ **\$1**, 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
<a name="api-gateway-iam-policy-resource-format-for-executing-api"></a>

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 AWS région (telle que **us-east-1** ou **\$1** pour toutes les AWS régions) qui correspond à l'API déployée pour la méthode.
+ *account-id*est l'identifiant de AWS compte à 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 de la méthode. Les valeurs possibles sont GET, POST, PUT, DELETE, PATCH.
+ *resource-path-specifier*est le chemin d'accès à la méthode souhaitée.

**Note**  
Si vous spécifiez un caractère générique (`*`), l’expression `Resource` applique le caractère générique au reste de l’expression.

Voici quelques exemples d’expression Resource :
+ **arn:aws:execute-api:\$1:\$1:\$1**pour n'importe quel chemin de ressource à n'importe quelle étape, pour n'importe quelle API dans n'importe quelle AWS région.
+ **arn:aws:execute-api:us-east-1:\$1:\$1**pour tout chemin de ressource à n'importe quelle étape, pour toute API de la AWS région de`us-east-1`.
+ **arn:aws:execute-api:us-east-1:\$1:*api-id*/\$1**pour tout chemin de ressource à n'importe quelle étape, pour l'API dont l'identifiant est *api-id* dans la AWS région de us-east-1.
+ **arn:aws:execute-api:us-east-1:\$1:*api-id*/`test`/\$1**pour tout chemin de ressource au stade de`test`, pour l'API dont l'identifiant est situé *api-id* dans la AWS région us-east-1.

Pour en savoir plus, veuillez consulter la section [Référence Amazon Resource Name (ARN) API Gateway](arn-format-reference.md).