Controlla API l'accesso con il tuo AWS SAM modello - 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à.

Controlla API l'accesso con il tuo AWS SAM modello

Il controllo dell'accesso al API gateway APIs aiuta a garantire che l'applicazione serverless sia sicura e accessibile solo tramite l'autorizzazione abilitata. Puoi abilitare l'autorizzazione nel tuo AWS SAM modello per controllare chi può accedere al tuo API GatewayAPIs.

AWS SAM supporta diversi meccanismi per controllare l'accesso al tuo API GatewayAPIs. 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
IAMautorizzazioni
Pool di utenti Amazon Cognito ✓ *
APIchiavi
Policy delle risorse
OAuth2.0/ autorizzatori JWT

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

  • Autorizzatori Lambda: un autorizzatore Lambda (precedentemente noto come autorizzatore personalizzato) è una funzione Lambda fornita per controllare l'accesso al tuo. API Quando API viene chiamata, 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 Gateway Developer Guide. API Per ulteriori informazioni sugli autorizzatori Lambda conAWS::Serverless::Api, consulta Use Gateway API Lambda authorizers nella Gateway Developer Guide. API

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

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

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

    Per ulteriori informazioni, consulta Controllare l'accesso a un utente API con IAM autorizzazioni nella APIGateway Developer Guide. Per vedere un esempio, consulta IAMesempio di autorizzazione per AWS SAM.

  • Pool di utenti Amazon Cognito: i pool di utenti di Amazon Cognito sono directory di utenti in Amazon Cognito. Un tuo cliente 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 ti chiama API con uno dei token restituiti. La API chiamata 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 emittenteJWT.

    Per ulteriori informazioni, consulta Controllare l'accesso a un pool di utenti REST API che utilizza Amazon Cognito come autorizzatore nella APIGateway Developer Guide. Per vedere un esempio, consulta Esempio di pool di utenti Amazon Cognito per AWS SAM.

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

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

    Per ulteriori informazioni sulle API chiavi, consulta Creazione e utilizzo di piani di utilizzo con API chiavi nella APIGateway Developer Guide. Per un esempio di API chiavi, consultaAPIesempio chiave per AWS SAM.

  • JSONCriteri relativi alle risorse: i criteri relativi alle risorse sono documenti relativi alle politiche che è possibile allegare a un API GatewayAPI. Utilizza le politiche relative alle risorse per controllare se un principale specificato (in genere un IAM utente o un ruolo) può richiamare ilAPI.

    Solo il tipo di AWS::Serverless::Api risorsa supporta le politiche delle risorse come meccanismo per controllare l'accesso a API GatewayAPIs.

    Per ulteriori informazioni sulle politiche delle risorse, vedere Controlling access to an API with API Gateway Resource Policy nella APIGateway Developer Guide. Per un esempio di politiche relative alle risorse, vedereEsempio di politica delle risorse per AWS SAM.

  • OAuthJWTAutorizzatori 2.0/: puoi utilizzare JWTs come parte dei framework OpenID Connect (OIDC) e OAuth2.0 per controllare l'accesso al tuo. APIs APIGateway convalida JWTs ciò che i client inviano con API le richieste e consente o rifiuta le richieste in base alla convalida del token e, facoltativamente, agli ambiti del token.

    Solo il tipo di AWS::Serverless::HttpApi risorsa supporta gli autorizzatori 2.0/. OAuth JWT

    Per ulteriori informazioni, vedere Controlling access to HTTP APIs with JWT authorizers nella APIGateway Developer Guide. Per vedere un esempio, consulta OAuthEsempio di JWT autorizzazione 2.0/ per AWS SAM.

Scelta di un meccanismo per controllare l'accesso

Il meccanismo che scegli di utilizzare per controllare l'accesso al tuo API Gateway APIs 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 utilizzare AWS SAM per personalizzare il contenuto di alcune risposte di errore del API Gateway. Solo il tipo di AWS::Serverless::Api risorsa supporta risposte API Gateway personalizzate.

Per ulteriori informazioni sulle risposte API Gateway, vedere Gateway response in API Gateway nella API Gateway Developer Guide. Per un esempio di risposte personalizzate, vedereEsempio di risposta personalizzata per AWS SAM.

Esempi