Comment puis-je résoudre les erreurs « HTTP 403 Forbidden » lorsque j'appelle mon API avec l'authentification IAM entre comptes pour API Gateway ?

Dernière mise à jour : 16/09/2022

J'ai appelé mon API Amazon API Gateway avec un intercompte AWS Identity and Access Management (IAM) entité (utilisateur ou rôle). Je reçois une erreur « HTTP 403 Forbidden ». Comment puis-je résoudre ce problème ?

Solution

API REST

Pour accéder aux API REST d'API Gateway, activez l'authentification IAM pour une méthode d'API dans la console API Gateway. Ensuite, utilisez des politiques IAM et de ressources pour définir les autorisations des utilisateurs de votre API.

Assurez-vous que l'entité IAM intercompte dispose des autorisations pour appeler l'API et qu'elle est autorisée à y accéder dans la politique de ressources.

Dans cet exemple, l'API REST du compte A 111111111 a activé l'authentification IAM. L'utilisateur1 essaie d'appeler depuis le compte B 999999999. L'utilisateur1 du compte B est associé à la politique IAM suivante :

}
  ]
    }
      "Resource": "arn:aws:execute-api:us-east-1:111111111:AB12CDEF34/*/*/*"
      ],
        "execute-api:ManageConnections"
        "execute-api:Invoke",
      "Action": [
      "Effect": "Allow",
    {
  "Statement": [
  "Version": "2012-10-17",
{

Pour permettre à l'utilisateur IAM du compte B du compte A d'appeler l'accès entre comptes, utilisez une politique de ressources similaire à la 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 Comment puis-je activer l'authentification IAM pour les API Gateway REST?

API HTTP

Pour accéder aux API HTTP d'API Gateway, vous pouvez utiliser l'action d'API sts:AssumeRole pour attribuer un rôle au compte d'API HTTP. Le rôle assumé fournit des informations d'identification de sécurité temporaires pouvant être utilisées pour appeler l'API HTTP d'un autre compte.

Assurez-vous que les informations d'identification de sécurité temporaires utilisées pour appeler l'API HTTP sont correctes et qu'elles n'ont pas expiré.

Comment puis-je fournir une autorisation IAM intercompte pour les API HTTP d'API Gateway ?


Cet article vous a-t-il été utile ?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?