View a markdown version of this page

Utilisation de politiques de point de terminaison de VPC pour des API privées dans API Gateway - Amazon API Gateway

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.

Utilisation de politiques de point de terminaison de VPC pour des API privées dans API Gateway

Pour améliorer la sécurité de votre API privée, vous pouvez créer une politique de point de terminaison de VPC. La politique de point de terminaison de VPC est une politique de ressources IAM qui est jointe au point de terminaison d’un VPC. Pour plus d’informations, consultez Contrôle de l'accès aux services avec des points de terminaison de VPC.

Vous pouvez créer une politique de point de terminaison de VPC pour exécuter les tâches suivantes.

  • Autoriser uniquement certaines organisations ou ressources à accéder à votre point de terminaison de VPC et à invoquer votre API.

  • Utiliser une seule politique et éviter les politiques basées sur les sessions ou les rôles pour contrôler le trafic à destination de votre API.

  • Renforcez le périmètre de sécurité de votre application lors de la migration d'une application sur site vers AWS.

Considérations d’une politique de point de terminaison de VPC

Tenez compte des points suivants pour votre politique de point de terminaison de VPC :

  • L’identité de l’invocateur est évaluée en fonction de la valeur de l’en-tête Authorization. La politique du point de terminaison du VPC est d’abord évaluée, puis API Gateway évalue la demande en fonction du type d’autorisation configuré dans la demande de méthode. Le tableau suivant montre comment la politique de point de terminaison du VPC est évaluée en fonction du contenu de la valeur d’en-tête Authorization.

    Contenu de la valeur d’en-tête Authorization

    Méthode d’évaluation de la politique de point de terminaison du VPC

    Pas de contenu L’appelant est évalué en tant qu’utilisateur anonyme
    Signature SigV4 ou SigV4a valide L’appelant est évalué en tant qu’identité IAM authentifiée à partir de la signature
    Signature SigV4 ou SigV4a non valide API Gateway refuse l’accès
    Non-SigV4 des informations d'autorisation, telles qu'un jeton au porteur L’appelant est évalué en tant qu’utilisateur anonyme
  • Si votre contrôle d’accès repose sur l’utilisation d’un jeton porteur, tel qu’un mécanisme d’autorisation Lambda ou Amazon Cognito, vous pouvez contrôler votre périmètre de sécurité à l’aide des propriétés de la ressource.

  • Si votre contrôle d’autorisation utilise l’autorisation IAM, vous pouvez contrôler votre périmètre de sécurité en utilisant les propriétés de la ressource et les propriétés du principal.

  • Les politiques de point de terminaison de VPC peuvent être utilisées conjointement avec des politiques de ressources API Gateway. La politique de ressources API Gateway spécifie les principaux pouvant accéder à l’API. La politique de point de terminaison spécifie qui peut accéder au VPC et quelles API peuvent être appelées depuis le point de terminaison du VPC. Votre API privée a besoin d’une politique de ressources, mais il n’est pas nécessaire de créer une politique de point de terminaison de VPC personnalisée.

Exemples de politique de point de terminaison de VPC

Vous pouvez créer des politiques pour les points de terminaison Amazon Virtual Private Cloud pour Amazon API Gateway dans lesquelles vous pouvez spécifier :

  • Le principal qui peut exécuter des actions.

  • Les actions qui peuvent être effectuées.

  • Les ressources qui peuvent avoir des actions exécutées sur elles.

Cela dépend du contenu de votre en-tête d’autorisation. Pour de plus amples informations, veuillez consulter Considérations d’une politique de point de terminaison de VPC. Pour d'autres exemples de politiques, voir Exemples de politiques en matière de périmètre de données sur le GitHub site Web.

Pour attacher la politique au point de terminaison de VPC, vous devez utiliser la console VPC. Pour plus d’informations, consultez Contrôle de l'accès aux services avec des points de terminaison de VPC.

Exemple 1 : politique de point de terminaison de VPC accordant l’accès à deux API

L’exemple de politique suivant accorde l’accès à seulement deux API spécifiques via le point de terminaison de VPC auquel la politique est attachée.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Principal": "*", "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:us-east-1:123412341234:a1b2c3d4e5/*", "arn:aws:execute-api:us-east-1:123412341234:aaaaa11111/*" ] } ] }

Exemple 2 : politique de point de terminaison de VPC accordant l’accès aux méthodes GET

L’exemple de politique suivant accorde aux utilisateurs l’accès aux méthodes GET pour une API spécifique via le point de terminaison de VPC auquel la politique est attachée.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Principal": "*", "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:us-east-1:123412341234:a1b2c3d4e5/stageName/GET/*" ] } ] }

Exemple 3 : politique de point de terminaison de VPC accordant à un utilisateur spécifique l’accès à une API spécifique

L’exemple de politique suivant accorde à un utilisateur spécifique l’accès à une API spécifique via le point de terminaison de VPC auquel la politique est attachée.

Dans ce cas, étant donné que la politique restreint l’accès à des principaux IAM spécifiques, vous devez définir authorizationType sur AWS_IAM ou NONE.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::123412341234:user/MyUser" ] }, "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:us-east-1:123412341234:a1b2c3d4e5/*" ] } ] }

Exemple 4 : politique de point de terminaison de VPC autorisant les utilisateurs à accéder à un nom de domaine personnalisé spécifique et à chaque API mappée à ce domaine

L’exemple de politique suivant autorise les utilisateurs à accéder à un nom de domaine personnalisé spécifique pour des API privées via le point de terminaison de VPC auquel la politique est attachée. Avec cette politique, tant que l’utilisateur a créé une association d’accès au nom de domaine entre le point de terminaison du VPC et le nom de domaine personnalisé et qu’il est autorisé à invoquer le nom de domaine personnalisé et toutes les API privées mappées à celui-ci, il peut invoquer toutes les API mappées à ce nom de domaine personnalisé. Pour de plus amples informations, veuillez consulter Noms de domaine personnalisés pour les API privées dans API Gateway.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "execute-api:Invoke", "Resource": [ "*" ], "Condition": { "ArnEquals": { "execute-api:viaDomainArn": "arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.test.com+f4g5h6" } } } ] }

Exemple 5 : politique de point de terminaison de VPC accordant ou refusant l’accès à des API et à des ressources de domaine spécifiques

L’exemple de politique suivant autorise les utilisateurs à accéder à des API et à des ressources de domaine spécifiques. Avec cette politique, tant que l’utilisateur a créé une association d’accès au nom de domaine entre le point de terminaison du VPC et le nom de domaine personnalisé et qu’il est autorisé à invoquer le nom de domaine personnalisé et toutes les API privées mappées à celui-ci, il peut invoquer toutes les API privées et ressources autorisées du domaine. Pour de plus amples informations, veuillez consulter Noms de domaine personnalisés pour les API privées dans API Gateway.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.test.com+f4g5h6", "arn:aws:execute-api:us-west-2:111122223333:a1b2c3d4e5/*" ] }, { "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:us-west-2:111122223333:a1b2c3d4e5/admin/*", "arn:aws:execute-api:us-west-2:111122223333:bcd123455/*" ] } ] }

Exemple 6 : politique de point de terminaison de VPC accordant ou refusant l’accès aux principaux et aux ressources appartenant à une organisation

L’exemple de politique suivant autorise l’accès aux principaux et aux ressources appartenant à une organisation.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Condition": { "StringEquals": { "aws:ResourceOrgID": "o-abcd1234", "aws:PrincipalOrgID": "o-abcd1234" } }, "Action": "*", "Resource": "*", "Effect": "Allow", "Principal": { "AWS": "*" }, "Sid": "AllowRequestsByOrgsIdentitiesToOrgsResources" } ] }