

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
<a name="api-gateway-control-access-using-iam-policies-to-invoke-api"></a>

In questa sezione viene illustrato il modello di autorizzazioni per controllare l'accesso all'API utilizzando le autorizzazioni IAM. Quando l'autorizzazione IAM è abilitata, i client devono utilizzare Signature Version 4a (SigV4a) e Signature Version 4 (SigV4) per firmare le loro richieste con credenziali. AWS Per ulteriori informazioni, consultare [AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html).

Questa sezione illustra un modello di istruzione di policy IAM e il riferimento all’istruzione di policy. Il riferimento all'istruzione di policy include i formati dei campi `Action` e `Resource` correlati al servizio di esecuzione dell'API. Si utilizzano questi riferimenti per creare l'istruzione di policy IAM. Quando si crea l'istruzione di policy IAM, è opportuno a volte considerare il modo in cui le policy delle risorse Gateway API influiscono sul flusso di lavoro di autorizzazione. Per ulteriori informazioni, consulta [Come le policy delle risorse API Gateway influiscono sul flusso di lavoro delle autorizzazioni](apigateway-authorization-flow.md).

Per uso privato APIs, è necessario utilizzare una combinazione di una policy per le risorse di API Gateway e una policy per gli endpoint VPC. Per ulteriori informazioni, consulta i seguenti argomenti:
+ [Controllo degli accessi a una REST API con le policy delle risorse Gateway API](apigateway-resource-policies.md)
+ [Usa le policy degli endpoint VPC per uso privato APIs in API Gateway](apigateway-vpc-endpoint-policies.md)

## Controllo di chi può chiamare un metodo API di API Gateway con le policy IAM
<a name="api-gateway-who-can-invoke-an-api-method-using-iam-policies"></a>

 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. 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Permission",
      "Action": [
        "execute-api:Execution-operation"           
      ],
      "Resource": [
        "arn:aws:execute-api:region:123456789012: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](https://docs.aws.amazon.com/apigateway/latest/api/API_Resource.html)` 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](#api-gateway-calling-api-permissions). 

**Nota**  
Affinché le policy IAM diventino effettive, devi avere abilitato l'autenticazione IAM sui metodi API impostando `AWS_IAM` per la proprietà `[authorizationType](https://docs.aws.amazon.com/apigateway/latest/api/API_Method.html#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: 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "execute-api:Invoke"           
      ],
      "Resource": [
        "arn:aws:execute-api:us-east-1:111111111111:api-id/*/GET/pets"
      ]
    },
    {
      "Effect": "Deny",
      "Action": [
        "execute-api:Invoke"           
      ],
      "Resource": [
        "arn:aws:execute-api:us-east-1:111111111111: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:

------
#### [ JSON ]

****  

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

------

## Riferimento delle istruzioni delle policy IAM per l'esecuzione dell'API in API Gateway
<a name="api-gateway-calling-api-permissions"></a>

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
<a name="api-gateway-iam-policy-action-format-for-executing-api"></a>

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

```
execute-api:action
```

dove *action* è disponibile un'azione di esecuzione dell'API:
+ **\$1**, 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
<a name="api-gateway-iam-policy-resource-format-for-executing-api"></a>

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 AWS regione (come **us-east-1** o **\$1** per tutte le AWS regioni) che corrisponde all'API distribuita per il metodo.
+ *account-id*è l'ID dell' AWS account 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 dello stadio associato 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:\$1:\$1:\$1**per qualsiasi percorso di risorsa in qualsiasi fase, per qualsiasi API in qualsiasi AWS regione.
+ **arn:aws:execute-api:us-east-1:\$1:\$1**per qualsiasi percorso di risorsa in qualsiasi fase, per qualsiasi API nella AWS regione di`us-east-1`.
+ **arn:aws:execute-api:us-east-1:\$1:*api-id*/\$1**per qualsiasi percorso di risorsa in qualsiasi fase, per l'API con l'identificatore di *api-id* nella AWS regione us-east-1.
+ **arn:aws:execute-api:us-east-1:\$1:*api-id*/`test`/\$1**per qualsiasi percorso di risorsa nella fase di`test`, per l'API con l'identificatore di *api-id* nella AWS regione us-east-1.

Per ulteriori informazioni, consulta [Documentazione di riferimento Amazon Resource Name (ARN) API Gateway](arn-format-reference.md).