

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

# Configurare la registrazione per HTTP APIs in API Gateway
<a name="http-api-logging"></a>

È possibile attivare la registrazione per scrivere i log nei registri. CloudWatch È possibile utilizzare [variabili di registrazione](http-api-logging-variables.md) per personalizzare il contenuto dei log.

Per migliorare il tuo livello di sicurezza, ti consigliamo di scrivere i log in CloudWatch Logs per tutte le fasi della tua API HTTP. 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 *.

Per attivare la registrazione per un'API HTTP, è necessario effettuare le seguenti operazioni.

1. Assicurarsi che l'utente disponga delle autorizzazioni necessarie per attivare la registrazione.

1. Crea un gruppo di CloudWatch log Logs.

1. Fornisci l'ARN del gruppo di log CloudWatch Logs per una fase della tua API.

## Autorizzazioni per attivare la registrazione
<a name="http-api-logging.permissions"></a>

Per attivare la registrazione per un'API, l'utente deve disporre delle seguenti autorizzazioni.

**Example**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:GetLogEvents",
                "logs:FilterLogEvents"
            ],
            "Resource": "arn:aws:logs:us-east-2:123456789012:log-group:*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogDelivery",
                "logs:PutResourcePolicy",
                "logs:UpdateLogDelivery",
                "logs:DeleteLogDelivery",
                "logs:CreateLogGroup",
                "logs:DescribeResourcePolicies",
                "logs:GetLogDelivery",
                "logs:ListLogDeliveries"
            ],
            "Resource": "*"
        }
    ]
}
```

## Crea un gruppo di log e attiva la registrazione per HTTP APIs
<a name="http-api-enable-logging"></a>

È possibile creare un gruppo di log e attivare la registrazione degli accessi utilizzando Console di gestione AWS o il. AWS CLI

------
#### [ Console di gestione AWS ]

1.  Creazione di un gruppo di log. 

   Per informazioni su come creare un gruppo di log utilizzando la console, consulta [Create a Log Group in Amazon CloudWatch Logs User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html).

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

1. Scegliere un'API HTTP.

1. Nella scheda **Monitor** (Monitoraggio) nel riquadro di navigazione principale, scegliere **Logging** (Registrazione).

1. Seleziona una fase per attivare la registrazione e scegliere **Select** (Seleziona). 

1. Scegliere **Edit** (Modifica) per attivare la registrazione degli accessi. 

1. Attiva la **registrazione degli accessi**, inserisci un CloudWatch registro e seleziona un formato di registro.

1. Scegli **Save** (Salva).

------
#### [ AWS CLI ]

Il [create-log-group](https://docs.aws.amazon.com/cli/latest/reference/logs/create-log-group.html)comando seguente crea un gruppo di log:

```
aws logs create-log-group --log-group-name my-log-group
```

Per attivare la registrazione, è necessario il nome della risorsa Amazon (ARN) del gruppo di log. Il formato ARN è arn:aws:logs: :log-group:. *region* *account-id* *log-group-name*

Il comando [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigatewayv2/update-stage.html) seguente attiva la registrazione dei log per la fase `$default` di un’API HTTP:

```
aws apigatewayv2 update-stage --api-id abcdef \
    --stage-name '$default' \
    --access-log-settings '{"DestinationArn": "arn:aws:logs:region:account-id:log-group:log-group-name", "Format": "$context.identity.sourceIp - - [$context.requestTime] \"$context.httpMethod $context.routeKey $context.protocol\" $context.status $context.responseLength $context.requestId"}'
```

------

## Formati di log di esempio
<a name="http-api-enable-logging.examples"></a>

Esempi di formati di log di accesso comuni utilizzati con maggiore frequenza sono disponibili nella console API Gateway ed elencati come segue.
+ `CLF` ([Common Log Format](https://httpd.apache.org/docs/current/logs.html#common)):

  ```
  $context.identity.sourceIp - - [$context.requestTime] "$context.httpMethod $context.routeKey $context.protocol" $context.status $context.responseLength $context.requestId $context.extendedRequestId
  ```
+  `JSON`: 

  ```
  { "requestId":"$context.requestId", "ip": "$context.identity.sourceIp", "requestTime":"$context.requestTime", "httpMethod":"$context.httpMethod","routeKey":"$context.routeKey", "status":"$context.status","protocol":"$context.protocol", "responseLength":"$context.responseLength", "extendedRequestId": "$context.extendedRequestId" }
  ```
+ `XML`: 

  ```
  <request id="$context.requestId"> <ip>$context.identity.sourceIp</ip> <requestTime>$context.requestTime</requestTime> <httpMethod>$context.httpMethod</httpMethod> <routeKey>$context.routeKey</routeKey> <status>$context.status</status> <protocol>$context.protocol</protocol> <responseLength>$context.responseLength</responseLength> <extendedRequestId>$context.extendedRequestId</extendedRequestId> </request>
  ```
+ `CSV` (valori separati da virgola):

  ```
  $context.identity.sourceIp,$context.requestTime,$context.httpMethod,$context.routeKey,$context.protocol,$context.status,$context.responseLength,$context.requestId,$context.extendedRequestId
  ```