Perché ricevo un errore HTTP 403 Forbidden quando mi connetto alle mie API di API Gateway da un VPC?

4 minuti di lettura
0

Sto chiamando le mie API Amazon di API Gateway dal mio cloud privato virtuale (VPC), ma ricevo un errore HTTP 403 Forbidden. Perché è così?

Breve descrizione

L'errore HTTP 403 Forbidden si verifica più comunemente quando il DNS privato è abilitato per un endpoint VPC con interfaccia API Gateway associato a un VPC. In questo scenario, tutte le richieste dal VPC alle API di API Gateway vengono risolte verso quell'endpoint VPC di interfaccia. Tuttavia, non è possibile connettersi alle API pubbliche utilizzando un endpoint VPC.

Il nome DNS privato di un endpoint VPC è nel formato *.execute-api.<REGION>.amazonaws.com. Questo formato corrisponde all'URL di richiamo predefinito di API Gateway per le API pubbliche e private. Ad esempio, l'URL di richiamo predefinito di un'API pubblica è https://abcd1234.execute-api.us-east-1.amazonaws.com dove abcd1234 è l'ID API e us-east-1 è la regione AWS dell'API.

Quando un DNS privato è abilitato su un endpoint VPC, l'URL di richiamo dell'API è coperto dal nome DNS privato *.execute-api.us-east-1.amazonaws.com dove***** è un segnaposto per l'ID API. Quando una query DNS viene risolta per un'API pubblica dall'interno di un VPC, il DNS risolto punta all'IP privato dell'endpoint VPC associato anziché all'IP pubblico dell'API pubblica. La chiamata API viene quindi indirizzata all'API pubblica tramite l'endpoint VPC invece di indirizzarla tramite Internet. Poiché gli endpoint VPC possono indirizzare il traffico solo verso API private, il risultato è un errore HTTP 403.

Se il DNS privato non è abilitato per il tuo endpoint VPC di interfaccia o non è presente alcun endpoint nel tuo VPC, vai alla sezione Connetti alle API pubbliche quando il DNS privato non è abilitato.

Risoluzione

Verifica che sia abilitato 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 DNS private sono abilitate. Per ulteriori informazioni, consulta Attributi DNS nel tuo VPC.

Connettiti alle API pubbliche con DNS privato abilitato

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.

Importante: Le risorse del tuo VPC che tentano di connettersi alle tue API pubbliche devono disporre di connettività Internet. Inoltre, quando si configurano i record DNS per un nome di dominio personalizzato regionale, è necessario utilizzare record di alias di tipo A. Tuttavia, con nomi di dominio personalizzati ottimizzati per l'edge, utilizza record di alias di tipo A o record CNAME.

Connettiti alle API pubbliche quando il DNS privato non è abilitato

Se il DNS privato non è abilitato nell'endpoint VPC dell'interfaccia o non è presente alcun endpoint nella configurazione di Amazon Virtual Private Cloud (Amazon VPC), conferma che quanto segue è vero:

Quando il tuo VPC è autorizzato ad accedere alle tue API pubbliche, utilizza il DNS pubblico per connetterti alle tue API pubbliche. Per ulteriori informazioni, vedere Controllo e gestione dell'accesso a un'API REST in API Gateway.

(Facoltativo) Modifica l'impostazione DNS privata per un endpoint VPC di interfaccia

Gli utenti possono modificare l'impostazione DNS privata per un endpoint VPC di interfaccia in qualsiasi momento. La modifica di questa impostazione influisce sulla risoluzione dell'URL dello stage di un'API sull'IP privato dell'endpoint VPC dell'interfaccia.

Nota: La modifica dell'impostazione del DNS privato influisce sul modo in cui gli utenti possono connettersi alle API private e pubbliche da un VPC.

  1. Nella console Amazon VPC, apri il riquadro Endpoints.
  2. Seleziona l'endpoint VPC dell'interfaccia.
  3. Scegli Azioni, quindi scegli Modifica nomi DNS privati.
  4. Per Abilita nome DNS privato, seleziona o deseleziona la casella di controllo Abilita per questo endpoint.
  5. Scegli Modifica nomi DNS privati.

Per ulteriori informazioni, consulta Visualizzare e aggiornare gli attributi DNS per il tuo VPC.


Informazioni correlate

Accedi a un servizio AWS utilizzando un endpoint VPC di interfaccia

Configurazione di nomi di dominio personalizzati per le API REST

Attributi DNS per il tuo VPC