

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.

# Identity and Access Management pour Amazon API Gateway
<a name="security-iam"></a>

Gestion des identités et des accès AWS (IAM) est un outil Service AWS qui permet à un administrateur de contrôler en toute sécurité l'accès aux AWS ressources. Des administrateurs IAM contrôlent les personnes qui *s'authentifient* (sont connectées) et *sont autorisées* (disposent d'autorisations) à utiliser des ressources API Gateway. IAM est un Service AWS outil que vous pouvez utiliser sans frais supplémentaires.

**Topics**
+ [Public ciblé](#security_iam_audience)
+ [Authentification par des identités](#security_iam_authentication)
+ [Gestion de l’accès à l’aide de politiques](#security_iam_access-manage)
+ [Fonctionnement d'Amazon API Gateway avec IAM](security_iam_service-with-iam.md)
+ [Exemples de stratégie basée sur l'identité d'Amazon API Gateway](security_iam_id-based-policy-examples.md)
+ [Exemples de politique basée sur les ressources d'Amazon API Gateway](security_iam_resource-based-policy-examples.md)
+ [Résolution des problèmes d'identité et d'accès à Amazon API Gateway](security_iam_troubleshoot.md)
+ [Utilisation de rôles liés à un service pour API Gateway](using-service-linked-roles.md)

## Public ciblé
<a name="security_iam_audience"></a>

La façon dont vous utilisez Gestion des identités et des accès AWS (IAM) varie en fonction de votre rôle :
+ **Utilisateur du service** : demandez des autorisations à votre administrateur si vous ne pouvez pas accéder aux fonctionnalités (voir [Résolution des problèmes d'identité et d'accès à Amazon API Gateway](security_iam_troubleshoot.md))
+ **Administrateur du service** : déterminez l’accès des utilisateurs et soumettez les demandes d’autorisation (voir [Fonctionnement d'Amazon API Gateway avec IAM](security_iam_service-with-iam.md))
+ **Administrateur IAM** : rédigez des politiques pour gérer l’accès (voir [Exemples de stratégie basée sur l'identité d'Amazon API Gateway](security_iam_id-based-policy-examples.md))

## Authentification par des identités
<a name="security_iam_authentication"></a>

L'authentification est la façon dont vous vous connectez à AWS l'aide de vos informations d'identification. Vous devez être authentifié en tant qu'utilisateur IAM ou en assumant un rôle IAM. Utilisateur racine d'un compte AWS

Vous pouvez vous connecter en tant qu'identité fédérée à l'aide d'informations d'identification provenant d'une source d'identité telle que AWS IAM Identity Center (IAM Identity Center), d'une authentification unique ou d'informations d'identification. Google/Facebook Pour plus d’informations sur la connexion, consultez [Connexion à votre Compte AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) dans le *Guide de l’utilisateur Connexion à AWS *.

Pour l'accès par programmation, AWS fournit un SDK et une CLI pour signer les demandes de manière cryptographique. Pour plus d’informations, consultez [Signature AWS Version 4 pour les demandes d’API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) dans le *Guide de l’utilisateur IAM*.

### Compte AWS utilisateur root
<a name="security_iam_authentication-rootuser"></a>

 Lorsque vous créez un Compte AWS, vous commencez par une seule identité de connexion appelée *utilisateur Compte AWS root* qui dispose d'un accès complet à toutes Services AWS les ressources. Il est vivement déconseillé d’utiliser l’utilisateur racine pour vos tâches quotidiennes. Pour les tâches qui requièrent des informations d’identification de l’utilisateur racine, consultez [Tâches qui requièrent les informations d’identification de l’utilisateur racine](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) dans le *Guide de l’utilisateur IAM*. 

### Utilisateurs et groupes IAM
<a name="security_iam_authentication-iamuser"></a>

Un *[utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* est une identité qui dispose d’autorisations spécifiques pour une seule personne ou application. Nous vous recommandons d’utiliser ces informations d’identification temporaires au lieu des utilisateurs IAM avec des informations d’identification à long terme. Pour plus d'informations, voir [Exiger des utilisateurs humains qu'ils utilisent la fédération avec un fournisseur d'identité pour accéder à AWS l'aide d'informations d'identification temporaires](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) dans le *guide de l'utilisateur IAM*.

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) spécifient une collection d’utilisateurs IAM et permettent de gérer plus facilement les autorisations pour de grands ensembles d’utilisateurs. Pour plus d’informations, consultez [Cas d’utilisation pour les utilisateurs IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) dans le *Guide de l’utilisateur IAM*.

### Rôles IAM
<a name="security_iam_authentication-iamrole"></a>

Un *[rôle IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* est une identité dotée d’autorisations spécifiques qui fournit des informations d’identification temporaires. Vous pouvez assumer un rôle en [passant d'un rôle d'utilisateur à un rôle IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) ou en appelant une opération d' AWS API AWS CLI ou d'API. Pour plus d’informations, consultez [Méthodes pour endosser un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) dans le *Guide de l’utilisateur IAM*.

Les rôles IAM sont utiles pour l’accès des utilisateurs fédérés, les autorisations temporaires des utilisateurs IAM, les accès intercompte, les accès entre services et les applications exécutées sur Amazon EC2. Pour plus d’informations, consultez [Accès intercompte aux ressources dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) dans le *Guide de l’utilisateur IAM*.

## Gestion de l’accès à l’aide de politiques
<a name="security_iam_access-manage"></a>

Vous contrôlez l'accès en AWS créant des politiques et en les associant à AWS des identités ou à des ressources. Une politique définit les autorisations lorsqu'elles sont associées à une identité ou à une ressource. AWS évalue ces politiques lorsqu'un directeur fait une demande. La plupart des politiques sont stockées AWS sous forme de documents JSON. Pour plus d’informations les documents de politique JSON, consultez [Vue d’ensemble des politiques JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) dans le *Guide de l’utilisateur IAM*.

À l’aide de politiques, les administrateurs précisent qui a accès à quoi en définissant quel **principal** peut effectuer des **actions** sur quelles **ressources** et dans quelles **conditions**.

Par défaut, les utilisateurs et les rôles ne disposent d’aucune autorisation. Un administrateur IAM crée des politiques IAM et les ajoute aux rôles, que les utilisateurs peuvent ensuite assumer. Les politiques IAM définissent les autorisations quelle que soit la méthode que vous utilisez pour exécuter l’opération.

### Politiques basées sur l’identité
<a name="security_iam_access-manage-id-based-policies"></a>

Les stratégies basées sur l’identité sont des documents de stratégie d’autorisations JSON que vous attachez à une identité (utilisateur, groupe ou rôle). Ces politiques contrôlent les actions que peuvent exécuter ces identités, sur quelles ressources et dans quelles conditions. Pour découvrir comment créer une politique basée sur l’identité, consultez [Définition d’autorisations IAM personnalisées avec des politiques gérées par le client](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dans le *Guide de l’utilisateur IAM*.

Les politiques basées sur l’identité peuvent être des *politiques intégrées* (intégrées directement dans une seule identité) ou des *politiques gérées (politiques* autonomes associées à plusieurs identités). Pour découvrir comment choisir entre des politiques gérées et en ligne, consultez [Choix entre les politiques gérées et les politiques en ligne](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) dans le *Guide de l’utilisateur IAM*.

### Politiques basées sur les ressources
<a name="security_iam_access-manage-resource-based-policies"></a>

Les politiques basées sur les ressources sont des documents de politique JSON que vous attachez à une ressource. Les exemples incluent *les politiques de confiance de rôle* IAM et les *stratégies de compartiment* Amazon S3. Dans les services qui sont compatibles avec les politiques basées sur les ressources, les administrateurs de service peuvent les utiliser pour contrôler l’accès à une ressource spécifique. Vous devez [spécifier un principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) dans une politique basée sur les ressources.

Les politiques basées sur les ressources sont des politiques en ligne situées dans ce service. Vous ne pouvez pas utiliser les politiques AWS gérées par IAM dans une stratégie basée sur les ressources.

### Listes de contrôle d'accès (ACLs)
<a name="security_iam_access-manage-acl"></a>

Les listes de contrôle d'accès (ACLs) contrôlent les principaux (membres du compte, utilisateurs ou rôles) autorisés à accéder à une ressource. ACLs sont similaires aux politiques basées sur les ressources, bien qu'elles n'utilisent pas le format de document de politique JSON.

Amazon S3 et AWS WAF Amazon VPC sont des exemples de services compatibles. ACLs Pour en savoir plus ACLs, consultez la [présentation de la liste de contrôle d'accès (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) dans le *guide du développeur Amazon Simple Storage Service*.

### Autres types de politique
<a name="security_iam_access-manage-other-policies"></a>

AWS prend en charge des types de politiques supplémentaires qui peuvent définir les autorisations maximales accordées par les types de politiques les plus courants :
+ **Limites d’autorisations** : une limite des autorisations définit le nombre maximum d’autorisations qu’une politique basée sur l’identité peut accorder à une entité IAM. Pour plus d’informations, consultez [Limites d’autorisations pour des entités IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) dans le *Guide de l’utilisateur IAM*.
+ **Politiques de contrôle des services (SCPs)** — Spécifiez les autorisations maximales pour une organisation ou une unité organisationnelle dans AWS Organizations. Pour plus d’informations, consultez [Politiques de contrôle de service](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) dans le *Guide de l’utilisateur AWS Organizations *.
+ **Politiques de contrôle des ressources (RCPs)** : définissez le maximum d'autorisations disponibles pour les ressources de vos comptes. Pour plus d'informations, voir [Politiques de contrôle des ressources (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) dans le *guide de AWS Organizations l'utilisateur*.
+ **Politiques de session** : politiques avancées que vous passez en tant que paramètre lorsque vous créez par programmation une session temporaire pour un rôle ou un utilisateur fédéré. Pour plus d’informations, consultez [Politiques de session](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) dans le *Guide de l’utilisateur IAM*.

### Plusieurs types de politique
<a name="security_iam_access-manage-multiple-policies"></a>

Lorsque plusieurs types de politiques s’appliquent à la requête, les autorisations en résultant sont plus compliquées à comprendre. Pour savoir comment AWS déterminer s'il faut autoriser une demande lorsque plusieurs types de politiques sont impliqués, consultez la section [Logique d'évaluation des politiques](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) dans le *guide de l'utilisateur IAM*.

# Fonctionnement d'Amazon API Gateway avec IAM
<a name="security_iam_service-with-iam"></a>

Avant d'utiliser IAM pour gérer l'accès à API Gateway, vous devez comprendre les fonctions IAM disponibles avec API Gateway. Pour obtenir une vue d'ensemble du fonctionnement d'API Gateway et des autres AWS services avec IAM, consultez la section [AWS Services That Work with IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) dans le guide de l'utilisateur d'*IAM*.

**Topics**
+ [Stratégies basées sur l'identité d'API Gateway](#security_iam_service-with-iam-id-based-policies)
+ [Stratégies basées sur les ressources API Gateway](#security_iam_service-with-iam-resource-based-policies)
+ [Autorisation basée sur les balises API Gateway](#security_iam_service-with-iam-tags)
+ [Rôles IAM API Gateway](#security_iam_service-with-iam-roles)

## Stratégies basées sur l'identité d'API Gateway
<a name="security_iam_service-with-iam-id-based-policies"></a>

Avec les stratégies IAM basées sur l'identité, vous pouvez spécifier quelles actions et ressources sont autorisées ou refusées, ainsi que les conditions dans lesquelles elles le sont. API Gateway prend en charge des actions, ressources et clés de condition spécifiques. Pour plus d'informations sur les actions, ressources et clés de condition spécifiques à API Gateway, consultez[Actions, ressources et clés de condition pour Amazon API Gateway Management](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonapigatewaymanagement.html)et[Actions, ressources et clés de condition pour Amazon API Gateway Management V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonapigatewaymanagementv2.html). Pour plus d'informations sur tous les éléments que vous utilisez dans une stratégie JSON, consultez [Références des éléments de stratégie JSON IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) dans le *Guide de l'utilisateur IAM*.

L'exemple suivant montre une politique basée sur l'identité qui permet à un utilisateur de créer ou de mettre à jour uniquement un REST privé. APIs Pour obtenir plus d’exemples, consultez [Exemples de stratégie basée sur l'identité d'Amazon API Gateway](security_iam_id-based-policy-examples.md).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ScopeToPrivateApis",
      "Effect": "Allow",
      "Action": [
        "apigateway:PATCH",
        "apigateway:POST",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/restapis",
        "arn:aws:apigateway:us-east-1::/restapis/??????????"
      ],
      "Condition": {
        "ForAllValues:StringEqualsIfExists": {
          "apigateway:Request/EndpointType": "PRIVATE",
          "apigateway:Resource/EndpointType": "PRIVATE"
        }
      }
    },
    {
      "Sid": "AllowResourcePolicyUpdates",
      "Effect": "Allow",
      "Action": [
          "apigateway:UpdateRestApiPolicy"
      ],
      "Resource": [
          "arn:aws:apigateway:us-east-1::/restapis/*"
      ]
    }
  ]
}
```

------

### Actions
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

L'élément `Action` d'une stratégie JSON décrit les actions que vous pouvez utiliser pour autoriser ou refuser l'accès à une stratégie.

Les actions de stratégie dans API Gateway utilisent le préfixe suivant avant l'action : `apigateway:`. Les déclarations de stratégie doivent inclure un élément `Action` ou `NotAction`. API Gateway définit son propre ensemble d'actions qui décrivent les tâches que vous pouvez effectuer avec ce service.



Le format `apigateway:action` de l'`Action`expression de gestion des API *action* est l'une des actions API Gateway suivantes : **GET**, **POST**, PUT, **DELETE**, **PATCH** (pour **mettre** à jour les ressources) ou **\$1**, qui correspond à toutes les actions précédentes.

Voici quelques exemples d'expression `Action` :
+ **apigateway:\$1** pour toutes les actions API Gateway.
+ **apigateway:GET** pour l'action GET uniquement dans API Gateway.

Pour spécifier plusieurs actions dans une seule déclaration, séparez-les par des virgules comme suit :

```
"Action": [
      "apigateway:action1",
      "apigateway:action2"
```

Pour plus d'informations sur les verbes HTTP à utiliser pour des opérations spécifiques d'API Gateway, consultez la [référence d'API (REST APIs) d'Amazon API Gateway version 1](https://docs.aws.amazon.com/apigateway/api-reference/) et la [référence d'API Amazon API Gateway version 2](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/api-reference.html) (WebSocket et HTTP APIs).

Pour de plus amples informations, veuillez consulter [Exemples de stratégie basée sur l'identité d'Amazon API Gateway](security_iam_id-based-policy-examples.md).

### Ressources
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

Les administrateurs peuvent utiliser les politiques AWS JSON pour spécifier qui a accès à quoi. C’est-à-dire, quel **principal** peut effectuer **des actions** sur quelles **ressources** et dans quelles **conditions**.

L’élément de politique JSON `Resource` indique le ou les objets auxquels l’action s’applique. Il est recommandé de définir une ressource à l’aide de son [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Pour les actions qui ne sont pas compatibles avec les autorisations de niveau ressource, utilisez un caractère générique (\$1) afin d’indiquer que l’instruction s’applique à toutes les ressources.

```
"Resource": "*"
```



Les ressources API Gateway sont au format ARN suivant :

```
arn:aws:apigateway:region::resource-path-specifier
```

Par exemple, pour spécifier une API REST avec l'ID *`api-id`* et ses sous-ressources, telles que les autorisations dans votre instruction, utilisez l'ARN suivant :

```
"Resource": "arn:aws:apigateway:us-east-2::/restapis/api-id/*"
```

Pour spécifier toutes les ressources REST APIs et les sous-ressources appartenant à un compte spécifique, utilisez le caractère générique (\$1) :

```
"Resource": "arn:aws:apigateway:us-east-2::/restapis/*"
```

Pour obtenir une liste des types de ressources API Gateway et de leurs ARNs caractéristiques, consultez[Référence Amazon Resource Name (ARN) API Gateway](arn-format-reference.md). 

### Clés de condition
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

Les administrateurs peuvent utiliser les politiques AWS JSON pour spécifier qui a accès à quoi. C’est-à-dire, quel **principal** peut effectuer **des actions** sur quelles **ressources** et dans quelles **conditions**.

L’élément `Condition` indique à quel moment les instructions s’exécutent en fonction de critères définis. Vous pouvez créer des expressions conditionnelles qui utilisent des [opérateurs de condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), tels que les signes égal ou inférieur à, pour faire correspondre la condition de la politique aux valeurs de la demande. Pour voir toutes les clés de condition AWS globales, voir les clés de [contexte de condition AWS globales](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) dans le *guide de l'utilisateur IAM*.

API Gateway définit son propre ensemble de clés de condition et prend également en charge l'utilisation des clés de condition globales. Pour accéder à la liste des clés de condition API Gateway, consultez [Clés de condition pour Amazon API Gateway](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_manageamazonapigateway.html#manageamazonapigateway-policy-keys) dans le *Guide de l'utilisateur IAM*. Pour savoir avec quelles actions et ressources vous pouvez utiliser une clé de condition, consultez [Actions définies par Amazon API Gateway](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_manageamazonapigateway.html#amazonapigateway-actions-as-permissions).

Pour plus d'informations sur l’étiquette, y compris le contrôle d'accès basé sur les attributs, consultez [Ajout de balises à vos ressources API Gateway](apigateway-tagging.md).

### Exemples
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Pour accéder à des exemples de stratégies API Gateway basées sur l'identité, consultez [Exemples de stratégie basée sur l'identité d'Amazon API Gateway](security_iam_id-based-policy-examples.md).

## Stratégies basées sur les ressources API Gateway
<a name="security_iam_service-with-iam-resource-based-policies"></a>

Les stratégies basées sur les ressources sont des documents de stratégie JSON précisant les actions qu'un principal indiqué peut effectuer sur la ressource API Gateway et dans quelles conditions. API Gateway prend en charge les politiques d'autorisation basées sur les ressources pour REST. APIs Vous pouvez utiliser des stratégies de ressources pour déterminer qui peut appeler une API REST. Pour de plus amples informations, veuillez consulter [Contrôle d’accès à une API REST avec des politiques de ressources API Gateway](apigateway-resource-policies.md). 

### Exemples
<a name="security_iam_service-with-iam-resource-based-policies-examples"></a>

Pour accéder à des exemples de stratégies API Gateway basées sur les ressources, consultez [Exemples de politiques de ressources API Gateway](apigateway-resource-policies-examples.md).

## Autorisation basée sur les balises API Gateway
<a name="security_iam_service-with-iam-tags"></a>

Vous pouvez attacher des balises aux ressources API Gateway ou transmettre des balises dans une requête à API Gateway. Pour contrôler l'accès basé sur des balises, vous devez fournir les informations des balises dans [l'élément de condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) d'une stratégie en utilisant les clés de condition `apigateway:ResourceTag/key-name`, `aws:RequestTag/key-name` ou `aws:TagKeys`. Pour de plus amples informations sur le balisage des ressources API Gateway, veuillez consulter [Utilisation de balises pour contrôler l’accès aux ressources API REST API Gateway](apigateway-tagging-iam-policy.md).

Pour accéder à des exemples de stratégies basées sur l'identité permettant de limiter l'accès à une ressource en fonction des balises de cette ressource, consultez [Utilisation de balises pour contrôler l’accès aux ressources API REST API Gateway](apigateway-tagging-iam-policy.md).

## Rôles IAM API Gateway
<a name="security_iam_service-with-iam-roles"></a>

Un [rôle IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) est une entité de votre AWS compte qui possède des autorisations spécifiques.

### Utilisation des informations d'identification temporaires avec API Gateway
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

Vous pouvez utiliser des informations d'identification temporaires pour vous connecter à l’aide de la fédération, endosser un rôle IAM ou encore pour endosser un rôle entre comptes. Vous obtenez des informations d'identification de sécurité temporaires en appelant des opérations d' AWS STS API telles que [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)ou [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html). 

API Gateway prend en charge l'utilisation des informations d'identification temporaires. 

### Rôles liés à un service
<a name="security_iam_service-with-iam-roles-service-linked"></a>

Les [rôles liés aux](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) AWS services permettent aux services d'accéder aux ressources d'autres services pour effectuer une action en votre nom. Les rôles liés à un service s’affichent dans votre compte IAM et sont la propriété du service. Un administrateur IAM peut consulter, mais ne peut pas modifier, les autorisations concernant les rôles liés à un service.

API Gateway prend en charge les rôles liés au service. Pour plus d'informations sur la création ou la gestion des rôles liés à un service API Gateway, consultez [Utilisation de rôles liés à un service pour API Gateway](using-service-linked-roles.md).

### Rôles de service
<a name="security_iam_service-with-iam-roles-service"></a>

Un service peut endosser un [rôle de service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) en votre nom. Un rôle de service autorise le service à accéder à des ressources d'autres services pour effectuer une action en votre nom. Sachant que les fonctions du service apparaissent dans votre compte IAM et qu'elles sont la propriété du compte, un administrateur peut modifier les autorisations associées à ce rôle. Toutefois, une telle action peut perturber le bon fonctionnement du service.

API Gateway prend en charge les rôles de service. 

# Exemples de stratégie basée sur l'identité d'Amazon API Gateway
<a name="security_iam_id-based-policy-examples"></a>

Par défaut, les utilisateurs et rôles IAM ne sont pas autorisés à créer ou modifier les ressources API Gateway. Ils ne peuvent pas non plus effectuer de tâches à l'aide du AWS Management Console AWS CLI, ou AWS SDKs. Un administrateur IAM doit créer des politiques IAM autorisant les utilisateurs et les rôles à exécuter des opérations d'API spécifiques sur les ressources spécifiées dont ils ont besoin. Il doit ensuite attacher ces stratégies aux utilisateurs ou aux groupes IAM ayant besoin de ces autorisations.

Pour plus d'informations sur la création de stratégies IAM, consultez la section [Création de stratégies sous l'onglet JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) du *Guide de l'utilisateur IAM*. Pour plus d'informations sur les actions, les ressources et les conditions spécifiques à API Gateway, voir [Actions, ressources et clés de condition pour Amazon API Gateway Management](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonapigatewaymanagement.html) et [Actions, ressources et clés de condition pour Amazon API Gateway Management V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonapigatewaymanagementv2.html).

**Topics**
+ [Bonnes pratiques en matière de politiques](#security_iam_service-with-iam-policy-best-practices)
+ [Autorisation accordée aux utilisateurs pour afficher leurs propres autorisations](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Autorisations de lecture simple](#api-gateway-policy-example-apigateway-general)
+ [Créer uniquement des mécanismes d'autorisation REQUEST ou JWT](#security_iam_id-based-policy-examples-v2-import)
+ [Exiger que le point de terminaison `execute-api` par défaut soit désactivé](#security_iam_id-based-policy-examples-v2-endpoint-status)
+ [Permettre aux utilisateurs de créer ou de mettre à jour uniquement un REST privé APIs](#security_iam_id-based-policy-examples-private-api)
+ [Exiger que les routes d'API disposent d'une autorisation](#security_iam_id-based-policy-examples-require-authorization)
+ [Empêcher un utilisateur de créer ou de mettre à jour un lien VPC](#security_iam_id-based-policy-examples-deny-vpc-link)
+ [Exemples de politiques d’utilisation des règles de routage](#security_iam_id-based-policy-examples-routing-mode)

## Bonnes pratiques en matière de politiques
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Les stratégies basées sur l'identité déterminent si une personne peut créer, consulter ou supprimer des ressources API Gateway dans votre compte. Ces actions peuvent entraîner des frais pour votre Compte AWS. Lorsque vous créez ou modifiez des politiques basées sur l’identité, suivez ces instructions et recommandations :
+ **Commencez AWS par les politiques gérées et passez aux autorisations du moindre privilège : pour commencer à accorder des autorisations** à vos utilisateurs et à vos charges de travail, utilisez les *politiques AWS gérées* qui accordent des autorisations pour de nombreux cas d'utilisation courants. Ils sont disponibles dans votre Compte AWS. Nous vous recommandons de réduire davantage les autorisations en définissant des politiques gérées par les AWS clients spécifiques à vos cas d'utilisation. Pour plus d’informations, consultez [politiques gérées par AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) ou [politiques gérées par AWS pour les activités professionnelles](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) dans le *Guide de l’utilisateur IAM*.
+ **Accordez les autorisations de moindre privilège** : lorsque vous définissez des autorisations avec des politiques IAM, accordez uniquement les autorisations nécessaires à l’exécution d’une seule tâche. Pour ce faire, vous définissez les actions qui peuvent être entreprises sur des ressources spécifiques dans des conditions spécifiques, également appelées *autorisations de moindre privilège*. Pour plus d’informations sur l’utilisation d’IAM pour appliquer des autorisations, consultez [politiques et autorisations dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) dans le *Guide de l’utilisateur IAM*.
+ **Utilisez des conditions dans les politiques IAM pour restreindre davantage l’accès** : vous pouvez ajouter une condition à vos politiques afin de limiter l’accès aux actions et aux ressources. Par exemple, vous pouvez écrire une condition de politique pour spécifier que toutes les demandes doivent être envoyées via SSL. Vous pouvez également utiliser des conditions pour accorder l'accès aux actions de service si elles sont utilisées par le biais d'un service spécifique Service AWS, tel que CloudFormation. Pour plus d’informations, consultez [Conditions pour éléments de politique JSON IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) dans le *Guide de l’utilisateur IAM*.
+ **Utilisez l’Analyseur d’accès IAM pour valider vos politiques IAM afin de garantir des autorisations sécurisées et fonctionnelles** : l’Analyseur d’accès IAM valide les politiques nouvelles et existantes de manière à ce que les politiques IAM respectent le langage de politique IAM (JSON) et les bonnes pratiques IAM. IAM Access Analyzer fournit plus de 100 vérifications de politiques et des recommandations exploitables pour vous aider à créer des politiques sécurisées et fonctionnelles. Pour plus d’informations, consultez [Validation de politiques avec IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) dans le *Guide de l’utilisateur IAM*.
+ **Exiger l'authentification multifactorielle (MFA**) : si vous avez un scénario qui nécessite des utilisateurs IAM ou un utilisateur root, activez l'authentification MFA pour une sécurité accrue. Compte AWS Pour exiger la MFA lorsque des opérations d’API sont appelées, ajoutez des conditions MFA à vos politiques. Pour plus d’informations, consultez [Sécurisation de l’accès aux API avec MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) dans le *Guide de l’utilisateur IAM*.

Pour plus d’informations sur les bonnes pratiques dans IAM, consultez [Bonnes pratiques de sécurité dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dans le *Guide de l’utilisateur IAM*.

## Autorisation accordée aux utilisateurs pour afficher leurs propres autorisations
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Cet exemple montre comment créer une politique qui permet aux utilisateurs IAM d’afficher les politiques en ligne et gérées attachées à leur identité d’utilisateur. Cette politique inclut les autorisations permettant d'effectuer cette action sur la console ou par programmation à l'aide de l'API AWS CLI or AWS .

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## Autorisations de lecture simple
<a name="api-gateway-policy-example-apigateway-general"></a>

Cet exemple de politique autorise un utilisateur à obtenir des informations sur toutes les ressources d'un HTTP ou d'une WebSocket API dont l'identifiant est `a123456789` in the AWS Region of us-east-1. La ressource `arn:aws:apigateway:us-east-1::/apis/a123456789/*` inclut toutes les sous-ressources de l'API, comme les mécanismes d'autorisation et les déploiements.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "apigateway:GET"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis/a123456789/*"
      ]
    }
  ]
}
```

------

## Créer uniquement des mécanismes d'autorisation REQUEST ou JWT
<a name="security_iam_id-based-policy-examples-v2-import"></a>

Cet exemple de politique permet à un utilisateur de créer uniquement APIs avec `REQUEST` ou avec `JWT` des autorisateurs, y compris par [importation](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis.html#ImportApi). Dans la section `Resource` de la stratégie, `arn:aws:apigateway:us-east-1::/apis/??????????` exige que les ressources comportent un maximum de 10 caractères, ce qui exclut les sous-ressources d'une API. Cet exemple utilise `ForAllValues` dans la section `Condition` car les utilisateurs peuvent créer plusieurs mécanismes d'autorisation à la fois en important une API.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "OnlyAllowSomeAuthorizerTypes",
      "Effect": "Allow",
      "Action": [
        "apigateway:PUT",
        "apigateway:POST",
        "apigateway:PATCH"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis",
        "arn:aws:apigateway:us-east-1::/apis/??????????",
        "arn:aws:apigateway:us-east-1::/apis/*/authorizers",
        "arn:aws:apigateway:us-east-1::/apis/*/authorizers/*"
      ],
      "Condition": {
        "ForAllValues:StringEqualsIfExists": {
          "apigateway:Request/AuthorizerType": [
            "REQUEST",
            "JWT"
          ]
        }
      }
    }
  ]
}
```

------

## Exiger que le point de terminaison `execute-api` par défaut soit désactivé
<a name="security_iam_id-based-policy-examples-v2-endpoint-status"></a>

 Cet exemple de stratégie permet aux utilisateurs de créer, de mettre à jour ou d'importer une API, avec l'exigence que `DisableExecuteApiEndpoint` soit `true`. Lorsque `DisableExecuteApiEndpoint` est `true`, les clients ne peuvent pas utiliser le point de terminaison `execute-api` par défaut pour appeler une API.

Nous utilisons la condition `BoolIfExists` pour gérer un appel visant à mettre à jour une API pour laquelle la clé de condition `DisableExecuteApiEndpoint` n'est pas renseignée. Lorsqu'un utilisateur tente de créer ou d'importer une API, la clé de condition `DisableExecuteApiEndpoint` est toujours renseignée.

Comme la `apis/*` ressource capture également des sous-ressources telles que les autorisateurs ou les méthodes, nous la définissons explicitement à l' APIs aide d'une simple `Deny` instruction.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DisableExecuteApiEndpoint",
      "Effect": "Allow",
      "Action": [
        "apigateway:PATCH",
        "apigateway:POST",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis",
        "arn:aws:apigateway:us-east-1::/apis/*"
      ],
      "Condition": {
        "BoolIfExists": {
          "apigateway:Request/DisableExecuteApiEndpoint": true
        }
      }
    },
    {
      "Sid": "ScopeDownToJustApis",
      "Effect": "Deny",
      "Action": [
        "apigateway:PATCH",
        "apigateway:POST",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis/*/*"
      ]
    }
  ]
}
```

------

## Permettre aux utilisateurs de créer ou de mettre à jour uniquement un REST privé APIs
<a name="security_iam_id-based-policy-examples-private-api"></a>

Cet exemple de politique utilise des clés de condition pour obliger un utilisateur à créer uniquement `PRIVATE` APIs et pour empêcher les mises à jour susceptibles de modifier le type `PRIVATE` d'une API, par exemple`REGIONAL`.

Nous utilisons `ForAllValues` pour exiger que chaque `EndpointType` ajouté à une API soit `PRIVATE`. Nous utilisons une clé de condition de ressource pour autoriser toute mise à jour d'une API à condition qu'elle soit de type `PRIVATE`. `ForAllValues` s’applique uniquement si une clé de condition est présente. 

Nous utilisons le matcher (`?`), qui n'est pas gourmand, pour établir une correspondance explicite avec l'API afin d'empêcher l'autorisation de ressources non IDs liées à l'API, telles que les autorisateurs.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ScopePutToPrivateApis",
            "Effect": "Allow",
            "Action": [
                "apigateway:PUT"
            ],
            "Resource": [
                "arn:aws:apigateway:us-east-1::/restapis",
                "arn:aws:apigateway:us-east-1::/restapis/??????????"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "apigateway:Resource/EndpointType": "PRIVATE"
                }
            }
        },
        {
            "Sid": "ScopeToPrivateApis",
            "Effect": "Allow",
            "Action": [
                "apigateway:DELETE",
                "apigateway:PATCH",
                "apigateway:POST"
            ],
            "Resource": [
                "arn:aws:apigateway:us-east-1::/restapis",
                "arn:aws:apigateway:us-east-1::/restapis/??????????"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "apigateway:Request/EndpointType": "PRIVATE",
                    "apigateway:Resource/EndpointType": "PRIVATE"
                }
            }
        },
        {
            "Sid": "AllowResourcePolicyUpdates",
            "Effect": "Allow",
            "Action": [
                "apigateway:UpdateRestApiPolicy"
            ],
            "Resource": [
                "arn:aws:apigateway:us-east-1::/restapis/*"
            ]
        }
    ]
}
```

------

## Exiger que les routes d'API disposent d'une autorisation
<a name="security_iam_id-based-policy-examples-require-authorization"></a>

Cette stratégie entraîne l'échec des tentatives de création ou de mise à jour d'une route (y compris par le biais d'une [importation](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis.html#ImportApi)) si celle-ci ne dispose d'aucune autorisation. `ForAnyValue` prend la valeur false en l'absence de la clé, par exemple lorsqu'une route n'est pas créée ou mise à jour. Nous utilisons `ForAnyValue` car plusieurs acheminements peuvent être créées par le biais d'une importation.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowUpdatesOnApisAndRoutes",
      "Effect": "Allow",
      "Action": [
        "apigateway:POST",
        "apigateway:PATCH",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis",
        "arn:aws:apigateway:us-east-1::/apis/??????????",
        "arn:aws:apigateway:us-east-1::/apis/*/routes",
        "arn:aws:apigateway:us-east-1::/apis/*/routes/*"
      ]
    },
    {
      "Sid": "DenyUnauthorizedRoutes",
      "Effect": "Deny",
      "Action": [
        "apigateway:POST",
        "apigateway:PATCH",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis",
        "arn:aws:apigateway:us-east-1::/apis/*"
      ],
      "Condition": {
        "ForAnyValue:StringEqualsIgnoreCase": {
          "apigateway:Request/RouteAuthorizationType": "NONE"
        }
      }
    }
  ]
}
```

------

## Empêcher un utilisateur de créer ou de mettre à jour un lien VPC
<a name="security_iam_id-based-policy-examples-deny-vpc-link"></a>

Cette politique empêche un utilisateur de créer ou de mettre à jour un lien VPC Un lien VPC vous permet d'exposer des ressources dans un VPC Amazon à des clients en dehors du VPC.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyVPCLink",
      "Effect": "Deny",
      "Action": [
        "apigateway:POST",
        "apigateway:PUT",
        "apigateway:PATCH"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/vpclinks",
        "arn:aws:apigateway:us-east-1::/vpclinks/*"
      ]
    }
  ]
}
```

------

## Exemples de politiques d’utilisation des règles de routage
<a name="security_iam_id-based-policy-examples-routing-mode"></a>

Les exemples de politiques suivants montrent comment utiliser les clés de RoutingRule condition pour contrôler la manière dont les utilisateurs peuvent acheminer le trafic de leurs noms de domaine personnalisés vers leur REST APIs. Vous pouvez utiliser ces exemples pour créer des politiques détaillées concernant les règles de routage que les utilisateurs peuvent définir. Pour de plus amples informations, veuillez consulter [Règles de routage pour connecter les étapes de l'API à un nom de domaine personnalisé pour REST APIs](rest-api-routing-rules.md).

### Méthode pour empêcher un utilisateur de modifier la façon dont un nom de domaine personnalisé achemine une demande
<a name="security_iam_id-based-policy-examples-routing-mode-1"></a>

Cette politique empêche un utilisateur de créer ou de mettre à jour `BasePathMapping`, `ApiMapping` ou `RoutingRule`. Toutes ces ressources peuvent modifier la manière dont un nom de domaine personnalisé achemine les demandes APIs.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyAccessBasePathMappingsApiMappingsRoutingRules",
      "Effect": "Deny",
      "Action": "apigateway:*",
      "Resource": [
        "arn:aws:apigateway:us-east-1::/domainnames/example.com/basepathmappings/*",
        "arn:aws:apigateway:us-east-1::/domainnames/example.com/apimappings/*",
        "arn:aws:apigateway:us-east-1:111122223333:/domainnames/example.com/routingrules/*"
      ]
    }
  ]
}
```

------

### Autorisation d’un utilisateur à mettre à jour certaines priorités d’une règle de routage
<a name="security_iam_id-based-policy-examples-routing-mode-2"></a>

Cette politique autorise un utilisateur à modifier la priorité d’une règle de routage entre 1 001 et 2 000. Vous pouvez utiliser cette règle pour séparer vos règles de production des règles de priorité inférieure, puis autoriser les utilisateurs à modifier les règles de priorité inférieure sans affecter les règles de production.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "UpdatingRoutingRulePriorityBetween1001And2000",
      "Effect": "Allow",
      "Action": "apigateway:UpdateRoutingRule",
      "Resource": "arn:aws:apigateway:us-east-1:111122223333:/domainnames/example.com/routingrules/*",
      "Condition": {
        "NumericGreaterThanEquals": {
          "apigateway:Resource/Priority": 1001,
          "apigateway:Request/Priority": 1001
        },
       "NumericLessThanEquals": {
          "apigateway:Resource/Priority": 2000,
          "apigateway:Request/Priority": 2000
        } 
      }
    }
  ]
}
```

------

### Autorisation d’un utilisateur à mettre à jour une règle de routage ou un mappage de chemin de base pour une certaine valeur de chemin de base
<a name="security_iam_id-based-policy-examples-routing-mode-3"></a>

Cette politique autorise un utilisateur à mettre à jour un mappage de chemin de base uniquement pour les chemins de base commençant par `orders`, ou à mettre à jour une règle de routage correspondant à un chemin de base commençant par `orders`. Dans cette politique, un utilisateur peut mettre à jour un mappage de chemin de base ou une règle de routage pour `orders/create` ou `orders123`, mais pas pour `payment/orders`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
      {
        "Sid": "AllowUpdateRoutingRuleUnderPathOrders",
        "Effect": "Allow",
        "Action": "apigateway:UpdateRoutingRule",
        "Resource": "arn:aws:apigateway:us-east-1:111122223333:/domainnames/example.com/routingrules/*",
        "Condition": {
            "ForAllValues:StringLike": {
                "apigateway:Request/ConditionBasePaths": ["orders*"],
                "apigateway:Resource/ConditionBasePaths": ["orders*"]
            },
            "Null":{
                 "apigateway:Request/ConditionBasePaths":"false",
                 "apigateway:Resource/ConditionBasePaths":"false"             
          }
        }
      }
  ]
}
```

------

### Autorisation d’un utilisateur à mettre à jour des valeurs spécifiques du mode de routage
<a name="security_iam_id-based-policy-examples-routing-mode-4"></a>

Cette politique autorise un utilisateur à remplacer le mode de routage par `API_MAPPING_ONLY` et `ROUTING_RULE_THEN_API_MAPPING` uniquement. Pour plus d’informations sur le mode de routage, consultez [Définition du mode de routage de votre nom de domaine personnalisé](set-routing-mode.md).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
        {
           "Sid": "AllowUpdateRoutingModeToAnythingWithApiMapping",
           "Effect": "Allow",
           "Action": ["apigateway:PATCH"],
           "Resource": "arn:aws:apigateway:us-east-1::/domainnames/example.com",
              "Condition": {
               "StringLike": {
                   "apigateway:Request/RoutingMode":"*API_MAPPING*"
               }
           }
       }
    ]
}
```

------

# Exemples de politique basée sur les ressources d'Amazon API Gateway
<a name="security_iam_resource-based-policy-examples"></a>

Pour accéder à des exemples de stratégies basées sur les ressources, veuillez consulter [Exemples de politiques de ressources API Gateway](apigateway-resource-policies-examples.md).

# Résolution des problèmes d'identité et d'accès à Amazon API Gateway
<a name="security_iam_troubleshoot"></a>

Utilisez les informations suivantes pour identifier et résoudre les problèmes courants que vous pouvez rencontrer lorsque vous travaillez avec API Gateway et IAM.

**Topics**
+ [Je ne suis pas autorisé à effectuer une action dans API Gateway](#security_iam_troubleshoot-no-permissions)
+ [Je ne suis pas autorisé à effectuer iam : PassRole](#security_iam_troubleshoot-passrole)
+ [Je souhaite autoriser des personnes extérieures à mon AWS compte à accéder à mes ressources API Gateway](#security_iam_troubleshoot-cross-account-access)

## Je ne suis pas autorisé à effectuer une action dans API Gateway
<a name="security_iam_troubleshoot-no-permissions"></a>

Si vous recevez une erreur qui indique que vous n’êtes pas autorisé à effectuer une action, vos politiques doivent être mises à jour afin de vous permettre d’effectuer l’action.

L’exemple d’erreur suivant se produit quand l’utilisateur IAM `mateojackson` tente d’utiliser la console pour afficher des informations détaillées sur une ressource `my-example-widget` fictive, mais ne dispose pas des autorisations `apigateway:GetWidget` fictives.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: apigateway:GetWidget on resource: my-example-widget because no identity-based policy allows the GetWidget action 
```

Dans ce cas, la politique qui s’applique à l’utilisateur `mateojackson` doit être mise à jour pour autoriser l’accès à la ressource `my-example-widget` à l’aide de l’action `apigateway:GetWidget`.

Si vous avez besoin d'aide, contactez votre AWS administrateur. Votre administrateur vous a fourni vos informations d’identification de connexion.

## Je ne suis pas autorisé à effectuer iam : PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Si vous recevez un message d'erreur selon lequel vous n'êtes pas autorisé à effectuer l'action `iam:PassRole`, vos stratégies doivent être mises à jour pour vous permettre de transmettre un rôle à API Gateway.

Certains vous Services AWS permettent de transmettre un rôle existant à ce service au lieu de créer un nouveau rôle de service ou un rôle lié à un service. Pour ce faire, vous devez disposer des autorisations nécessaires pour transmettre le rôle au service.

L'exemple d'erreur suivant se produit lorsqu'un utilisateur IAM nommé `marymajor` essaie d'utiliser la console pour exécuter une action dans API Gateway. Toutefois, l'action nécessite que le service ait des autorisations accordées par une fonction du service. Mary n'est pas autorisée à transmettre le rôle au service.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

Dans ce cas, les politiques de Mary doivent être mises à jour pour lui permettre d’exécuter l’action `iam:PassRole`.

Si vous avez besoin d'aide, contactez votre AWS administrateur. Votre administrateur vous a fourni vos informations d’identification de connexion.

## Je souhaite autoriser des personnes extérieures à mon AWS compte à accéder à mes ressources API Gateway
<a name="security_iam_troubleshoot-cross-account-access"></a>

Vous pouvez créer un rôle que les utilisateurs provenant d’autres comptes ou les personnes extérieures à votre organisation pourront utiliser pour accéder à vos ressources. Vous pouvez spécifier qui est autorisé à assumer le rôle. Pour les services qui prennent en charge les politiques basées sur les ressources ou les listes de contrôle d'accès (ACLs), vous pouvez utiliser ces politiques pour autoriser les utilisateurs à accéder à vos ressources.

Pour plus d’informations, consultez les éléments suivants :
+ Pour savoir si API Gateway prend en charge ces fonctions, veuillez consulter [Fonctionnement d'Amazon API Gateway avec IAM](security_iam_service-with-iam.md).
+ Pour savoir comment fournir l'accès à vos ressources sur celles Comptes AWS que vous possédez, consultez la section [Fournir l'accès à un utilisateur IAM dans un autre utilisateur Compte AWS que vous possédez](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) dans le Guide de l'*utilisateur IAM*.
+ Pour savoir comment fournir l'accès à vos ressources à des tiers Comptes AWS, consultez la section [Fournir un accès à des ressources Comptes AWS détenues par des tiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) dans le *guide de l'utilisateur IAM*.
+ Pour savoir comment fournir un accès par le biais de la fédération d’identité, consultez [Fournir un accès à des utilisateurs authentifiés en externe (fédération d’identité)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) dans le *Guide de l’utilisateur IAM*.
+ Pour en savoir plus sur la différence entre l’utilisation des rôles et des politiques basées sur les ressources pour l’accès intercompte, consultez [Accès intercompte aux ressources dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) dans le *Guide de l’utilisateur IAM*.

# Utilisation de rôles liés à un service pour API Gateway
<a name="using-service-linked-roles"></a>

Amazon API Gateway utilise des rôles Gestion des identités et des accès AWS liés à un [service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) (IAM). Un rôle lié à un service est un type unique de rôle IAM lié directement à API Gateway. Les rôles liés à un service sont prédéfinis par API Gateway et incluent toutes les autorisations dont le service a besoin pour appeler d'autres AWS services en votre nom. 

Un rôle lié à un service simplifie la configuration d’API Gateway, car vous n’avez pas besoin d’ajouter manuellement les autorisations requises. API Gateway définit les autorisations de ses rôles liés à un service et, sauf définition contraire, seul API Gateway peut endosser ses rôles. Les autorisations définies comprennent la politique d’approbation et la politique d’autorisation. De plus, cette politique d’autorisation ne peut pas être attachée à une autre entité IAM.

Vous pouvez supprimer un rôle lié à un service uniquement après la suppression préalable des ressources connexes. Vos ressources API Gateway sont ainsi protégées, car vous ne pouvez pas involontairement supprimer l’autorisation d’accès aux ressources.

Pour plus d’informations sur les autres services qui prennent en charge les rôles liés à un service, consultez [Services AWS qui fonctionnent avec IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) et recherchez les services avec un **Oui ** dans la colonne **Rôle lié à un service**. Choisissez un **Oui** ayant un lien permettant de consulter la documentation du rôle lié à un service, pour ce service.

## Autorisations des rôles liés à un service pour API Gateway
<a name="slr-permissions"></a>

API Gateway utilise le rôle lié au service nommé **AWSServiceRoleForAPIGateway**— Permet à API Gateway d'accéder à Elastic Load Balancing, Amazon Data Firehose et à d'autres ressources de service en votre nom.

Le rôle AWSService RoleFor APIGateway lié à un service fait confiance aux services suivants pour assumer le rôle :
+ `ops.apigateway.amazonaws.com`

La politique d’autorisations liée au rôle permet à API Gateway de réaliser les actions suivantes sur les ressources spécifiées :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:AddListenerCertificates",
                "elasticloadbalancing:RemoveListenerCertificates",
                "elasticloadbalancing:ModifyListener",
                "elasticloadbalancing:DescribeListeners",
                "elasticloadbalancing:DescribeLoadBalancers",
                "xray:PutTraceSegments",
                "xray:PutTelemetryRecords",
                "xray:GetSamplingTargets",
                "xray:GetSamplingRules",
                "logs:CreateLogDelivery",
                "logs:GetLogDelivery",
                "logs:UpdateLogDelivery",
                "logs:DeleteLogDelivery",
                "logs:ListLogDeliveries",
                "servicediscovery:DiscoverInstances"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "firehose:DescribeDeliveryStream",
                "firehose:PutRecord",
                "firehose:PutRecordBatch"
            ],
            "Resource": "arn:aws:firehose:*:*:deliverystream/amazon-apigateway-*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "acm:DescribeCertificate",
                "acm:GetCertificate"
            ],
            "Resource": "arn:aws:acm:*:*:certificate/*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateNetworkInterfacePermission",
            "Resource": "arn:aws:ec2:*:*:network-interface/*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:*:*:network-interface/*",
            "Condition": {
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "Owner",
                        "VpcLinkId"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:DeleteNetworkInterface",
                "ec2:AssignPrivateIpAddresses",
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterfacePermission",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeNetworkInterfaceAttribute",
                "ec2:DescribeVpcs",
                "ec2:DescribeNetworkInterfacePermissions",
                "ec2:UnassignPrivateIpAddresses",
                "ec2:DescribeSubnets",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSecurityGroups"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "servicediscovery:GetNamespace",
            "Resource": "arn:aws:servicediscovery:*:*:namespace/*"
        },
        {
            "Effect": "Allow",
            "Action": "servicediscovery:GetService",
            "Resource": "arn:aws:servicediscovery:*:*:service/*"
        }
    ]
}
```

------

Vous devez configurer les autorisations de manière à permettre à une entité IAM (comme un utilisateur, un groupe ou un rôle) de créer, modifier ou supprimer un rôle lié à un service. Pour plus d’informations, consultez [Service-Linked Role Permissions (autorisations du rôle lié à un service)](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) dans le *Guide de l’utilisateur IAM*.

## Création d’un rôle lié à un service pour API Gateway
<a name="create-slr"></a>

Vous n’avez pas besoin de créer manuellement un rôle lié à un service. Lorsque vous créez une API, un nom de domaine personnalisé ou un lien VPC dans l' AWS Management Console AWS API AWS CLI, API Gateway crée le rôle lié au service pour vous. 

Si vous supprimez ce rôle lié à un service et que vous avez ensuite besoin de le recréer, vous pouvez utiliser la même procédure pour recréer le rôle dans votre compte. Lorsque vous créez une API, un nom de domaine personnalisé ou un lien VPC, API Gateway crée à nouveau le rôle lié à un service pour vous. 

## Modification d’un rôle lié à un service pour API Gateway
<a name="edit-slr"></a>

API Gateway ne vous permet pas de modifier le rôle AWSService RoleFor APIGateway lié au service. Une fois que vous avez créé un rôle lié à un service, vous ne pouvez pas changer le nom du rôle, car plusieurs entités peuvent faire référence au rôle. Néanmoins, vous pouvez modifier la description du rôle à l’aide d’IAM. Pour en savoir plus, consultez [Modification d’un rôle lié à un service](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role) dans le *Guide de l’utilisateur IAM*.

## Suppression d’un rôle lié à un service pour API Gateway
<a name="delete-slr"></a>

Si vous n’avez plus besoin d’utiliser une fonction ou un service qui nécessite un rôle lié à un service, nous vous recommandons de supprimer ce rôle. De cette façon, vous n’avez aucune entité inutilisée qui n’est pas surveillée ou gérée activement. Cependant, vous devez nettoyer les ressources de votre rôle lié à un service avant de pouvoir les supprimer manuellement.

**Note**  
Si le service API Gateway utilise le rôle lorsque vous essayez de supprimer les ressources, la suppression peut échouer. Si cela se produit, patientez quelques minutes et réessayez.

**Pour supprimer les ressources API Gateway utilisées par AWSService RoleFor APIGateway**

1. Ouvrez la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway/](https://console.aws.amazon.com/apigateway/). 

1. Accédez à l’API, au nom de domaine personnalisé ou au lien VPC qui utilise le rôle lié à un service.

1. Utilisez la console pour supprimer la ressource.

1. Répétez la procédure pour supprimer tous les APIs noms de domaine personnalisés ou les liens VPC qui utilisent le rôle lié à un service.

**Pour supprimer manuellement le rôle lié au service à l’aide d’IAM**

Utilisez la console IAM, le AWS CLI, ou l' AWS API pour supprimer le rôle lié au AWSService RoleFor APIGateway service. Pour plus d’informations, consultez [Suppression d’un rôle lié à un service](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role) dans le *Guide de l’utilisateur IAM*.

## Régions prises en charge pour les rôles liés à un service API Gateway
<a name="slr-regions"></a>

API Gateway prend en charge l’utilisation des rôles liés à un service dans toutes les régions où le service est disponible. Pour plus d’informations, consultez [Points de terminaison du service AWS](https://docs.aws.amazon.com/general/latest/gr/rande.html).

## Mises à jour des politiques AWS gérées par API Gateway
<a name="security-iam-awsmanpol-updates"></a>



Consultez les détails des mises à jour apportées aux politiques AWS gérées pour API Gateway depuis que ce service a commencé à suivre ces modifications. Pour obtenir des alertes automatiques concernant les modifications apportées à cette page, abonnez-vous au flux RSS de la page d’[historique API Gateway Document](history.md).


| Modification | Description | Date | 
| --- | --- | --- | 
|  Ajout de la prise en charge de `acm:GetCertificate` à la politique `AWSServiceRoleForAPIGateway`.  |  La politique `AWSServiceRoleForAPIGateway` inclut désormais l’autorisation d’appeler l’action d’API `GetCertificate` ACM.  | 12 Juillet 2021 | 
|  API Gateway a commencé à suivre les modifications  |  API Gateway a commencé à suivre les modifications apportées AWS à ses politiques gérées.  | 12 Juillet 2021 | 