Créez et attachez une politique de ressources de API passerelle à un API - APIPasserelle Amazon

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.

Créez et attachez une politique de ressources de API passerelle à un API

Pour autoriser un utilisateur à accéder à votre API en appelant le service API d'exécution, vous devez créer une politique de ressources API Gateway et associer cette politique auAPI. Lorsque vous attachez une politique à votreAPI, elle applique les autorisations de la politique aux méthodes duAPI. Si vous mettez à jour la politique en matière de ressources, vous devrez déployer leAPI.

Prérequis

Pour mettre à jour une politique de ressources API Gateway, vous aurez besoin de l'apigateway:UpdateRestApiPolicyautorisation et de l'apigateway:PATCHautorisation.

Dans le cas d'une stratégie régionale ou optimisée pour les périphériquesAPI, vous pouvez y associer votre politique API de ressources au moment de sa création ou après son déploiement. Pour un compte privéAPI, vous ne pouvez pas déployer le vôtre API sans politique de ressources. Pour de plus amples informations, veuillez consulter Privé REST APIs dans API Gateway.

Associer une politique de ressources à une API passerelle API

La procédure suivante explique comment associer une politique de ressources à une API passerelleAPI.

AWS Management Console
Pour associer une politique de ressources à une API passerelle API
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Choisissez un RESTAPI.

  3. Dans le panneau de navigation principal, choisissez Stratégie de ressources.

  4. Choisissez Create Policy (Créer une politique).

  5. (Facultatif) Choisissez Sélectionnez un modèle pour générer un exemple de stratégie.

    Dans les exemples de stratégies, les espaces réservés sont délimitées par des doubles accolades ("{{placeholder}}"). Remplacez chacun des espaces réservés (y compris les accolades) par les informations nécessaires.

  6. Si vous n'utilisez pas l'un des exemples de modèle, entrez votre stratégie de ressources.

  7. Sélectionnez Enregistrer les modifications.

S'il API a déjà été déployé dans la console API Gateway, vous devrez le redéployer pour que la politique de ressources entre en vigueur.

AWS CLI

Pour utiliser le AWS CLI pour créer une nouvelle politique de ressources API et y associer une politique de ressources, appelez la create-rest-apicommande comme suit :

aws apigateway create-rest-api \ --name "api-name" \ --policy "{\"jsonEscapedPolicyDocument\"}"

AWS CLI Pour associer une politique de ressources à une politique existanteAPI, appelez la update-rest-apicommande comme suit :

aws apigateway update-rest-api \ --rest-api-id api-id \ --patch-operations op=replace,path=/policy,value='"{\"jsonEscapedPolicyDocument\"}"'

Vous pouvez également joindre votre politique de ressources dans un policy.json fichier distinct et l'inclure dans votre create-rest-apicommande. L'exemple suivant create-rest-apicrée un nouveau API :

aws apigateway create-rest-api \ --name "api-name" \ --policy file://policy.json

policy.jsonest une politique de ressources de API passerelle, telle queExemple : refuser le API trafic en fonction de l'adresse IP source ou de la plage.

AWS CloudFormation

Vous pouvez l'utiliser AWS CloudFormation pour créer un API avec une politique de ressources. L'exemple suivant crée une REST API avec l'exemple de politique de ressources,Exemple : refuser le API trafic en fonction de l'adresse IP source ou de la plage.

AWSTemplateFormatVersion: 2010-09-09 Resources: Api: Type: 'AWS::ApiGateway::RestApi' Properties: Name: testapi Policy: Statement: - Action: 'execute-api:Invoke' Effect: Allow Principal: '*' Resource: 'execute-api/*' - Action: 'execute-api:Invoke' Effect: Deny Principal: '*' Resource: 'execute-api/*' Condition: IpAddress: 'aws:SourceIp': ["192.0.2.0/24", "198.51.100.0/24" ] Version: 2012-10-17 Resource: Type: 'AWS::ApiGateway::Resource' Properties: RestApiId: !Ref Api ParentId: !GetAtt Api.RootResourceId PathPart: 'helloworld' MethodGet: Type: 'AWS::ApiGateway::Method' Properties: RestApiId: !Ref Api ResourceId: !Ref Resource HttpMethod: GET ApiKeyRequired: false AuthorizationType: NONE Integration: Type: MOCK ApiDeployment: Type: 'AWS::ApiGateway::Deployment' DependsOn: - MethodGet Properties: RestApiId: !Ref Api StageName: test

Résoudre les problèmes liés à votre politique de ressources

Les conseils de dépannage suivants peuvent vous aider à résoudre les problèmes liés à votre politique en matière de ressources.

Mes API retours {"Message » « L'utilisateur : anonymous n'est pas autorisé à effectuer : Execute-API:Invoke on resource : arn:aws:execute-api:us-east-1 : ********/****/****/"}

Dans votre politique de ressources, si vous attribuez au AWS principal un principal, par exemple :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", ""Principal": { "AWS": [ "arn:aws:iam::account-id:role/developer", "arn:aws:iam::account-id:role/Admin" ] }, "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ] }, ... }

Vous devez utiliser AWS_IAM l'autorisation pour chaque méthode de votre API choix, sinon vous API renverrez le message d'erreur précédent. Pour plus d'instructions sur la façon d'activer AWS_IAM l'autorisation pour une méthode, consultezMéthodes pour REST APIs in API Gateway.

Ma politique en matière de ressources n'est pas mise à jour

Si vous mettez à jour la politique de ressources après sa création, vous devrez la déployer API pour propager les modifications une fois que vous aurez joint la politique mise à jour. API La mise à jour ou l'enregistrement de la politique à eux seuls ne modifieront pas le comportement d'exécution duAPI. Pour plus d'informations sur le déploiement de votreAPI, consultezDéploiement REST APIs dans API Gateway.

Ma politique de ressources renvoie l'erreur suivante : Document de politique non valide. Vérifiez la syntaxe de la politique et assurez-vous que les principes sont valides.

Pour résoudre cette erreur, nous vous recommandons tout d'abord de vérifier la syntaxe de la politique. Pour de plus amples informations, veuillez consulter Présentation du langage de la politique d'accès pour Amazon API Gateway. Nous vous recommandons également de vérifier que tous les principaux spécifiés sont valides et n'ont pas été supprimés.

En outre, si vous vous API trouvez dans une région optionnelle, vérifiez que la région est activée sur tous les comptes concernés par la politique de ressources.