Controllare l'accesso alle API Gateway API - AWS Serverless Application Model

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Controllare l'accesso alle API Gateway API

Per controllare chi può accedere alle API Amazon API Gateway, puoi abilitare l'autorizzazione all'interno del tuoAWS SAMModello.

AWS SAMsupporta diversi meccanismi per controllare l'accesso alle API Gateway API. L'insieme di meccanismi supportati differisce traAWS::Serverless::HttpApieAWS::Serverless::Apitipi di risorsa.

Nella tabella seguente sono riepilogati i meccanismi supportati da ciascun tipo di risorsa.

Meccanismi per il controllo dell'accesso AWS::Serverless::HttpApi AWS::Serverless::Api
Autorizzazioni Lambda
Autorizzazioni IAM
Pool di utenti di Amazon Cognito ✓ *
Chiavi API
Policy delle risorse
Autorizzazioni OAuth 2.0/JWT

* Puoi utilizzare Amazon Cognito come un emittente JSON Web Token (JWT) conAWS::Serverless::HttpApiTipo di risorsa .

  • Autorizzazioni Lambda— Autorizzatore Lambda (precedentemente noto come aAutorizzazioni ad hoc) è una funzione Lambda che fornisci per controllare l'accesso all'API. Quando viene chiamata l'API, questa funzione Lambda viene richiamata con un contesto di richiesta o un token di autorizzazione fornito dall'applicazione client. La funzione Lambda risponde se il chiamante è autorizzato a eseguire l'operazione richiesta.

    Entrambe leAWS::Serverless::HttpApieAWS::Serverless::Apii tipi di risorsa supportano autorizzazioni Lambda.

    Per ulteriori informazioni sulle autorizzazioni Lambda conAWS::Serverless::HttpApi, consultaUtilizzo diAWS Lambdaautorizzazioni per API HTTPnellaGuida per sviluppatori API Gateway. Per ulteriori informazioni sulle autorizzazioni Lambda conAWS::Serverless::Api, consultaUso di autorizzazioni Lambda di API GatewaynellaGuida per sviluppatori API Gateway.

    Per esempi di autorizzatori Lambda per entrambi i tipi di risorsa, vedereEsempi di autorizzazioni Lambda.

  • Autorizzazioni IAM- Puoi controllare chi può richiamare l'API utilizzandoAWS Identity and Access Managementautorizzazioni (IAM). Gli utenti che chiamano l'API devono essere autenticati con le credenziali IAM. Le chiamate all'API hanno esito positivo solo se è presente un criterio IAM collegato all'utente IAM che rappresenta il chiamante API, un gruppo IAM che contiene l'utente o un ruolo IAM che l'utente assume.

    Solo ilAWS::Serverless::Apisupporta le autorizzazioni IAM.

    Per ulteriori informazioni, consultaControllo degli accessi a un'API con le autorizzazioni IAMnellaGuida per sviluppatori API Gateway. Per un esempio, consultare Esempio di autorizzazione IAM.

  • Pool di utenti di Amazon Cognito— I pool di utenti Amazon Cognito sono directory utente in Amazon Cognito. Un client della tua API deve prima accedere a un utente al pool di utenti e ottenere un'identità o un token di accesso per l'utente. Quindi il client chiama la tua API con uno dei token restituiti. La chiamata API ha esito positivo solo se il token richiesto è valido.

    LaAWS::Serverless::Apisupporta i pool di utenti di Amazon Cognito. LaAWS::Serverless::HttpApisupporta l'utilizzo di Amazon Cognito come emittente JWT.

    Per ulteriori informazioni, consulta la sezione Control access to a REST API using Amazon Cognito user pools as authorizer (Controllo degli accessi a un'API REST utilizzando pool di utenti di Amazon Cognito come autorizzazione) nella Guida per sviluppatori di API Gateway. Per un esempio, consultare Esempio di pool di utenti Amazon Cognito.

  • Chiavi API— Le chiavi API sono valori stringa alfanumerici che vengono distribuiti ai clienti degli sviluppatori di applicazioni per concedere l'accesso all'API.

    Solo ilAWS::Serverless::Apiil tipo di risorsa supporta le chiavi API.

    Per ulteriori informazioni sulle chiavi API, consulta.Creazione e utilizzo dei piani di utilizzo con chiavi APInellaGuida per sviluppatori API Gateway. Per un esempio di chiavi API, consultaEsempio di chiave API.

  • Policy delle risorse— Le policy delle risorse sono documenti di policy JSON che è possibile collegare a un'API API Gateway. Utilizzare le policy delle risorse per controllare se un'entità principale specificata (in genere un utente o ruolo IAM) può richiamare l'API.

    Solo ilAWS::Serverless::Apiil tipo di risorsa supporta i criteri delle risorse come meccanismo per il controllo dell'accesso alle API API Gateway.

    Per ulteriori informazioni sulle policy delle risorse, consulta.Controllo dell'accesso a un'API con le policy delle risorse API GatewaynellaGuida per sviluppatori API Gateway. Per un esempio di policy delle risorse, consulta.Esempio di policy delle risorse.

  • Autorizzazioni OAuth 2.0/JWT— È possibile utilizzare JWT come parte diOpenID Connect (OIDC)eOAuth 2.0per controllare l'accesso alle API. API Gateway convalida i JWT inviati dai client con le richieste API e consente o nega le richieste in base alla convalida dei token e, facoltativamente, gli ambiti nel token.

    Solo ilAWS::Serverless::HttpApiil tipo di risorsa supporta gli autorizzatori OAuth 2.0/JWT.

    Per ulteriori informazioni consulta la sezione Controlling access to HTTP APIs with JWT authorizers (Controllo dell'accesso alle API HTTP con le autorizzazioni JWT) nella Guida per gli sviluppatori dell’API Gateway. Per un esempio, consultare Esempio di autorizzazioni OAuth 2.0/JWT.

Scelta di un meccanismo per controllare l'accesso

Il meccanismo che scegli di utilizzare per controllare l'accesso alle API API Gateway dipende da alcuni fattori. Ad esempio, se disponi di un progetto greenfield senza autorizzazione o controllo di accesso configurato, i pool di utenti Amazon Cognito potrebbero essere l'opzione migliore. Questo perché quando si configurano i pool di utenti, si configurano automaticamente sia l'autenticazione che il controllo di accesso.

Tuttavia, se l'applicazione ha già configurato l'autenticazione, l'utilizzo degli autorizzatori Lambda potrebbe essere l'opzione migliore. Questo perché è possibile chiamare il servizio di autenticazione esistente e restituire un documento di criterio in base alla risposta. Inoltre, se l'applicazione richiede autenticazione personalizzata o logica di controllo degli accessi che i pool di utenti non supportano, gli autorizzatori Lambda potrebbero essere l'opzione migliore.

Quando hai scelto quale meccanismo usare, vedi la sezione corrispondente inEsempiper utilizzareAWS SAMper configurare l'applicazione in modo che utilizzi quel meccanismo.

Personalizzazione delle risposte agli errori

È possibile utilizzareAWS SAMper personalizzare il contenuto di alcune risposte agli errori API Gateway. Solo ilAWS::Serverless::Apiil tipo di risorsa supporta le risposte API Gateway personalizzate.

Per ulteriori informazioni sulle risposte API Gateway, consulta.Risposte del gateway in API GatewaynellaGuida per sviluppatori API Gateway. Per un esempio di risposte personalizzate, consulta.Esempio di risposta personalizzata.

Esempi