J'ai appelé mon API Amazon API Gateway avec une entité AWS Identity and Access Management (IAM) intercompte (utilisateur ou rôle). J'obtiens une erreur « HTTP 403 Forbidden ».
Résolution
API REST
Pour accéder aux API REST API Gateway, activez l'authentification IAM pour une méthode d'API dans la console API Gateway. Puis, utilisez les stratégies IAM et les stratégies de ressources pour attribuer des autorisations aux utilisateurs de votre API.
Assurez-vous que l'entité IAM intercompte est autorisée à invoquer l'API et qu'elle est autorisée à y accéder dans la stratégie de ressources.
Dans cet exemple, l'authentification IAM est activée pour l'API REST du compte A 111111111. L'utilisateur 1 tente d'invoquer l’API depuis le compte B 999999999. La stratégie IAM suivante est associée à l'utilisateur1 du compte B :
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"execute-api:Invoke",
"execute-api:ManageConnections"
],
"Resource": "arn:aws:execute-api:us-east-1:111111111:AB12CDEF34/*/*/*"
}
]
}
Pour autoriser l'utilisateur IAM du compte B du compte A à invoquer l'accès intercompte, utilisez une stratégie de ressources similaire à la stratégie suivante :
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::999999999:user/User1"
},
"Action": "execute-api:Invoke",
"Resource": "arn:aws:execute-api:us-east-1:111111111:AB12CDEF34/stage/*/*"
}
]
}
Pour plus d'informations, consultez la section Comment puis-je activer l'authentification IAM pour les API REST API Gateway ?
API HTTP
Pour accéder aux API HTTP API Gateway, vous pouvez utiliser l'action d'API sts:AssumeRole pour attribuer un rôle au compte d'API HTTP. Le rôle endossé fournit des informations d'identification de sécurité temporaires qui peuvent être utilisées pour invoquer l'API HTTP dans un autre compte.
Assurez-vous que les informations d'identification de sécurité temporaires utilisées pour invoquer l'API HTTP sont correctes et qu'elles n'ont pas expiré.
Pour plus d'informations, consultez la section Comment puis-je fournir une autorisation IAM intercompte pour les API HTTP API Gateway ?
Informations connexes
Exemples de stratégies de ressources API Gateway