Comment corriger les erreurs « HTTP 403 Forbidden » lorsque j'appelle mon API avec l'authentification IAM intercomptes pour API Gateway ?

Lecture de 2 minute(s)
0

J'ai appelé mon API Amazon API Gateway avec une entité Gestion des identités et des accès AWS (AWS IAM) intercomptes (utilisateur ou rôle). Je reçois une erreur « HTTP 403 Forbidden ».

Ré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 afin de définir les autorisations des utilisateurs de votre API.

Assurez-vous que l'entité IAM intercomptes dispose des autorisations pour appeler et accéder à l'API dans la politique de ressources.

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

{
  "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 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 ?


Informations connexes

Exemples de politiques de ressources API Gateway

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans