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éation et attachement d’une politique de ressources API Gateway à une API
Pour permettre à un utilisateur d’accéder à votre API en appelant le service d’exécution des API, vous devez créer une politique de ressources API Gateway et l’attacher à l’API. Lorsque vous attachez une politique votre API, celle-ci applique les autorisations de la politique aux méthodes de l’API. En cas de mise à jour de la politique de ressources, vous devrez déployer l’API.
Prérequis
Pour mettre à jour une politique de ressources API Gateway, vous devez disposer des autorisations apigateway:UpdateRestApiPolicy
et apigateway:PATCH
.
Pour une API optimisée pour la périphérie ou régionale, vous pouvez attacher votre politique de ressources à votre API lors de sa création ou après son déploiement. Pour une API privée, vous ne pouvez pas déployer votre API sans politique de ressources. Pour de plus amples informations, veuillez consulter REST privé APIs dans API Gateway.
Attachement d’une politique de ressources à une API API Gateway
La procédure suivante vous montre comment attacher une politique de ressources à une API API Gateway.
- AWS Management Console
-
Pour attacher une politique de ressources à une API API Gateway
Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.
Choisissez une API REST.
-
Dans le panneau de navigation principal, choisissez Stratégie de ressources.
-
Choisissez Create Policy (Créer une stratégie).
-
(Facultatif) Choisissez Sélectionnez un modèle pour générer un exemple de politique.
Dans les exemples de politiques, 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.
Si vous n’utilisez pas l’un des exemples de modèle, entrez votre politique de ressources.
-
Sélectionnez Enregistrer les modifications.
Si l’API a déjà été déployée dans la console API Gateway, vous devez la redéployer pour que la politique de ressources prenne effet.
- AWS CLI
-
AWS CLI Pour créer une nouvelle API et y associer une politique de ressources, utilisez la create-rest-apicommande suivante :
aws apigateway create-rest-api \
--name "api-name
" \
--policy "{\"jsonEscapedPolicyDocument
\"}"
AWS CLI Pour associer une politique de ressources à une API existante, utilisez la update-rest-apicommande suivante :
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. La create-rest-apicommande suivante crée une nouvelle API avec une politique de ressources :
aws apigateway create-rest-api \
--name "api-name
" \
--policy file://policy.json
policy.json
est une politique de ressources API Gateway, comme Exemple : refuser le trafic API en fonction de l’adresse IP source ou de la plage.
- AWS CloudFormation
-
Vous pouvez l'utiliser AWS CloudFormation pour créer une API avec une politique de ressources. L’exemple suivant crée une API REST avec l’exemple de politique de ressources Exemple : refuser le trafic API 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
RequestTemplates:
application/json: '{"statusCode": 200}'
IntegrationResponses:
- StatusCode: 200
ResponseTemplates:
application/json: '{}'
MethodResponses:
- StatusCode: 200
ResponseModels:
application/json: 'Empty'
ApiDeployment:
Type: 'AWS::ApiGateway::Deployment'
DependsOn:
- MethodGet
Properties:
RestApiId: !Ref Api
StageName: test
Résolution des problèmes liés à votre politique de ressources
Les conseils suivants peuvent vous aider à résoudre les problèmes liés à votre politique de ressources.
Mon API renvoie {"Message":"L’utilisateur: anonyme n’est pas autorisé à exécuter : execute-api:Invoke sur la ressource : arn:aws:execute-api:us-east-1:********/****/****/"}
Dans votre politique de ressources, si vous attribuez au principal un AWS principal, tel que ce qui suit :
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::111111111111:role/developer",
"arn:aws:iam::111111111111:role/Admin"
]
},
"Action": "execute-api:Invoke",
"Resource": [
"execute-api:/stage/GET/pets"
]
}
]
}
Vous devez utiliser l’autorisation AWS_IAM
pour chaque méthode de votre API, sinon votre API renvoie le message d’erreur précédent. Pour plus d’instructions sur l’activation de l’autorisation AWS_IAM
pour une méthode, consultez Méthodes pour REST APIs dans API Gateway.
Ma politique de ressources n’est pas mise à jour
Si vous mettez à jour la politique de ressources une fois l’API créée, vous devez déployer l’API pour propager les changements une fois le rattachement de la politique mise à jour effectué. La simple mise à jour ou le simple enregistrement de la politique ne modifie pas le comportement d’exécution de l’API. Pour plus d’informations sur le déploiement de votre API, consultez Déployer 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 principaux sont valides.
Pour corriger cette erreur, nous vous recommandons de vérifier d’abord 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 votre API se trouve dans une région d’acceptation, vérifiez que la région est activée pour tous les comptes de la politique de ressources.