Controllo degli accessi per invocare un'API - Amazon API Gateway

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 degli accessi per invocare un'API

In questa sezione viene illustrato come scrivere istruzioni di policy IAM per controllare chi può chiamare un'API distribuita in API Gateway. Troverai anche i riferimenti alle istruzioni delle policy, inclusi i formati dei campi Action e Resource correlati al servizio di esecuzione dell'API. Dovresti inoltre consultare la sezione IAM in Come le policy delle risorse API Gateway influiscono sul flusso di lavoro delle autorizzazioni.

Per le API private, dovresti utilizzare una combinazione di una policy di risorse API Gateway e una policy di endpoint VPC. Per ulteriori informazioni, consultare i seguenti argomenti:

Controllo di chi può chiamare un metodo API di API Gateway con le policy IAM

Per controllare chi può o non può chiamare un'API distribuita con le autorizzazioni IAM, crea un documento di policy IAM con le autorizzazioni richieste. Di seguito viene mostrato un modello per questo tipo di documento di policy.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Permission", "Action": [ "execute-api:Execution-operation" ], "Resource": [ "arn:aws:execute-api:region:account-id:api-id/stage/METHOD_HTTP_VERB/Resource-path" ] } ] }

Nell'esempio riportato Permission deve essere sostituito da Allow o da Deny a seconda che si desideri concedere o revocare le autorizzazioni incluse. Execution-operation deve essere sostituito dalle operazioni supportate dal servizio di esecuzione dell'API. METHOD_HTTP_VERB indica un verbo HTTP supportato dalle risorse specificate. Resource-path è il segnaposto per il percorso URL dell'istanza Resource di un'API distribuita che supporta l'elemento METHOD_HTTP_VERB citato. Per ulteriori informazioni, consulta Riferimento delle istruzioni delle policy IAM per l'esecuzione dell'API in API Gateway.

Nota

Affinché le policy IAM diventino effettive, devi avere abilitato l'autenticazione IAM sui metodi API impostando AWS_IAM per la proprietà authorizationType del metodo. In caso contrario, questi metodi API saranno accessibili pubblicamente.

Ad esempio, per concedere a un utente l'autorizzazione per visualizzare un elenco di animali domestici esposti tramite un'API specificata, rifiutandogli tuttavia l'autorizzazione per aggiungere un animale domestico all'elenco, è possibile includere nella policy IAM l'istruzione seguente:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id:api-id/*/GET/pets" ] }, { "Effect": "Deny", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id:api-id/*/POST/pets" ] } ] }

Per concedere a un utente l'autorizzazione per visualizzare un animale domestico specifico esposto da un'API configurata come GET /pets/{petId}, è possibile includere nella policy IAM l'istruzione seguente:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id:api-id/*/GET/pets/a1b2" ] } ] }

Riferimento delle istruzioni delle policy IAM per l'esecuzione dell'API in API Gateway

Le informazioni seguenti descrivono il formato Action e Resource delle istruzioni di policy IAM per le autorizzazioni di accesso per l'esecuzione di un'API.

Formato dell'elemento Action delle autorizzazioni per l'esecuzione dell'API in API Gateway

Il formato generale dell'espressione Action di esecuzione dell'API è il seguente:

execute-api:action

dove action è un'operazione di esecuzione dell'&API disponibile:

  • *, che rappresenta tutte le operazioni che seguono.

  • Invoke, utilizzato per invocare un'API su richiesta del client.

  • InvalidateCache, utilizzato per invalidare la cache dell'API su richiesta del client.

Formato dell'elemento Resource delle autorizzazioni per l'esecuzione dell'API in API Gateway

Il formato generale dell'espressione Resource di esecuzione dell'API è il seguente:

arn:aws:execute-api:region:account-id:api-id/stage-name/HTTP-VERB/resource-path-specifier

dove:

  • region è la regione AWS (ad esempio us-east-1 o * per tutte le regioni AWS) che corrisponde all'API distribuita per il metodo.

  • account-id è l'id account AWS a 12 cifre del proprietario dell'API REST.

  • api-id è l'identificatore che API Gateway ha assegnato all'API per il metodo.

  • stage-name è il nome della fase associata al metodo.

  • HTTP-VERB è il verbo HTTP per il metodo. Può essere uno dei seguenti: GET, POST, PUT, DELETE, PATCH.

  • resource-path-specifier è il percorso del metodo desiderato.

Nota

Se specifichi un carattere jolly (*), l'espressione Resource applica il carattere jolly al resto dell'espressione.

Alcuni esempi dell'espressione Resource includono:

  • arn:aws:execute-api:*:*:* per qualsiasi percorso di risorsa in qualsiasi fase, per qualsiasi API in qualsiasi regione AWS.

  • arn:aws:execute-api:us-east-1:*:* per qualsiasi percorso di risorsa in qualsiasi fase, per qualsiasi API in qualsiasi regione AWS us-east-1.

  • arn:aws:execute-api:us-east-1:*:api-id/* per qualsiasi percorso di risorsa in qualsiasi fase, per l'API con l'identificatoreapi-id nella Regione AWS us-east-1.

  • arn:aws:execute-api:us-east-1:*:api-id/test/* per il percorso di risorsa nella fase test per l'API con l'identificatore api-id nella Regione AWS us-east-1.

Per ulteriori informazioni, consulta Documentazione di riferimento Amazon Resource Name (ARN) API Gateway.