Come posso inviare intestazioni di sicurezza personalizzate tramite Gateway API per integrazioni proxy o non proxy Lambda?
Desidero inviare intestazioni di sicurezza personalizzate tramite Gateway Amazon API per integrazioni proxy o non proxy AWS Lambda.
Risoluzione
Per aggiungere intestazioni di sicurezza personalizzate nelle risposte di Gateway API, segui il metodo corrispondente al tipo di integrazione.
Nota: la seguente risoluzione si applica solo alle REST API di Gateway API. Le API HTTP non supportano la mappatura della risposta del metodo o della risposta dell'integrazione.
Integrazioni proxy Lambda
Per le integrazioni proxy Lambda, Gateway API invia la richiesta e la risposta tra il client e la funzione Lambda integrata senza modifiche. Per inviare intestazioni di sicurezza personalizzate da un'API di Gateway API a una funzione Lambda, devi modificare il codice di origine della funzione.
Completa i seguenti passaggi:
-
Apri la console Gateway API.
-
Nel pannello di navigazione, scegli API, quindi seleziona la REST API.
-
Scegli Crea metodo.
-
Nel pannello Crea metodo, intraprendi le seguenti azioni:
Per Tipo di metodo, scegli il tipo di metodo.
Per Tipo di integrazione, scegli Funzione Lambda.
Verifica di aver attivato l'integrazione proxy Lambda.
Per Funzione Lambda, seleziona la funzione Lambda.
Scegli Crea metodo. -
Nel pannello Richiesta di integrazione, seleziona la funzione Lambda.
-
Per Origine del codice, sostituisci il codice della funzione con il seguente codice Python o il codice Node.js nell'editor di codice.
Python 3.14 e versioni successive:def lambda_handler(event, context): return { 'statusCode': 200, 'headers': { "Strict-Transport-Security": "max-age=100000", "X-Frame-Options": "DENY", "X-Content-Type-Options": "nosniff", "Content-Security-Policy": "default-src 'self'" }, 'body': json.dumps("Hello from Lambda with security headers!") }Node.js 14 e versioni successive:
exports.handler = async (event) => { const response = { statusCode: 200, headers: { 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains', 'Content-Security-Policy': "default-src 'self'", 'X-Frame-Options': 'DENY', 'X-Content-Type-Options': 'nosniff' }, body: JSON.stringify('Hello from Lambda with security headers!') }; return response; }; -
Scegli Distribuisci.
Integrazioni non proxy
Per inviare intestazioni di sicurezza personalizzate tramite integrazioni non proxy o personalizzate, come i tipi di integrazione del servizio AWS e HTTP, crea un modello di mappatura o una risposta del metodo.
Crea un modello di mappatura
Completa i seguenti passaggi:
-
Apri la console Gateway API.
-
Nel pannello di navigazione, scegli API, quindi seleziona la REST API.
-
Nel pannello Crea metodo, inserisci il tipo di metodo e il tipo di integrazione, quindi scegli Crea metodo.
-
Nel pannello Richiesta di integrazione, scegli Modifica.
-
Espandi Modelli di mappatura, quindi scegli Aggiungi modello di mappatura.
-
In Tipo di contenuto, inserisci il tipo di contenuto. Ad esempio, application/json.
-
Nell'editor Corpo del modello, inserisci il seguente modello di mappatura:
#set($headersToReturn = { "Strict-Transport-Security": "max-age=31536000; includeSubDomains" })#foreach($header in $headersToReturn.keySet()) #set($context.responseOverride.header[$header] = $headersToReturn[$header])#end -
Scegli Salva.
-
Scegli Distribuisci l'API.
Crea una risposta del metodo
Completa i seguenti passaggi:
- Apri la console Gateway API.
- Nel pannello di navigazione, scegli API, quindi seleziona la REST API.
- Nel pannello Risposta metodo, scegli Modifica.
- Per Nome intestazione, scegli Aggiungi intestazione.
- Inserisci il nome dell'intestazione personalizzata che desideri restituire, ad esempio Strict-Transport-Security.
- Scegli **Aggiungi intestazione ** per aggiungere un'altra intestazione che desideri restituire, ad esempio Content-Security-Policy.
- Scegli Salva.
- Nel pannello Richiesta di integrazione, scegli Modifica.
- In Mappature intestazione, inserisci i valori di mappatura dell'intestazione, ad esempio max-age=100000 e self.
- Scegli Salva, quindi seleziona Distribuisci l'API.
Esegui un test della configurazione
Per verificare che le intestazioni di sicurezza personalizzate siano incluse nella risposta, esegui questo comando curl per invocare la REST API:
curl -v https://your-api-id.execute-api.your-region.amazonaws.com/your-stage-name
Nota: sostituisci your-api-id con la tua REST API, your-region con la tua Regione AWS e your-stage-name con il nome della tua fase.
Informazioni correlate
Trasformazioni dei modelli di mappatura per REST API in Gateway API
Tutorial: creazione di una REST API con un'integrazione non proxy Lambda
- Lingua
- Italiano
