Fonctionnement d'Amazon API Gateway avec IAM - Amazon API Gateway

Fonctionnement d'Amazon API Gateway avec IAM

Avant d'utiliser IAM pour gérer l'accès à API Gateway, vous devez comprendre les fonctions IAM disponibles avec API Gateway. Pour obtenir davantage d'informations sur la manière dont API Gateway et d'autres services AWS fonctionnent avec IAM, veuillez consulter Services AWS qui fonctionnent avec IAM dans le Guide de l'utilisateur IAM.

Stratégies basées sur l'identité d'API Gateway

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, consultezActions, ressources et clés de condition pour Amazon API Gateway ManagementetActions, ressources et clés de condition pour Amazon API Gateway Management V2. 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 dans le Guide de l'utilisateur IAM.

L'exemple suivant illustre une stratégie basée sur l'identité qui permet à un utilisateur de créer ou de mettre à jour des API REST privées uniquement. Pour obtenir plus d'exemples, consultez Exemples de stratégie basée sur l'identité d'Amazon API Gateway.

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

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.

L’expression Action de gestion des API est au format apigateway:action, où action est l’une des actions API Gateway suivantes : GET, POST, PUT, DELETE, PATCH (pour mettre à jour les ressources), ou *, qui correspond à l'ensemble des actions précédentes.

Voici quelques exemples d'expression Action :

  • apigateway:* 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 API Gateway spécifiques, consultez Référence de l'API Amazon API Gateway Version 1 (API REST) et Référence de l'API Amazon API Gateway Version 2 (API WebSocket et HTTP).

Pour plus d’informations, consultez Exemples de stratégie basée sur l'identité d'Amazon API Gateway.

Ressources

Les administrateurs peuvent utiliser les politiques JSON AWS 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. Les instructions doivent inclure un élément Resource ou NotResource. Il est recommandé de définir une ressource à l’aide de son Amazon Resource Name (ARN). Vous pouvez le faire pour des actions qui prennent en charge un type de ressource spécifique, connu sous la dénomination autorisations de niveau ressource.

Pour les actions qui ne sont pas compatibles avec les autorisations de niveau ressource, telles que les opérations de liste, utilisez un caractère générique (*) 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 API REST et les sous-ressources qui appartiennent à un compte spécifique, utilisez le caractère générique (*).

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

Pour accéder à la liste des types de ressources API Gateway et de leurs ARN, consultez Référence Amazon Resource Name (ARN) API Gateway.

Clés de condition

Les administrateurs peuvent utiliser les politiques JSON AWS 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 (ou le bloc Condition) vous permet de spécifier des conditions lorsqu’une instruction est appliquée. L’élément Condition est facultatif. Vous pouvez créer des expressions conditionnelles qui utilisent des opérateurs de condition, tels que les signes égal ou inférieur à, pour faire correspondre la condition de la politique aux valeurs de la demande.

Si vous spécifiez plusieurs éléments Condition dans une instruction, ou plusieurs clés dans un seul élément Condition, AWS les évalue à l’aide d’une opération AND logique. Si vous spécifiez plusieurs valeurs pour une seule clé de condition, AWS évalue la condition à l’aide d’une opération OR logique. Toutes les conditions doivent être remplies avant que les autorisations associées à l’instruction ne soient accordées.

Vous pouvez aussi utiliser des variables d’espace réservé quand vous spécifiez des conditions. Par exemple, vous pouvez accorder à un utilisateur IAM l’autorisation d’accéder à une ressource uniquement si elle est balisée avec son nom d’utilisateur IAM. Pour plus d’informations, consultez Éléments d’une politique IAM : variables et identifications dans le Guide de l’utilisateur IAM.

AWS prend en charge les clés de condition globales et les clés de condition spécifiques à un service. Pour afficher toutes les clés de condition globales AWS, consultez Clés de contexte de condition globale AWS 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 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.

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.

Exemples

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.

Stratégies basées sur les ressources API Gateway

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 stratégies d'autorisations basées sur les ressources pour les API REST. Vous pouvez utiliser des stratégies de ressources pour déterminer qui peut appeler une API REST. Pour plus d’informations, consultez Contrôle d’accès à une API REST avec des politiques de ressources API Gateway.

Exemples

Pour accéder à des exemples de stratégies API Gateway basées sur les ressources, consultez Exemples de politiques de ressources API Gateway.

Autorisation basée sur les balises API Gateway

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 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.

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.

Rôles IAM API Gateway

Un rôle IAM est une entité au sein de votre compte AWS qui dispose d'autorisations spécifiques.

Utilisation des informations d'identification temporaires avec API Gateway

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'API AWS STS comme AssumeRole ou GetFederationToken.

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

Rôles liés à un service

Les rôles liés à un service permettent aux services AWS d’accéder à des ressources dans 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.

Rôles de service

Un service peut endosser un rôle de service 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.