

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à.

# Registrazione dell'esecuzione per le API REST
<a name="rest-api-execution-logging"></a>

La registrazione dell'esecuzione registra le azioni intraprese da API Gateway per elaborare una richiesta API. I dati registrati includono errori, tracce di esecuzione, valori o payload dei parametri di richiesta e risposta, dati utilizzati dagli autorizzatori Lambda, se sono necessarie le chiavi API e se i piani di utilizzo sono abilitati. Gateway API oscura le intestazioni di autorizzazione, i valori delle chiavi API e parametri di richiesta sensibili simili dai dati registrati nei log.

Per migliorare il livello di sicurezza, è consigliabile utilizzare la registrazione nei log dell’esecuzione a livello di `ERROR` o `INFO`. Potrebbe essere necessario eseguire questa operazione per rispettare vari framework di conformità. Per ulteriori informazioni, consultare [Amazon API Gateway controls](https://docs.aws.amazon.com/securityhub/latest/userguide/apigateway-controls.html) nella *Guida per l’utente di AWS Security Hub *.

## Registrazione standard delle esecuzioni
<a name="rest-api-execution-logging-standard"></a>

Quando abiliti la registrazione delle esecuzioni su uno stage, API Gateway crea e gestisce automaticamente un gruppo di CloudWatch log Logs. Il gruppo di log è denominato`API-Gateway-Execution-Logs_{rest-api-id}/{stage_name}`. All'interno di ciascun gruppo di log, i log sono suddivisi in flussi di log ordinati in base all'ora ** dell'**ultimo evento.

Con registrazione di esecuzione standard:
+ Gli eventi di registro vengono troncati a 1 KB.
+ API Gateway gestisce il nome del gruppo di log. Non puoi scegliere il nome del gruppo di log o inviare i log direttamente ad Amazon S3 o Firehose.

Per abilitare la registrazione di esecuzione standard, imposta `loggingLevel` on your stage su o. `ERROR` `INFO` Non è richiesta alcuna configurazione aggiuntiva.

### Permissions
<a name="rest-api-execution-logging-permissions"></a>

Per abilitare CloudWatch i log, devi concedere ad API Gateway l'autorizzazione per leggere e scrivere CloudWatch i log del tuo account. La policy [ AmazonAPIGatewayPushToCloudWatchLogs ](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAPIGatewayPushToCloudWatchLogs.html) gestita dispone di tutte le autorizzazioni richieste.

Crea un ruolo IAM con `apigateway.amazonaws.com` entità attendibile, allega la policy precedente e imposta l'ARN del ruolo IAM sulla WatchRoleArn [ proprietà ](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateAccount.html#cloudWatchRoleArn) cloud del tuo account. [https://docs.aws.amazon.com/apigateway/latest/api/API_GetAccount.html](https://docs.aws.amazon.com/apigateway/latest/api/API_GetAccount.html) È necessario impostare questa proprietà separatamente per ogni AWS regione in cui si desidera abilitare i log. CloudWatch 

**Nota**  
API Gateway chiama Servizio di token di sicurezza AWS per assumere il ruolo IAM, quindi assicurati che AWS STS sia abilitato per la regione. Per ulteriori informazioni, consulta [ Gestire AWS STS in una AWS regione](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html).

### Abilita la registrazione delle esecuzioni (console)
<a name="rest-api-execution-logging-console"></a>

Prima di iniziare, implementa l'API in una fase e configura un ARN del ruolo CloudWatch Logs appropriato per il tuo account.

1. Accedi alla console API Gateway all'indirizzo. [ https://console.aws.amazon.com/apigateway ](https://console.aws.amazon.com/apigateway)

1. Nel pannello di navigazione principale, scegli **Impostazioni**, quindi in **Registrazione** seleziona **Modifica**.

1. Per il ruolo di ** CloudWatch registro ARN**, inserisci l'ARN di un ruolo IAM con le autorizzazioni appropriate. È necessario eseguire questa operazione una volta per ogni utente Account AWS che crea API utilizzando API Gateway.

1. Nel pannello di navigazione principale, scegli le ** API**, scegli la tua API REST e quindi scegli ** Stages. **

1. Scegli una fase, quindi nella ** sezione ** Log and tracing, scegli ** Modifica. **

1. Seleziona un livello di registrazione dal menu a ** discesa ** CloudWatch Logs:
   + **Disattivato**: API Gateway non registra le richieste per questa fase.
   + **Solo errori**: API Gateway registra solo gli errori.
   + **Errori e registri informativi**: API Gateway registra tutti gli eventi.

1. (Facoltativo) Seleziona ** Data tracing ** per registrare i dati completi di richieste e risposte. Ciò può comportare la registrazione di dati sensibili.
**Nota**  
Si consiglia di non utilizzare **Tracciamento dei dati** per le API di produzione.

1. (Facoltativo) Seleziona Metriche ** dettagliate ** per attivare le metriche dettagliate CloudWatch . Per ulteriori informazioni, consulta [Monitora l'esecuzione delle API REST con i CloudWatch parametri di Amazon](monitoring-cloudwatch.md).

1. Scegli **Salva modifiche**.

Non è necessario ridistribuire l'API quando si aggiornano le impostazioni della fase.

### Abilita la registrazione delle esecuzioni (CloudFormation)
<a name="rest-api-execution-logging-cfn"></a>

Utilizzate la `MethodSettings` proprietà sulla risorsa dello stage per abilitare la registrazione delle esecuzioni.

```
  TestStage:
    Type: AWS::ApiGateway::Stage
    Properties:
      StageName: test
      RestApiId: !Ref MyAPI
      DeploymentId: !Ref Deployment
      MethodSettings:
        - ResourcePath: "/*"
          HttpMethod: "*"
          LoggingLevel: INFO
```

Per abilitare CloudWatch i log, devi concedere ad API Gateway l'autorizzazione per leggere e scrivere CloudWatch i log del tuo account. Per ulteriori informazioni, consulta [Associate account with IAM role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-account.html#aws-resource-apigateway-account--examples) nella *Guida per l'utente di AWS CloudFormation *.

## CloudWatch Distribuzione dei log di esecuzione da Amazon Logs
<a name="rest-api-execution-logging-delivery"></a>

La distribuzione di Amazon CloudWatch Logs fornisce un percorso alternativo per i log di esecuzione. Invece di scrivere su un gruppo di Gateway-managed log API, configuri una consegna che invia i log di esecuzione alle destinazioni che possiedi e controlli.

Con la distribuzione di Amazon CloudWatch Logs:
+ Gli eventi di registro possono pesare fino a 1 MB e consentono di acquisire dati più completi su richieste e risposte. I payload che superano 1 MB vengono comunque troncati.
+ Scegli la destinazione: i tuoi gruppi di CloudWatch log Logs, bucket Amazon S3 o stream Firehose.
+ Puoi inviare i log a più destinazioni contemporaneamente.
+ Sei tu a controllare la configurazione del gruppo di log, inclusa la denominazione e la conservazione.

**Importante**  
CloudWatch La consegna dei log sostituisce la registrazione di esecuzione standard. Quando si configura una distribuzione, API Gateway interrompe la scrittura nel gruppo di log gestito automaticamente. Non è possibile utilizzare entrambi i percorsi contemporaneamente per la stessa fase.

Quando crei una consegna, API Gateway indirizza i log di esecuzione alle destinazioni configurate anziché al gruppo di log gestito automaticamente. Quando si elimina una consegna, i log di esecuzione riprendono automaticamente il flusso verso il gruppo di log gestito automaticamente. Non sono necessarie modifiche alla configurazione di API Gateway oltre al prerequisito di impostazione `loggingLevel` su o. `ERROR` `INFO`

**Nota**  
La consegna dei log è la soluzione migliore. In rari casi, alcuni eventi di registro potrebbero non essere consegnati.

**avvertimento**  
Prima di abilitare la distribuzione dei log, aggiorna eventuali dashboard, allarmi o filtri di abbonamento che fanno riferimento al gruppo di log gestito automaticamente (). `API-Gateway-Execution-Logs_{rest-api-id}/{stage_name}` Una volta che la consegna è attiva, quel gruppo di log non riceve più nuovi eventi.

La tabella seguente confronta la registrazione di esecuzione standard con la distribuzione di Amazon CloudWatch Logs.


|  | Registrazione di esecuzione standard | Consegna di Amazon CloudWatch Logs | 
| --- | --- | --- | 
| Dimensione massima degli eventi di registro | 1 KB | 1 MB | 
| Destinazioni | CloudWatch Log (gruppo di log gestito) | CloudWatch Logs, Amazon S3, Firehose (risorse proprie) | 
| Diverse destinazioni | No | Sì | 
| Nome del gruppo di log | Risolto da API Gateway | Scegli tu | 
| Configurazione | Automatico quando la registrazione è abilitata | Richiede la creazione di una consegna Amazon CloudWatch Logs | 
| Prerequisito | Impostato loggingLevel su ERROR o INFO | Impostato loggingLevel su ERROR o INFO | 

**Nota**  
Se si imposta su `loggingLevel` `OFF` dopo aver configurato una consegna, non viene generato o consegnato alcun registro di esecuzione. Le destinazioni di consegna rimangono configurate ma non ricevono dati.

Per creare una spedizione, consulta[Crea una distribuzione di log per i log di esecuzione dell'API REST](rest-api-create-log-delivery.md).