Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
Come posso risolvere gli errori HTTP 403 di API Gateway?
Quando chiamo la mia API di Gateway Amazon API, visualizzo un errore 403.
Breve descrizione
Quando un client non riesce ad accedere a un URL valido, ricevi un codice di risposta HTTP 403. Il server comprende la richiesta, ma non può soddisfarla a causa di problemi sul lato client.
Le API di API Gateway possono restituire risposte 403 per i motivi seguenti:
Problema | Intestazione di risposta | Messaggio di errore | Causa principale |
Accesso negato | "x-amzn-errortype" = "AccessDeniedException" | "L’utente non è autorizzato ad accedere a questa risorsa con un rifiuto esplicito" | Il chiamante non è autorizzato ad accedere a un'API che utilizza un Lambda Authorizer di API Gateway. |
Accesso negato | "x-amzn-errortype" = "AccessDeniedException" | "L'utente: <user-arn> non è autorizzato a eseguire: execute-api:Invoke sulla risorsa: <api-resource-arn> con un rifiuto esplicito" | Il chiamante non è autorizzato ad accedere a un'API che utilizza l'autorizzazione AWS Identity and Access Management (AWS IAM). Oppure all'API è collegata una policy delle risorse che rifiuta esplicitamente l'accesso al chiamante. Per ulteriori informazioni, consulta Autenticazione IAM e policy delle risorse. |
Accesso negato | "x-amzn-errortype" = "AccessDeniedException" | "L'utente: anonymous non è autorizzato a eseguire: execute-api:Invoke sulla risorsa:<api-resource-arn>" | Il chiamante non è autorizzato ad accedere a un'API che utilizza l'autorizzazione IAM. Oppure all'API è collegata una policy delle risorse che non consente esplicitamente al chiamante di invocare l'API. Per ulteriori informazioni, consulta Autenticazione IAM e policy delle risorse. |
Accesso negato | "x-amzn-errortype" = "AccessDeniedException" | "Il token di sicurezza incluso nella richiesta non è valido." | Il chiamante ha utilizzato chiavi IAM non valide per accedere a un'API che utilizza l'autorizzazione IAM. |
Token di autenticazione mancante | "x-amzn-errortype" = "MissingAuthenticationTokenException" | "Token di autenticazione mancante" | Nella richiesta non è stato trovato un token di autenticazione. |
Token di autenticazione scaduto | "x-amzn-errortype" = "InvalidSignatureException" | "Firma scaduta" | Il token di autenticazione nella richiesta è scaduto. |
La chiave API non è valida | "x-amzn-errortype" = "ForbiddenException" | "Non consentito" | Il chiamante ha utilizzato una chiave API per un metodo che richiede una chiave API, ma la chiave fornita non è corretta. Oppure la chiave API non è associata a un piano di utilizzo associato alla fase. Oppure la chiave API è disattivata o non esiste. |
La firma non è valida | "x-amzn-errortype" = "InvalidSignatureException" | "La firma della richiesta che abbiamo calcolato non corrisponde alla firma fornita. Controlla la tua chiave di accesso segreta AWS e il metodo di firma." | La firma nella richiesta non corrisponde alla firma sul server quando il chiamante accede a un'API che utilizza l'autorizzazione IAM. |
Filtrato da AWS WAF | "x-amzn-errortype" = "ForbiddenException" | "Non consentito" | Il filtro del Web Application Firewall blocca la richiesta quando AWS WAF è attivato nell'API. |
Il percorso della risorsa non esiste | "x-amzn-errortype" = "MissingAuthenticationTokenException" | "Token di autenticazione mancante" | Una richiesta senza intestazione "Authorization" viene inviata a un percorso di una risorsa API inesistente. Per ulteriori informazioni, consulta Come posso risolvere gli errori 403 "Token di autenticazione mancante" dell'endpoint REST API di API Gateway? |
Il percorso della risorsa non esiste | "x-amzn-errortype" = "IncompleteSignatureException" | "L'intestazione di autorizzazione richiede il parametro 'Credenziale'. L'intestazione di autorizzazione richiede il parametro 'Firma'. L'intestazione di autorizzazione richiede il parametro 'SignedHeaders'. L'intestazione di autorizzazione richiede l'esistenza di un'intestazione 'X-Amz-Date' o 'Date'. Authorization=allow" | Una richiesta con un'intestazione "Authorization" viene inviata a un percorso di risorsa API inesistente. |
Utilizza erroneamente nomi DNS pubblici per invocare un'API privata | "x-amzn-errortype" = "ForbiddenException" | "Non consentito" | Hai utilizzato erroneamente nomi DNS pubblici per invocare un'API privata da un Amazon Virtual Private Cloud (Amazon VPC). Ad esempio: l'intestazione "Host" o "x-apigw-api-id" non è presente nella richiesta. Per ulteriori informazioni, consulta Invoca un'API privata utilizzando nomi di host del DNS pubblico specifici dell'endpoint. |
Utilizza l'endpoint execute-api predefinito per invocare una REST API con un nome di dominio personalizzato | "x-amzn-errortype" = "ForbiddenException" | "Non consentito" | Il chiamante utilizza l'endpoint execute-api predefinito per invocare una REST API dopo che hai disattivato l'endpoint predefinito. Per ulteriori informazioni, consulta Disabilita l'endpoint predefinito per le REST API |
Utilizza un certificato client non valido per invocare un nome di dominio personalizzato di API Gateway che richiede l'autenticazione TLS reciproca | "x-amzn-errortype" = "ForbiddenException" | "Non consentito" | Il truststore del nome di dominio personalizzato non emette il certificato client contenuto nella richiesta API o il certificato non è valido. Per ulteriori informazioni, consulta Come posso risolvere gli errori HTTP 403 Forbidden relativi a un nome di dominio personalizzato di API Gateway che richiede l'autenticazione TLS reciproca? |
Invocazione di un nome di dominio personalizzato senza una mappatura del percorso di base | "x-amzn-errortype" = "ForbiddenException" | "Non consentito" | Il chiamante invoca un dominio personalizzato e non mappa un percorso di base a un'API. Per ulteriori informazioni, consulta Custom domain name for REST APIs in API Gateway. |
Invocazione di un'API con dominio personalizzato attivato quando l'URL del dominio include la fase | "x-amzn-errortype" = "MissingAuthenticationTokenException" | "Token di autenticazione mancante" | Una mappatura API specifica un'API, una fase e un percorso opzionale da utilizzare per la mappatura. Pertanto, quando la fase di un'API viene mappata a un dominio personalizzato, non è più necessario includere la fase nell'URL. Per ulteriori informazioni, consulta Mappa le fasi dell'API su un nome di dominio personalizzato per le REST API. |
La fase nell'URL nella richiesta non è valida | "x-amzn-errortype" = "ForbiddenException" | "Non consentito" | L'URL della richiesta del chiamante include una fase inesistente. Per ulteriori informazioni, consulta Invoca le API REST in API Gateway. |
Risoluzione
Identifica la causa dell'errore
Se l'errore 403 viene segnalato da altre risorse, come negli esempi seguenti, la causa potrebbe essere un'altra:
- Se l'errore viene segnalato in un browser web, potrebbe esserci un'impostazione proxy errata che non consente l'accesso HTTP.
- Se davanti all'API c'è un altro servizio AWS, come Amazon CloudFront, il servizio può rifiutare la richiesta.
Per individuare la causa dell'errore, configura la registrazione degli accessi all'API in Amazon CloudWatch. Quindi visualizza gli eventi del log della tua API in CloudWatch per capire se le richieste arrivano all'API.
Nota: le API HTTP non supportano la registrazione dell'esecuzione.
Per risolvere gli errori 403 restituiti da un nome di dominio personalizzato che richiede l'autenticazione TLS reciproca e invoca un'API HTTP, procedi come segue:
- Crea una nuova mappatura API per testare l'invocazione della REST API per il tuo nome di dominio personalizzato.
- Per identificare la causa degli errori, visualizza gli eventi del log della REST API in CloudWatch.
- Dopo aver identificato e risolto l'errore, reindirizza la mappatura dell'API alla tua API HTTP.
Verifica che la risorsa richiesta esista nella definizione dell'API
Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta la sezione Troubleshoot AWS CLI errors. Assicurati inoltre di utilizzare la versione più recente di AWS CLI.
Utilizza la console API Gateway o AWS CLI per verificare le configurazioni seguenti:
- Hai distribuito l'API con la definizione API più recente.
- La risorsa richiesta esiste nella definizione dell'API.
Usa curl per ottenere i dettagli di richiesta e risposta
Se riesci a riprodurre l'errore, usa il comando curl -v per ottenere maggiori dettagli tra il client e l'API:
curl -X HTTP_VERB -v https://{api_id}.execute-api.{region}.amazonaws.com/{stage_name}/{resource_name}
Verifica che l'intestazione della richiesta sia corretta
Se l'errore è il risultato di una chiave API non valida, verifica che l'intestazione "x-api-key" sia stata inviata nella richiesta. Se l'intestazione non è inclusa o non è corretta, aggiorna l'intestazione della richiesta.
Verifica che l'impostazione DNS sugli endpoint Amazon VPC di interfaccia sia corretta
**Nota:**le attività seguenti si applicano alle API invocate da un Amazon VPC che ha solo un endpoint VPC di interfaccia.
Verifica che il DNS dell'endpoint di interfaccia sia impostato correttamente in base al tipo di API che utilizzi.
Per invocare un'API regionale dall'interno di un Amazon VPC, disattiva i nomi DNS privati sull'endpoint di interfaccia. Un DNS pubblico potrà così risolvere il nome host dell'endpoint. Per ulteriori informazioni, consulta Crea un'API privata.
Per utilizzare il nome DNS privato dell'API per invocare un'API privata dall'interno di un Amazon VPC, attiva i nomi DNS privati sull'endpoint. Le risorse della sottorete locale di Amazon VPC potranno così risolvere il nome host dell'endpoint di interfaccia.
Nota: se utilizzi una delle opzioni seguenti per invocare l'API privata, non è necessario configurare il nome DNS pubblico dell'API privata o un alias Amazon Route 53.
Rivedi la policy delle risorse dell'API
Rivedi la policy delle risorse della tua API per verificare le configurazioni seguenti:
- Per le API che invochi da un Amazon VPC con un endpoint VPC di interfaccia: La policy delle risorse dell'API concede ad Amazon VPC o all'endpoint di interfaccia l'accesso all'API.
- Le specifiche e la formattazione delle risorse della policy delle risorse sono corrette.
Nota: quando salvi una policy delle risorse, le specifiche delle risorse non vengono convalidate. Per esempi, consulta Esempi di policy delle risorse di API Gateway. - Il chiamante può invocare l'endpoint dell'API in base al tipo di autenticazione che hai definito per l'API. Per ulteriori informazioni, consulta Come influiscono le policy delle risorse di API Gateway sul flusso di lavoro delle autorizzazioni.
Rivedi i messaggi di richiesta e risposta HTTP
Riproduci l'errore in un browser web. Utilizza gli strumenti di rete del browser per acquisire i messaggi di richiesta e risposta HTTP e analizzali per trovare dove si è verificato l'errore.
Nota: per l'analisi offline, salva i messaggi in un file HTTP Archive (HAR).
Informazioni correlate
Come posso consentire solo a indirizzi IP specifici di accedere alla mia REST API di API Gateway?
Come posso risolvere i problemi durante la connessione a un endpoint API privato di API Gateway?
Progetto Curl sul sito web di curl
Video correlati


Contenuto pertinente
- Perché ricevo un errore HTTP 403 Forbidden quando mi connetto alle mie API di Gateway API da un VPC?AWS UFFICIALEAggiornata 4 mesi fa