Controllo dell'accesso alle API API Gateway - 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à.

Controllo dell'accesso alle API API Gateway

Per controllare chi può accedere alle tue API Amazon API Gateway, puoi abilitare l'autorizzazione all'interno del tuo AWS SAM modello.

AWS SAMsupporta diversi meccanismi per controllare l'accesso alle API API Gateway. L'insieme di meccanismi supportati varia a seconda dei tipi AWS::Serverless::HttpApi di AWS::Serverless::Api risorse.

La tabella seguente riassume i meccanismi supportati da ciascun tipo di risorsa.

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

* Puoi usare Amazon Cognito come emittente di JSON Web Token (JWT) con il tipo di risorsa. AWS::Serverless::HttpApi

  • Autorizzatori Lambda: un autorizzatore Lambda (precedentemente noto come autorizzatore personalizzato) è una funzione Lambda fornita 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.

    Entrambi i tipi AWS::Serverless::HttpApi di AWS::Serverless::Api risorse supportano gli autorizzatori Lambda.

    Per ulteriori informazioni sugli autorizzatori Lambda conAWS::Serverless::HttpApi, consulta Working with AWS Lambda authorizers for HTTP APIs nella API Gateway Developer Guide. Per ulteriori informazioni sugli autorizzatori Lambda conAWS::Serverless::Api, consulta Use API Gateway Lambda authorizers nella API Gateway Developer Guide.

    Per esempi di autorizzatori Lambda per entrambi i tipi di risorse, vedere. Esempi di autorizzazioni Lambda

  • Autorizzazioni IAM: puoi controllare chi può richiamare la tua API utilizzando le autorizzazioni AWS Identity and Access Management(IAM). Gli utenti che chiamano la tua API devono essere autenticati con credenziali IAM. Le chiamate alla tua API hanno esito positivo solo se all'utente IAM è associata una policy IAM che rappresenta il chiamante dell'API, un gruppo IAM che contiene l'utente o un ruolo IAM assunto dall'utente.

    Solo il tipo di AWS::Serverless::Api risorsa supporta le autorizzazioni IAM.

    Per ulteriori informazioni, consulta Controllare l'accesso a un'API con autorizzazioni IAM nella Guida per sviluppatori di API Gateway. Per vedere un esempio, consulta Esempio di autorizzazione IAM.

  • Pool di utenti Amazon Cognito: i pool di utenti di Amazon Cognito sono directory di utenti 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 l'API con uno dei token restituiti. La chiamata API ha esito positivo solo se il token richiesto è valido.

    Il tipo di AWS::Serverless::Api risorsa supporta i pool di utenti di Amazon Cognito. Il tipo di AWS::Serverless::HttpApi risorsa supporta l'uso 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 vedere un esempio, consulta Esempio di pool di utenti di Amazon Cognito.

  • Chiavi API: le chiavi API sono valori di stringhe alfanumeriche che distribuisci ai clienti sviluppatori di applicazioni per concedere l'accesso alla tua API.

    Solo il tipo di AWS::Serverless::Api risorsa supporta le chiavi API.

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

  • Politiche delle risorse: le politiche delle risorse sono documenti di policy JSON che è possibile allegare a un'API API Gateway. Utilizza le policy relative alle risorse per controllare se un principale specificato (in genere un utente o un ruolo IAM) può richiamare l'API.

    Solo il tipo di AWS::Serverless::Api risorsa supporta le policy delle risorse come meccanismo per controllare l'accesso alle API API Gateway.

    Per ulteriori informazioni sulle politiche delle risorse, consulta Controllare l'accesso a un'API con le politiche delle risorse di API Gateway nella Guida per sviluppatori di API Gateway. Per un esempio di politiche relative alle risorse, consultaEsempi di policy di risorse.

  • Autorizzatori OAuth 2.0/JWT: puoi utilizzare JWT come parte dei framework OpenID Connect (OIDC) e OAuth 2.0 per controllare l'accesso alle tue API. API Gateway convalida i JWT inviati dai client con le richieste API e consente o rifiuta le richieste in base alla convalida del token e, facoltativamente, agli ambiti nel token.

    Solo il tipo di risorsa supporta gli autorizzatori OAuth AWS::Serverless::HttpApi 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 vedere un esempio, consulta Esempio di autorizzatore 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 hai un progetto greenfield senza autorizzazione o configurazione del controllo degli accessi, i pool di utenti di Amazon Cognito potrebbero essere l'opzione migliore. Questo perché quando configuri i pool di utenti, configuri automaticamente anche l'autenticazione e il controllo degli accessi.

Tuttavia, se l'applicazione ha già configurato l'autenticazione, l'utilizzo degli autorizzatori Lambda potrebbe essere l'opzione migliore. Questo perché puoi chiamare il servizio di autenticazione esistente e restituire un documento di policy basato sulla risposta. Inoltre, se la tua applicazione richiede un'autenticazione personalizzata o una logica di controllo degli accessi che i pool di utenti non supportano, gli autorizzatori Lambda potrebbero essere l'opzione migliore.

Dopo aver scelto il meccanismo da utilizzare, consulta la sezione corrispondente Esempi per scoprire come configurare l'applicazione AWS SAM per utilizzare quel meccanismo.

Personalizzazione delle risposte agli errori

È possibile utilizzarlo AWS SAM per personalizzare il contenuto di alcune risposte di errore di API Gateway. Solo il tipo di AWS::Serverless::Api risorsa supporta risposte API Gateway personalizzate.

Per ulteriori informazioni sulle risposte di API Gateway, consulta le risposte del gateway in API Gateway nella API Gateway Developer Guide. Per un esempio di risposte personalizzate, consultaEsempio di risposta personalizzata.

Esempi