Configurer CORS pour HTTP APIs dans API Gateway - 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.

Configurer CORS pour HTTP APIs dans API Gateway

Le partage de ressources entre origines (CORS) est une fonctionnalité de sécurité du navigateur qui limite les HTTP demandes initiées à partir de scripts exécutés dans le navigateur. Si vous ne parvenez pas à accéder à votre compte API et que vous recevez un message d'erreur contenant ce messageCross-Origin Request Blocked, vous devrez peut-être l'activerCORS. Pour plus d'informations, voir Qu'est-ce que c'est CORS ? .

CORSest généralement nécessaire pour créer des applications Web dont l'accès est APIs hébergé sur un domaine ou une origine différents. Vous pouvez activer CORS pour autoriser les demandes qui vous sont adressées API depuis une application Web hébergée sur un autre domaine. Par exemple, si vous êtes API hébergé sur https://{api_id}.execute-api.{region}.amazonaws.com/ et que vous souhaitez vous appeler API depuis une application Web hébergée surexample.com, vous API devez prendre en charge le supportCORS.

Si vous configurez CORS pour unAPI, API Gateway envoie automatiquement une réponse aux OPTIONS demandes préalables au vol, même si aucun OPTIONS itinéraire n'est configuré pour votreAPI. Pour une CORS demande, API Gateway ajoute les CORS en-têtes configurés à la réponse d'une intégration.

Note

Si vous configurez CORS pour unAPI, API Gateway ignore CORS les en-têtes renvoyés par votre intégration principale.

Vous pouvez spécifier les paramètres suivants dans une CORS configuration. Pour ajouter ces paramètres à l'aide de la HTTP API console API Gateway, choisissez Ajouter après avoir saisi votre valeur.

CORSen-têtes CORSpropriété de configuration Exemples de valeur

Access-Control-Allow-Origin

allowOrigins

  • https://www.example.com

  • * ( autoriser toutes les origines)

  • https://* ( autoriser toute origine commençant par https://)

  • http://* ( autoriser toute origine commençant par http://)

Access-Control-Allow-Credentials

allowCredentials

true

Access-Control-Expose-Headers

exposeHeaders

Date x-api-id, *

Access-Control-Max-Age

maxAge

300

Access-Control-Allow-Methods

allowMethods

GET, POST, DELETE, *

Access-Control-Allow-Headers

allowHeaders

Authorization, *

Pour renvoyer CORS des en-têtes, votre demande doit contenir un origin en-tête. Pour la OPTIONS méthode, votre demande doit contenir un origin en-tête et un Access-Control-Request-Method en-tête.

Votre CORS configuration peut ressembler à ce qui suit :

CORSconfiguration pour HTTP APIs

Configuration CORS pour un HTTP API avec un $default itinéraire et un autorisateur

Vous pouvez activer CORS et configurer l'autorisation pour n'importe quel itinéraire d'un HTTPAPI. Lorsque vous activez CORS et autorisez l'$defaultitinéraire, certaines considérations particulières doivent être prises en compte. L'itinéraire $default attrape les demandes pour toutes les méthodes et itinéraires que vous n'avez pas explicitement définies, y compris les demandes OPTIONS. Pour prendre en charge les OPTIONS demandes non autorisées, ajoutez un OPTIONS /{proxy+} itinéraire à votre itinéraire API qui ne nécessite pas d'autorisation et associez une intégration à l'itinéraire. La priorité de l'itinéraire OPTIONS /{proxy+} est supérieure à celle de l'itinéraire $default. Par conséquent, il permet aux clients de vous soumettre des OPTIONS demandes API sans autorisation. Pour plus d'informations sur les priorités de routage, consultez Routage des demandes d'API.

Configurez CORS pour et HTTP API en utilisant le AWS CLI

Vous pouvez utiliser la commande update-api suivante pour activer les CORS demandes provenant de. https://www.example.com

aws apigatewayv2 update-api --api-id api-id --cors-configuration AllowOrigins="https://www.example.com"

Pour plus d'informations, consultez CORSla API référence Amazon API Gateway version 2.