

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

# Distribuzione dei log di accesso al server a Logs CloudWatch
<a name="sal-cw-enabling"></a>

Puoi distribuire i log di accesso al server Amazon S3 a un gruppo di log CloudWatch Logs utilizzando Amazon CloudWatch Logs vended log delivery. Una volta che i log sono in CloudWatch Logs, puoi interrogarli con CloudWatch Logs Insights, aggregarli tra account e regioni, crittografarli con AWS Key Management Service (AWS KMS) e, facoltativamente, distribuirli alle tabelle Amazon S3 in formato Apache Iceberg per l'analisi SQL. Puoi anche inviare i log ad Amazon S3 in formato JSON o Apache Parquet o instradarli tramite Amazon Data Firehose.

Puoi configurare la distribuzione utilizzando le API CloudWatch Logs, non le API di Amazon S3. Specifichi un gruppo di log per ogni bucket di origine. Più bucket possono condividere lo stesso gruppo di log oppure ogni bucket può inviare dati al proprio.

**Suggerimento**  
È possibile impostare più destinazioni per lo stesso bucket. Ad esempio, distribuiscilo a un gruppo di log CloudWatch Logs per l'interrogazione interattiva e distribuiscilo contemporaneamente ad Amazon S3 in formato Parquet per una conservazione a lungo termine a costi inferiori.

**Nota**  
CloudWatch Logs vended log delivery supporta anche Amazon Data Firehose e Amazon S3 come destinazioni di consegna, incluso il formato di output Apache Parquet. Questa pagina copre la destinazione del gruppo di log CloudWatch Logs, che supporta anche l'integrazione di S3 Tables per l'analisi SQL. Per informazioni sulle destinazioni Firehose e Amazon S3, [consulta Enable logging from AWS services](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html) nella *Amazon CloudWatch * Logs User Guide.

**Nota**  
Per informazioni sulla distribuzione dei log di accesso al server a un bucket generico Amazon S3, invece, consulta. [Abilitazione della registrazione degli accessi al server Amazon S3](enable-server-access-logging.md)

## Prerequisiti
<a name="sal-cw-prerequisites"></a>

Prima di configurare la consegna, è necessario quanto segue:
+ Un bucket Amazon S3 per uso generico (il bucket di origine che desideri registrare).
+ Un gruppo di log CloudWatch Logs nello stesso Regione AWS del bucket di origine.
+ Autorizzazioni IAM per il chiamante. Sono necessarie almeno le seguenti autorizzazioni:
  + `logs:PutDeliverySource`
  + `logs:PutDeliveryDestination`
  + `logs:CreateDelivery`
  + `s3:AllowVendedLogDeliveryForResource`(nel bucket di origine)

  Se prevedi di abilitare l'integrazione con S3 Tables, hai anche bisogno di:
  + `observabilityadmin:CreateS3TableIntegration`
  + `logs:AssociateSourceToS3TableIntegration`
  + `s3tables:CreateTableBucket`
  + `s3tables:PutTableBucketEncryption`
  + `s3tables:PutTableBucketPolicy`

## Configurazione della consegna (AWS CLI)
<a name="sal-cw-setup-cli"></a>

Per configurare la consegna dei registri di accesso al server ai CloudWatch registri utilizzando il AWS Command Line Interface, completare i tre passaggi seguenti.

1. **Crea una fonte di consegna.** Questo registra il tuo bucket Amazon S3 come origine di log con Logs. CloudWatch 

   ```
   aws logs put-delivery-source \
     --name {{my-sal-source}} \
     --resource-arn arn:aws:s3:::{{my-bucket}} \
     --log-type S3_SERVER_ACCESS_LOGS
   ```

1. **Crea una destinazione di consegna.** Questo specifica il gruppo di CloudWatch log Logs in cui verranno consegnati i registri.

   ```
   aws logs put-delivery-destination \
     --name {{my-sal-destination}} \
     --delivery-destination-configuration '{"destinationResourceArn": "arn:aws:logs:{{us-east-1}}:{{123456789012}}:log-group:{{my-sal-logs}}"}'
   ```

1. **Crea una consegna.** Questo collega l'origine alla destinazione e avvia la consegna dei log.

   ```
   aws logs create-delivery \
     --delivery-source-name {{my-sal-source}} \
     --delivery-destination-arn arn:aws:logs:{{us-east-1}}:{{123456789012}}:delivery-destination:{{my-sal-destination}}
   ```

Dopo aver completato questi passaggi, Amazon S3 inizia a fornire i log di accesso al server al tuo gruppo di log CloudWatch Logs. La propagazione della configurazione richiede 15-20 minuti. Dopo la propagazione, la consegna dei log inizia in genere entro poche ore. Vengono registrate solo le nuove richieste: non viene effettuato alcun riempimento dei dati storici.

## Configurazione della consegna (console Amazon S3)
<a name="sal-cw-setup-console"></a>

1. Accedi alla console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Nel pannello di navigazione a sinistra, scegli **Buckets** (Bucket).

1. Scegli il nome del bucket di origine per il quale desideri abilitare la registrazione.

1. Scegliere la scheda **Properties (Proprietà)**.

1. **Nella sezione **Consegna dei registri di accesso al server ai CloudWatch registri, scegli Modifica.****

1. Scegli **Abilita **.

1. Seleziona o crea un gruppo di log CloudWatch Logs come destinazione di consegna.

1. **(Facoltativo) Per inviare i log a S3 Tables in formato Apache Iceberg, seleziona Abilita l'integrazione con S3 Tables.**

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

Dopo il salvataggio, la sezione **Consegna dei registri di accesso al server ai registri visualizza il gruppo di CloudWatch log abilitato**.

## Configurazione della consegna (CloudFormation)
<a name="sal-cw-setup-cfn"></a>

È possibile utilizzare AWS CloudFormation per automatizzare la configurazione della consegna dei log di accesso al server a CloudWatch Logs. Il modello seguente crea le risorse richieste: un ruolo IAM, un gruppo di log CloudWatch Logs, una fonte di consegna, una destinazione di consegna e una consegna.

```
AWSTemplateFormatVersion: '2010-09-09'
Description: S3 Access Logs delivery to CloudWatch Logs

Parameters:
  SourceBucketArn:
    Type: String
    Description: ARN of the S3 bucket to enable access logging
  LogGroupName:
    Type: String
    Default: /aws/s3/access-logs
    Description: CloudWatch Log Group name for SAL delivery

Resources:
  SALLogGroup:
    Type: AWS::Logs::LogGroup
    Properties:
      LogGroupName: !Ref LogGroupName
      RetentionInDays: 180

  SALDeliverySource:
    Type: AWS::Logs::DeliverySource
    Properties:
      Name: !Sub '${AWS::StackName}-sal-source'
      ResourceArn: !Ref SourceBucketArn
      LogType: S3_SERVER_ACCESS_LOGS

  SALDeliveryDestination:
    Type: AWS::Logs::DeliveryDestination
    Properties:
      Name: !Sub '${AWS::StackName}-sal-destination'
      DestinationResourceArn: !GetAtt SALLogGroup.Arn

  SALDelivery:
    Type: AWS::Logs::Delivery
    Properties:
      DeliverySourceName: !Ref SALDeliverySource
      DeliveryDestinationArn: !GetAtt SALDeliveryDestination.Arn
```

## Abilitazione dell'integrazione con S3 Tables (opzionale)
<a name="sal-cw-tables-integration"></a>

Quando abiliti l'integrazione con S3 Tables, CloudWatch Logs invia automaticamente i log di accesso al server in formato Apache Iceberg al bucket di tabelle `aws-cloudwatch` gestito del tuo account. Puoi quindi interrogare questi dati utilizzando Amazon Athena, Amazon Redshift o qualsiasi altro strumento. Iceberg-compatible 

Non sono previsti costi aggiuntivi per l'archiviazione o la manutenzione delle tabelle nell'integrazione con S3 Tables. Paghi solo per l'inserimento CloudWatch dei log e per le richieste di query ai prezzi di S3 Tables.

1. **Crea l'integrazione con S3 Tables** (una volta per account per regione).

   ```
   aws observabilityadmin create-s3-table-integration \
     --role-arn arn:aws:iam::{{123456789012}}:role/{{CWLogsS3TableIntegrationRole}} \
     --encryption '{"SseAlgorithm": "AES256"}'
   ```

   Il ruolo IAM deve affidarsi al responsabile del `logs.amazonaws.com` servizio e concedere l'`logs:integrateWithS3Table`autorizzazione. Di seguito è illustrato un esempio di policy di attendibilità:

   ```
   		 	 	 {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "logs.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "StringEquals": {
             "aws:SourceAccount": "{{123456789012}}"
           },
           "ArnLike": {
             "aws:SourceArn": "arn:aws:logs:{{us-east-1}}:{{123456789012}}:log-group:{{log-group-name}}"
           }
         }
       }
     ]
   }
   ```

   Il ruolo richiede anche la seguente politica di autorizzazione:

   ```
   		 	 	 {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "logs:integrateWithS3Table",
         "Resource": "arn:aws:logs:{{us-east-1}}:{{123456789012}}:log-group:{{log-group-name}}",
         "Condition": {
           "StringEquals": {
             "aws:ResourceAccount": "{{123456789012}}"
           }
         }
       }
     ]
   }
   ```

1. **Associa la tua fonte di consegna all'integrazione.**

   ```
   aws logs associate-source-to-s3-table-integration \
     --integration-arn {{integration-arn}} \
     --data-source '{"name":"amazon_s3","type":"server_access"}'
   ```

Dopo questi passaggi, CloudWatch Logs crea il bucket tabellare `aws-cloudwatch` gestito e inizia a fornire i log in formato Iceberg. I dati vengono in genere visualizzati entro un'ora dalla prima consegna a Logs. CloudWatch 

Per informazioni sull'interrogazione dell'integrazione con S3 Tables, consulta. [Interrogazione dei log di accesso nelle tabelle S3](sal-cw-querying-s3tables.md)

## Cross-account e aggregazione tra regioni
<a name="sal-cw-cross-account"></a>

Il percorso di consegna CloudWatch dei log supporta l'aggregazione dei log tra account e tra regioni con due opzioni:
+ **CloudWatch l'osservabilità tra account consente di** interrogare i log esistenti tra più account senza copiare i dati.
+ **CloudWatch La centralizzazione dei log** consente di consolidare i log di più account e regioni in un gruppo di log centrale, utilizzando opzionalmente filtri di abbonamento per l'inoltro selettivo.

Per le configurazioni con più account, gli amministratori possono utilizzare le regole di abilitazione di Telemetry CloudWatch Config per abilitare automaticamente la consegna dei log di accesso AWS Organizations al server tra gli account dei membri.

**Nota**  
Le regole di abilitazione attualmente non supportano l'abilitazione automatica dell'integrazione con S3 Tables. È necessario abilitare l'integrazione separatamente in ogni account.

## Encryption (Crittografia)
<a name="sal-cw-encryption"></a>

È possibile crittografare i log di accesso al server inviati a CloudWatch Logs configurando la AWS KMS crittografia nel gruppo di log. Quando i log di accesso al server vengono consegnati a quel gruppo di log, vengono crittografati con la tua chiave. AWS KMS Ciò risolve una limitazione fondamentale del percorso di distribuzione dei bucket generici di Amazon S3, che supporta solo la crittografia. SSE-S3 

Se abiliti l'integrazione di S3 Tables con un gruppo AWS KMS di log crittografato, devi concedere autorizzazioni aggiuntive nella tua policy AWS KMS chiave ai seguenti responsabili di servizio:

```
		 	 	 {
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "EnableCWSystemTablesKeyUsage",
      "Effect": "Allow",
      "Principal": {
        "Service": "systemtables.cloudwatch.amazonaws.com"
      },
      "Action": [
        "kms:DescribeKey",
        "kms:GenerateDataKey",
        "kms:Decrypt"
      ],
      "Resource": "arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/{{key-id}}",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "{{123456789012}}"
        }
      }
    },
    {
      "Sid": "EnableS3TablesMaintenanceKeyUsage",
      "Effect": "Allow",
      "Principal": {
        "Service": "maintenance.s3tables.amazonaws.com"
      },
      "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
      ],
      "Resource": "arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/{{key-id}}",
      "Condition": {
        "StringLike": {
          "kms:EncryptionContext:aws:s3:arn": "{{table-bucket-arn}}/*"
        }
      }
    }
  ]
}
```

Il `systemtables.cloudwatch.amazonaws.com` principale viene utilizzato da CloudWatch Logs per scrivere log su S3 Tables. Il `maintenance.s3tables.amazonaws.com` principio viene utilizzato da S3 Tables per operazioni Iceberg come la compattazione.

## Disabilitazione della consegna
<a name="sal-cw-disabling"></a>

Per interrompere l'invio dei log di accesso al server a CloudWatch Logs, puoi eliminare la consegna o la fonte di consegna:
+ **Elimina la consegna**: interrompe la consegna dei log ma mantiene intatta la configurazione dell'origine di consegna. Puoi creare una nuova consegna in un secondo momento senza riconfigurare l'origine.

  ```
  aws logs delete-delivery \
    --id {{delivery-id}}
  ```
+ **Elimina la fonte di consegna**: rimuove completamente la configurazione di origine. Usalo se non desideri più che il bucket sia associato alla consegna CloudWatch dei log.

  ```
  aws logs delete-delivery-source \
    --name {{delivery-source-name}}
  ```

I log precedentemente forniti rimangono nel gruppo di log e nell'integrazione con S3 Tables (se abilitata). L'eliminazione della consegna non rimuove i dati di registro esistenti.