Perché ricevo un errore HTTP 403 Forbidden quando mi connetto alle mie API di Gateway API da un VPC?
Ricevo un errore HTTP 403 Forbidden quando chiamo la mia API di Gateway Amazon API dal mio cloud privato virtuale (VPC).
Breve descrizione
L'errore HTTP 403 Forbidden si verifica quando attivi il DNS per un endpoint VPC di interfaccia di Gateway API associato a un VPC. In questo caso, tutte le richieste dal VPC alle API di Gateway API vengono risolte in quell'endpoint VPC di interfaccia. Tuttavia, non puoi utilizzare un endpoint VPC per connetterti ad API pubbliche.
Il nome DNS privato di un endpoint VPC è nel formato *.execute-api.exampleRegion.amazonaws.com, dove il carattere * è un segnaposto per l'ID dell'API. Questo formato corrisponde all'URL di invocazione predefinito di Gateway API per le API pubbliche e private.
Quando si attiva un DNS privato per un endpoint VPC, l'URL di invocazione dell'API è coperto dal nome DNS privato. Quando una query DNS viene risolta per un'API pubblica dall'interno di un VPC, il DNS punta all'IP privato dell'endpoint VPC associato. La chiamata API viene quindi indirizzata all'API pubblica tramite l'endpoint VPC invece che tramite internet. Poiché gli endpoint VPC possono indirizzare il traffico solo verso API private, il risultato è un errore HTTP 403.
Puoi ricevere un errore 403 anche quando usi l'URL di invocazione execute-api predefinito per la connessione ad API private dall'ambiente on-premises con AWS Direct Connect.
Risoluzione
Verifica che sia attivato un DNS privato per un endpoint VPC di interfaccia associato al tuo VPC
Controlla il tuo VPC per vedere se esiste un endpoint VPC di interfaccia per accedere a un'API privata. Se è presente un endpoint di interfaccia, controlla se le impostazioni del DNS privato sono attivate. Per ulteriori informazioni, consulta DNS attributes for your VPC.
Connettiti alle API pubbliche con il DNS privato attivato
Se il DNS privato è abilitato, configura nomi di dominio personalizzati ottimizzati per l'edge o nomi di dominio personalizzati regionali per connetterti alle tue API pubbliche.
Se i client si connettono da una rete on-premises, configura un endpoint in entrata del risolutore Amazon Route 53. Per utilizzare l'URL di invocazione execute-api, inoltra tutte le query al DNS privato dalla tua rete remota all'endpoint in entrata.
Importante: le tue risorse VPC devono disporre di connettività internet per connettersi alle tue API pubbliche. Inoltre, utilizza record di alias di tipo A per configurare i record DNS per un nome di dominio personalizzato regionale. Tuttavia, per i nomi di dominio personalizzati ottimizzati per l'edge, puoi usare record di alias di tipo A o record CNAME.
Connettiti alle API pubbliche quando il DNS privato non è attivato
- I gruppi di sicurezza per il tuo VPC consentono il traffico in uscita verso la tua API pubblica
- La policy delle risorse collegata alla tua API non rifiuta l'accesso dal VPC
Se il tuo VPC è autorizzato ad accedere alle tue API pubbliche, utilizza il DNS pubblico per connetterti alle tue API pubbliche. Per ulteriori informazioni, consulta Control and manage access to REST APIs in API Gateway.
(Facoltativo) Cambia l'impostazione del DNS privato su un endpoint VPC di interfaccia
Puoi cambiare l'impostazione del DNS privato su un endpoint VPC di interfaccia in qualsiasi momento. La modifica di questa impostazione influisce sulla risoluzione dell'URL di una fase API sull'IP privato dell'endpoint VPC di interfaccia.
Per modificare l'impostazione del DNS privato per un endpoint VPC di interfaccia, completa i passaggi seguenti:
- Apri la console Amazon VPC.
- Apri il pannello Endpoints.
- Seleziona l'endpoint VPC di interfaccia.
- Scegli Operazioni, quindi scegli Modifica nomi DNS privati.
- Per Abilita nome DNS privato, seleziona o deseleziona la casella di controllo Abilita per questo endpoint.
- Scegli Modifica nomi DNS privati.
Nota: le modifiche dell'impostazione del DNS privato influiscono sul modo in cui gli utenti possono connettersi alle API private e pubbliche da un VPC.
Per ulteriori informazioni, consulta View and update DNS attributes for your VPC.