Crittografia dei dati in Amazon API Gateway
Lo scopo della protezione dati è proteggere i dati sia in transito (durante la trasmissione verso e da API Gateway), sia quando sono inattivi (ovvero quando sono archiviati in AWS).
Crittografia dei dati inattivi in Amazon API Gateway
Se si sceglie di abilitare la memorizzazione nella cache per un'API REST, è possibile abilitare la crittografia della cache. Per ulteriori informazioni, consulta Impostazioni della cache per REST API in Gateway API.
Per ulteriori informazioni sulla protezione dei dati, consulta il post del blog AWS Modello di responsabilità condivisa e GDPR
Crittografia e decrittografia della chiave privata del certificato
Quando si crea un nome di dominio personalizzato per le API private, il certificato ACM e la chiave privata vengono crittografati utilizzando una chiave KMS gestita da AWS con l'alias aws/acm. È possibile visualizzare l'ID della chiave con questo alias nella console AWS KMS sotto Chiavi gestite da AWS.
Gateway API non accede direttamente alle risorse ACM. Utilizzare AWS TLS Connection Manager per proteggere e accedere alle chiavi private del certificato. Quando si usa il certificato ACM per creare un nome di dominio personalizzato Gateway API per API private, Gateway API associa il certificato ad AWS TLS Connection Manager. Questa operazione viene eseguita creando una concessione in AWS KMS per la chiave gestita da AWS con il prefisso aws/acm. La concessione è uno strumento delle policy che permette a TLS Connection Manager di usare le chiavi KMS nelle operazioni di crittografia. La concessione consente al principale assegnatario (TLS Connection Manager) di chiamare le operazioni di concessione specificate nella chiave KMS per decrittografare la chiave privata del certificato. TLS Connection Manager utilizza quindi il certificato e la chiave privata decrittografata (testo normale) per stabilire una connessione sicura (sessione SSL/TLS) con i client dei servizi Gateway API. Quando l'associazione del certificato a un nome di dominio personalizzato Gateway API per API private viene annullata, la concessione viene ritirata.
Per rimuovere l'accesso alla chiave KMS, si consiglia di sostituire o eliminare il certificato dal servizio utilizzando la AWS Management Console o il comando update-service in AWS CLI.
Contesto di crittografia per Gateway API
Il contesto di crittografia è un set opzionale di coppie chiave-valore che contiene informazioni contestuali su come può essere utilizzata la chiave privata. AWS KMS associa il contesto di crittografia ai dati crittografati e lo utilizza come dati autenticati aggiuntivi per supportare la crittografia autenticata.
Quando le chiavi TLS vengono utilizzate con Gateway API e TLS Connection Manager, il nome del servizio Gateway API viene incluso nel contesto di crittografia utilizzato per crittografare la chiave a riposo. È possibile verificare per quale nome di dominio personalizzato Gateway API vengono utilizzati il certificato e la chiave privata esaminando il contesto di crittografia nei log di CloudTrail, come mostrato nella prossima sezione, o consultando la scheda Risorse associate nella console ACM.
Per decrittografare i dati, includere nella richiesta lo stesso contesto di crittografia. Gateway API utilizza lo stesso contesto di crittografia in tutte le operazioni di crittografia di AWS KMS, in cui la chiave è aws:apigateway:arn e il valore è il nome della risorsa Amazon (ARN) della risorsa PrivateDomainName di Gateway API.
L'esempio illustrato di seguito mostra il contesto di crittografia nell'output di un'operazione come CreateGrant.
"constraints": {
"encryptionContextEquals": {
"aws:acm:arn": "arn:aws:acm:us-west-2:859412291086:certificate/9177097a-f0ae-4be1-93b1-19f911ea4f88",
"aws:apigateway:arn": "arn:aws:apigateway:us-west-2:859412291086:/domainnames/denytest-part1.pdx.sahig.people.aws.dev+cbaeumzjhg"
}
},
"operations": [
"Decrypt"
],
"granteePrincipal": "tlsconnectionmanager.amazonaws.com"
Crittografia dei dati in transito in Amazon API Gateway
Le API create con Amazon API Gateway espongono solo endpoint HTTPS. API Gateway non supporta gli endpoint non crittografati (HTTP).
API Gateway gestisce i certificati per gli endpoint predefiniti execute-api. Se si configura un nome di dominio personalizzato, si specifica il certificato per il nome di dominio. Come best practice, non bloccare i certificati.
Per una maggiore sicurezza, è possibile scegliere una versione del protocollo Transport Layer Security (TLS) minima da applicare per il dominio API Gateway personalizzato. Le API WebSocket e le API HTTP supportano solo TLS 1.2. Per ulteriori informazioni, consulta Scelta di una policy di sicurezza per il dominio personalizzato REST API in Gateway API.
È inoltre possibile impostare una distribuzione Amazon CloudFront con un certificato SSL personalizzato nel proprio account e utilizzarla con API regionali. Puoi quindi configurare la policy di sicurezza per la distribuzione CloudFront con TLS 1.1 o versione successiva in base ai tuoi requisiti di sicurezza e conformità.
Per ulteriori informazioni sulla protezione dei dati, consulta Protezione delle REST API in Gateway API e il post del blog relativo al modello di responsabilità condivisa e GDPR AWS