

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

# Abilitazione dei log di accesso dell'Application Load Balancer
<a name="enable-access-logging"></a>

Quando abiliti i log di accesso per il sistema di bilanciamento del carico, devi specificare il nome del bucket S3 in cui il sistema archivierà i log. Il bucket deve avere una policy di bucket che concede a Elastic Load Balancing l'autorizzazione a scrivere nel bucket.

**Topics**
+ [Fase 1: Crea un bucket S3](#access-log-create-bucket)
+ [Fase 2: collegamento di una policy al bucket S3](#attach-bucket-policy)
+ [Fase 3: configurazione dei log di accesso](#enable-access-logs)
+ [Fase 4: verifica delle autorizzazioni del bucket](#verify-bucket-permissions)
+ [Risoluzione dei problemi](#bucket-permissions-troubleshooting)

## Fase 1: Crea un bucket S3
<a name="access-log-create-bucket"></a>

Quando si abilitano i log di accesso, è necessario specificare un bucket S3 per tali log. È possibile utilizzare un bucket esistente o creare un bucket specifico per i log di accesso. Il bucket deve soddisfare i seguenti requisiti.

**Requisiti**
+ Il bucket deve trovarsi nella stessa regione del load balancer. Il bucket e il load balancer possono essere di proprietà di account differenti.
+ L'unica opzione di crittografia lato server supportata è data dalle chiavi gestite da Amazon S3 (SSE-S3). Per ulteriori informazioni, consulta [Chiavi di crittografia gestite da Amazon S3 (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html).

**Per creare un bucket S3 utilizzando la console Amazon S3**

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

1. Seleziona **Crea bucket**.

1. Nella pagina **Crea bucket**, segui questi passaggi:

   1. In **Nome bucket**, immettere il nome del bucket. Il nome deve essere univoco rispetto a tutti i nomi di bucket esistenti in Amazon S3. In alcune regioni , possono esistere restrizioni aggiuntive sui nomi bucket. Per ulteriori informazioni, consulta [Restrizioni e limitazioni del bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html) nella *Amazon S3* User Guide.

   1. Per **Regione AWS **, seleziona la regione in cui è stato creato il sistema di bilanciamento del carico.

   1. Per la **crittografia predefinita**, scegli **le chiavi gestite da Amazon S3 (SSE-S3)**.

   1. Seleziona **Crea bucket**.

## Fase 2: collegamento di una policy al bucket S3
<a name="attach-bucket-policy"></a>

Il bucket S3 deve avere una policy che conceda a Elastic Load Balancing l'autorizzazione a scrivere i log di accesso nel bucket. Le policy dei bucket sono una raccolta di istruzioni JSON scritte nella sintassi della policy di accesso per definire le autorizzazioni di accesso per il tuo bucket. Ogni istruzione include informazioni su una singola autorizzazione e contiene una serie di elementi.

Se utilizzi un bucket esistente che ha già una policy collegata, puoi aggiungere alla policy l'istruzione per i log di accesso di Elastic Load Balancing. In questo caso, ti consigliamo di valutare il set di autorizzazioni risultante per accertarti che queste siano appropriate agli utenti che devono accedere al bucket per i log di accesso.

### Policy del bucket
<a name="bucket-policy-logdelivery"></a>

Questa politica concede le autorizzazioni per il servizio di consegna dei log.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "logdelivery.elasticloadbalancing.amazonaws.com"
      },
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*"
    }
  ]
}
```

Per`Resource`, inserire l'ARN della posizione per i log di accesso, utilizzando il formato mostrato nella politica di esempio. Includi sempre l'ID dell'account con il sistema di bilanciamento del carico nel percorso delle risorse dell'ARN del bucket S3. Ciò garantisce che solo i sistemi di bilanciamento del carico dell'account specificato possano scrivere i log di accesso al bucket S3.

[L'ARN specificato dipende dal fatto che si intenda includere un prefisso quando si abilitano i log di accesso nel passaggio 3.](#enable-access-logs)

**Esempio: bucket S3 (ARN) con un prefisso**  
Il nome del bucket S3 è e il prefisso è. amzn-s3-demo-logging-bucket logging-prefix

```
arn:aws:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
```

**AWS GovCloud (US)**— L'esempio seguente utilizza la sintassi ARN per. AWS GovCloud (US) Regions

```
arn:aws-us-gov:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
```

**Esempio di ARN per bucket S3 senza prefisso**  
Il nome del bucket S3 è. amzn-s3-demo-logging-bucket Non è presente alcuna porzione di prefisso nell'ARN del bucket S3.

```
arn:aws:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*
```

**AWS GovCloud (US)**— L'esempio seguente utilizza la sintassi ARN per. AWS GovCloud (US) Regions

```
arn:aws-us-gov:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*
```

### Politica Legacy Bucket
<a name="legacy-bucket-policy"></a>

In precedenza, per le regioni disponibili prima di agosto 2022, richiedevamo una politica che concedesse le autorizzazioni a un account Elastic Load Balancing specifico per la regione. Questa politica precedente è ancora supportata, ma ti consigliamo di sostituirla con la politica più recente riportata sopra. Se preferisci continuare a utilizzare la politica precedente, che non è mostrata qui, puoi farlo.

 A titolo IDs di riferimento, ecco gli account Elastic Load Balancing da specificare `Principal` nella policy precedente. Tieni presente che le regioni che non sono presenti in questo elenco non supportano la politica precedente.
+ Stati Uniti orientali (Virginia settentrionale): 127311923021
+ Stati Uniti orientali (Ohio): 033677994240
+ Stati Uniti occidentali (California settentrionale): 027434742980
+ Stati Uniti occidentali (Oregon): 797873946194
+ Africa (Città del Capo): 098369216593
+ Asia Pacifico (Hong Kong): 754344448648
+ Asia Pacifico (Giacarta) – 589379963580
+ Asia Pacifico (Mumbai): 718504428378
+ Asia Pacifico (Osaka-Locale): 383597477331
+ Asia Pacifico (Seoul): 600734575887
+ Asia Pacifico (Singapore): 114774131450
+ Asia Pacifico (Sydney): 783225319266
+ Asia Pacifico (Tokyo): 582318560864
+ Canada (Centrale): 985666609251
+ Europa (Francoforte): 054676820928
+ Europa (Irlanda): 156460612806
+ Europa (Londra): 652711504416
+ Europa (Milano): 635631232127
+ Europa (Parigi): 009996457667
+ Europa (Stoccolma): 897822967062
+ Medio Oriente (Bahrein): 076674570225
+ Sud America (San Paolo): 507241528517
+ AWS GovCloud (Stati Uniti orientali) — 190560391635
+ AWS GovCloud (Stati Uniti occidentali) — 048591011584

### Zone Outpost
<a name="bucket-policy-outposts"></a>

La policy seguente concede le autorizzazioni al servizio di consegna dei log specificato. Utilizzare questa policy per i sistemi di bilanciamento del carico nelle zone Outpost.

```
{
    "Effect": "Allow",
    "Principal": {
        "Service": "logdelivery.elb.amazonaws.com"
    },
    "Action": "s3:PutObject",
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*",
    "Condition": {
        "StringEquals": {
            "s3:x-amz-acl": "bucket-owner-full-control"
        }
    }
}
```

Per`Resource`, inserire l'ARN della posizione per i log di accesso, utilizzando il formato mostrato nella politica di esempio. Includi sempre l'ID dell'account con il sistema di bilanciamento del carico nel percorso delle risorse dell'ARN del bucket S3. Ciò garantisce che solo i sistemi di bilanciamento del carico dell'account specificato possano scrivere i log di accesso al bucket S3.

[L'ARN del bucket S3 specificato dipende dal fatto che si intenda includere un prefisso quando si abilitano i log di accesso nel passaggio 3.](#enable-access-logs)

**Esempio: bucket S3 (ARN) con un prefisso**  
Il nome del bucket S3 è e il prefisso è. amzn-s3-demo-logging-bucket logging-prefix

```
arn:aws:s3:::amzn-s3-demo-logging-bucket/logging-prefix/AWSLogs/123456789012/*
```

**Esempio di ARN per bucket S3 senza prefisso**  
Il nome del bucket S3 è. amzn-s3-demo-logging-bucket Non è presente alcuna porzione di prefisso nell'ARN del bucket S3.

```
arn:aws:s3:::amzn-s3-demo-logging-bucket/AWSLogs/123456789012/*
```

### Best practice di sicurezza
<a name="bucket-policy-security-best-practices"></a>
+ Utilizza il percorso completo delle risorse, inclusa la parte relativa all'ID dell'account dell'ARN del bucket S3. Non utilizzare caratteri jolly (\$1) nella parte relativa all'ID dell'account dell'ARN del bucket S3.

  ```
  "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*"
  ```
+ Utilizzalo `aws:SourceArn` per assicurarti che solo i sistemi di bilanciamento del carico della regione e dell'account specificati possano utilizzare il tuo bucket.

  ```
  "Condition": {
      "ArnLike": {
          "aws:SourceArn": "arn:aws:elasticloadbalancing:region:123456789012:loadbalancer/*"
      }
  }
  ```
+ Usa `aws:SourceOrgId` with `aws:SourceArn` per assicurarti che solo i sistemi di bilanciamento del carico dell'organizzazione specificata possano utilizzare il tuo bucket.

  ```
  "Condition": {
      "StringEquals": {
          "aws:SourceOrgId": "o-1234567890"
      },
      "ArnLike": {
          "aws:SourceArn": "arn:aws:elasticloadbalancing:*:*:loadbalancer/*"
      }
  }
  ```
+ Se hai una `Deny` dichiarazione per impedire l'accesso ai principali di servizio ad eccezione di quelli esplicitamente consentiti, assicurati di aggiungerli `logdelivery.elasticloadbalancing.amazonaws.com` all'elenco dei principali di servizio consentiti. Ad esempio, se hai utilizzato la `aws:PrincipalServiceNamesList` condizione, aggiungi `logdelivery.elasticloadbalancing.amazonaws.com` quanto segue:

  ```
  {
    "Effect": "Deny",
    "Principal": "*",
    "Condition": {
        "StringNotEqualsIfExists": {
            "aws:PrincipalServiceNamesList": [
                "logdelivery.elasticloadbalancing.amazonaws.com",
                "service.amazonaws.com"
            ]
        }
    }
  }
  ```

  Se hai usato l'`NotPrincipal`elemento, aggiungi `logdelivery.elasticloadbalancing.amazonaws.com` quanto segue. Tieni presente che ti consigliamo di utilizzare la chiave di `aws:PrincipalServiceNamesList` condizione `aws:PrincipalServiceName` o per consentire esplicitamente i principali del servizio invece di utilizzare l'`NotPrincipal`elemento. Per ulteriori informazioni, consulta [NotPrincipal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notprincipal.html).

  ```
  {
    "Effect": "Deny",
    "NotPrincipal": {
      "Service": [
         "logdelivery.elasticloadbalancing.amazonaws.com",
         "service.amazonaws.com"
      ]
    }
  },
  ```

Dopo aver creato la tua bucket policy, utilizza un'interfaccia Amazon S3, come la console AWS CLI o i comandi Amazon S3, per collegare la tua bucket policy al bucket S3.

------
#### [ Console ]

**Per collegare la tua bucket policy al tuo bucket S3**

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

1. Seleziona il nome del bucket per aprirne la pagina dei dettagli.

1. Scegli **Autorizzazioni** quindi seleziona **Policy del bucket**, **Modifica**.

1. Crea o aggiorna la policy del bucket per concedere le autorizzazioni richieste.

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

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

**Per collegare la tua policy sui bucket al tuo bucket S3**  
Utilizza il comando [put-bucket-policy](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-policy.html). In questo esempio, la policy del bucket è stata salvata nel file .json specificato.

```
aws s3api put-bucket-policy \
    --bucket amzn-s3-demo-bucket \
    --policy file://access-log-policy.json
```

------

## Fase 3: configurazione dei log di accesso
<a name="enable-access-logs"></a>

Utilizza la seguente procedura per configurare i log di accesso per acquisire le informazioni sulle richieste e fornire i file di registro al tuo bucket S3.

**Requisiti**  
Il bucket deve soddisfare i requisiti descritti nella [fase 1](#access-log-create-bucket) e devi collegare una policy di bucket come descritto nella [fase 2](#attach-bucket-policy). Se includi un prefisso, questo non deve includere la stringa "». AWSLogs

**Per gestire il bucket S3 per i log di accesso**  
Assicurati di disabilitare i log di accesso prima di eliminare il bucket configurato. In caso contrario, se sono presenti un nuovo bucket con lo stesso nome e la policy del bucket richiesta creata però in un account Account AWS non di tua proprietà, Elastic Load Balancing potrebbe scrivere i log di accesso per il sistema di bilanciamento del carico in questo nuovo bucket.

------
#### [ Console ]

**Come abilitare il log degli accessi**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Selezionare **Sistemi di bilanciamento del carico** nel riquadro di navigazione.

1. Seleziona il nome del sistema di bilanciamento del carico per aprirne la pagina dei dettagli.

1. Nella scheda **Attributi**, scegli **Modifica**.

1. In **Monitoraggio**, abilita **Log di accesso**.

1. In **URI S3**, inserisci l'URI S3 per i tuoi file di log. L'URI specificato dipende dall'utilizzo di un prefisso.
   + URI con prefisso: s3:///*amzn-s3-demo-logging-bucket**logging-prefix*
   + URI senza prefisso: s3://*amzn-s3-demo-logging-bucket*

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

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

**Come abilitare il log degli accessi**  
Usa il [modify-load-balancer-attributes](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-load-balancer-attributes.html)comando con gli attributi correlati.

```
aws elbv2 modify-load-balancer-attributes \
    --load-balancer-arn load-balancer-arn \
    --attributes \
        Key=access_logs.s3.enabled,Value=true \
        Key=access_logs.s3.bucket,Value=amzn-s3-demo-logging-bucket \
        Key=access_logs.s3.prefix,Value=logging-prefix
```

------
#### [ CloudFormation ]

**Come abilitare il log degli accessi**  
Aggiorna la [AWS::ElasticLoadBalancingV2::LoadBalancer](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-loadbalancer.html)risorsa per includere gli attributi correlati.

```
Resources:
  myLoadBalancer:
    Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
    Properties:
      Name: my-alb
      Type: application
      Scheme: internal
      Subnets: 
        - !Ref subnet-AZ1
        - !Ref subnet-AZ2
      SecurityGroups: 
        - !Ref mySecurityGroup
      LoadBalancerAttributes: 
        - Key: "access_logs.s3.enabled"
          Value: "true"
        - Key: "access_logs.s3.bucket"
          Value: "amzn-s3-demo-logging-bucket"
        - Key: "access_logs.s3.prefix"
          Value: "logging-prefix"
```

------

## Fase 4: verifica delle autorizzazioni del bucket
<a name="verify-bucket-permissions"></a>

Dopo avere abilitato i log di accesso per il load balancer, Elastic Load Balancing convalida il bucket S3 e crea un file di test per garantire che la policy del bucket specifichi le autorizzazioni richieste. Puoi utilizzare la console Amazon S3 per verificare che il file di test sia stato creato. Il file di test non è un file di log di accesso reale: non contiene i record di esempio.

**Per verificare che nel bucket sia stato creato un file di test utilizzando la console Amazon S3**

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

1. Seleziona il nome del bucket che hai specificato per i log di accesso.

1. Accedi al file di test, `ELBAccessLogTestFile`. La posizione dipende dall'utilizzo di un prefisso.
   + Posizione con prefisso:*amzn-s3-demo-logging-bucket*//*logging-prefix*/AWSLogs*123456789012*ELBAccessLogTestFile
   + Posizione senza prefisso:*amzn-s3-demo-logging-bucket*///AWSLogs*123456789012*ELBAccessLogTestFile

## Risoluzione dei problemi
<a name="bucket-permissions-troubleshooting"></a>

L'errore di accesso negato può essere provocato da una delle cause elencate di seguito:
+ Il bucket deve avere una policy collegata che concede al sistema di bilanciamento del carico elastico l'autorizzazione a scrivere nel bucket. Verifica di utilizzare la policy di bucket corretta per la regione. Verifica che la risorsa ARN utilizzi lo stesso nome di bucket specificato quando i log di accesso sono abilitati. Verifica che la risorsa ARN non includa un prefisso se non hai specificato un prefisso, quando i log di accesso sono abilitati.
+ Il bucket utilizza un'opzione di crittografia lato server non supportata. Il bucket deve utilizzare chiavi gestite da Amazon S3 (SSE-S3).