

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

# Monitoraggio Amazon ECR
<a name="monitoring"></a>

Puoi monitorare l'utilizzo dell'API Amazon ECR con Amazon CloudWatch, che raccoglie ed elabora i dati grezzi da Amazon ECR in metriche leggibili quasi in tempo reale. Queste statistiche vengono registrate per un periodo di due settimane in modo da poter accedere alle informazioni storiche e avere una prospettiva sull'utilizzo delle API. I dati metrici di Amazon ECR vengono inviati automaticamente CloudWatch in periodi di un minuto. Per ulteriori informazioni CloudWatch, consulta la [Amazon CloudWatch User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/).

Amazon ECR fornisce i parametri basati sull'utilizzo dell'API per le azioni di autorizzazione, invio ed estrazione di immagini.

Il monitoraggio è una parte importante per mantenere l'affidabilità, la disponibilità e le prestazioni di Amazon ECR e delle tue AWS soluzioni. Ti consigliamo di raccogliere i dati di monitoraggio dalle risorse che compongono la tua AWS soluzione in modo da poter eseguire più facilmente il debug di un errore multipunto, se si verifica. Prima di iniziare il monitoraggio di Amazon ECR è tuttavia opportuno creare un piano di monitoraggio che includa le risposte alle seguenti domande:
+ Quali sono gli obiettivi del monitoraggio?
+ Di quali risorse si intende eseguire il monitoraggio?
+ Con quale frequenza sarà eseguito il monitoraggio di queste risorse?
+ Quali strumenti di monitoraggio verranno utilizzati?
+ Chi eseguirà i processi di monitoraggio?
+ Chi deve ricevere una notifica quando si verifica un problema?

La fase successiva consiste nello stabilire una baseline per le prestazioni normali di Amazon ECR nell'ambiente, misurando le prestazioni in diversi momenti e con condizioni di carico differenti. Quando monitori Amazon ECR, archivia i dati di monitoraggio cronologici per poterli confrontare con i nuovi dati sulle prestazioni e per poter identificare i normali modelli di prestazioni e le anomalie e ideare metodi per risolvere i problemi.

**Topics**
+ [Visualizzazione delle quote di servizio e impostazione degli allarmi](monitoring-quotas-alarms.md)
+ [Parametri di utilizzo Amazon ECR](monitoring-usage.md)
+ [Report di utilizzo di Amazon ECR](usage-reports.md)
+ [Parametri del repository Amazon ECR](ecr-repository-metrics.md)
+ [Eventi Amazon ECR e EventBridge](ecr-eventbridge.md)
+ [Registrazione delle azioni Amazon ECR con AWS CloudTrail](logging-using-cloudtrail.md)

# Visualizzazione delle quote di servizio e impostazione degli allarmi
<a name="monitoring-quotas-alarms"></a>

Puoi utilizzare la CloudWatch console per visualizzare le quote di servizio e confrontare l'utilizzo attuale con le quote di servizio. Puoi anche impostare gli allarmi per ricevere una notifica quando ti avvicini a una quota.

**Per visualizzare una quota di servizio e impostare facoltativamente un allarme**

1. Apri la console all'indirizzo. CloudWatch [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)

1. Nel riquadro di navigazione, seleziona **Parametri**.

1. Nella scheda **All metrics** (Tutti i parametri), scegli **Usage** (Utilizzo), quindi seleziona **By AWS Resource** (Per risorsa).

   Viene visualizzato l'elenco dei parametri di utilizzo delle quote di servizio.

1. Seleziona la casella di controllo accanto a uno dei parametri.

   Il grafico mostra l'utilizzo corrente di quella AWS risorsa.

1. Per aggiungere la quota di servizio al grafico, procedere come indicato di seguito:

   1. Seleziona la scheda **Graphed metrics** (Parametri nel grafico).

   1. Scegli **Math expression** (Espressione matematica), **Start with an empty expression** (Inizia con un'espressione vuota). Quindi nella nuova riga, in **Details (Dettagli)**, immettere **SERVICE\$1QUOTA(m1)**.

      Una nuova riga viene aggiunta al grafico, visualizzando la quota di servizio per la risorsa rappresentata nel parametro.

1. Per visualizzare l'utilizzo corrente come una percentuale della quota, aggiungere una nuova espressione o modificare l'espressione **SERVICE\$1QUOTA** corrente. Per la nuova espressione, utilizzare **m1/60/SERVICE\$1QUOTA(m1)\$1100**

1. (Facoltativo) Per impostare un allarme che avvisa se ci si avvicina alla quota di servizio, procedere nel modo seguente:

   1. Nella riga **m1/60/SERVICE\$1QUOTA(m1)\$1100**, in **Actions (Operazioni)**, scegliere l'icona di allarme. L'aspetto è simile quello di una campana.

      Viene visualizzata la pagina di creazione dell'allarme.

   1. In **Conditions** (Condizioni), assicurarti che **Threshold type** (Tipo di soglia) sia **Static** (Statico) e **Whenever Expression1 is** (Ogni volta che Expression1 è) sia impostato su **Greater** (Maggiore). In **than** (di), immetti **80**. Viene creato un allarme che passo nello stato ALARM quando l'utilizzo supera l'80% della quota.

   1. Scegli **Next (Successivo)**.

   1. Nella pagina successiva, selezionare un argomento Amazon SNS o crearne uno nuovo. Questo argomento riceve una notifica quando l'allarme passa nello stato ALLARME. Quindi scegli **Successivo**.

   1. Nella pagina successiva, immetti un nome e una descrizione per l'allarme, quindi scegli **Next** (Avanti).

   1. Scegli **Crea allarme**.

# Parametri di utilizzo Amazon ECR
<a name="monitoring-usage"></a>

Puoi utilizzare le metriche di CloudWatch utilizzo per fornire visibilità sull'utilizzo delle risorse da parte del tuo account. Utilizza queste metriche per visualizzare l'utilizzo corrente del servizio su CloudWatch grafici e dashboard.

I parametri di utilizzo di Amazon ECR corrispondono alle quote di AWS servizio. È possibile configurare gli allarmi che avvisano quando l'uso si avvicina a una quota di servizio. Per ulteriori informazioni sulle quote di servizio per Amazon ECR, consulta [Service Quotas di Amazon ECR.](service-quotas.md).

Amazon ECR pubblica i seguenti parametri nello spazio dei nomi `AWS/Usage`.


|  Metrica  |  Description  | 
| --- | --- | 
|  `CallCount`  |  Il numero di chiamate di operazione API dal tuo account. Le risorse sono definite dalle dimensioni associate al parametro. La statistica più utile per questo parametro è `SUM`, che rappresenta la somma dei valori di tutti i collaboratori durante il periodo definito.  | 
|  `ResourceCount`  |  Il numero di risorse specificate nel tuo account. Le risorse sono definite dalle dimensioni associate al parametro. La statistica più utile per questa metrica è quella `MAXIMUM` che rappresenta il numero massimo di risorse utilizzate nel periodo di 5 minuti.  | 

Le seguenti dimensioni vengono utilizzate per perfezionare i parametri di utilizzo delle API pubblicati da Amazon ECR.


|  Dimensione  |  Description  | 
| --- | --- | 
|  `Service`  |  Il nome del AWS servizio che contiene la risorsa. Per i parametri di utilizzo di Amazon ECR, il valore per questa dimensione è `ECR`.  | 
|  `Type`  |  Il tipo di entità che viene segnalato. Attualmente, l'unico valore valido per i parametri di utilizzo dell'API Amazon ECR è. `API`  | 
|  `Resource`  |  Il tipo di risorsa in esecuzione. Attualmente, Amazon ECR restituisce informazioni sull'utilizzo dell'API per le seguenti operazioni API. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonECR/latest/userguide/monitoring-usage.html)  | 
|  Class  |  La classe della risorsa monitorata. Attualmente, Amazon ECR non utilizza la dimensione della classe.  | 

Le seguenti dimensioni vengono utilizzate per perfezionare i parametri di utilizzo delle risorse pubblicati da Amazon ECR.


|  Dimensione  |  Description  | 
| --- | --- | 
|  `Service`  |  Il nome del AWS servizio che contiene la risorsa. Per i parametri di utilizzo di Amazon ECR, il valore per questa dimensione è `ECR`.  | 
|  `Type`  |  Il tipo di entità che viene segnalato. Attualmente, l'unico valore valido per i parametri di utilizzo delle risorse di Amazon ECR è. `RESOURCE`  | 
|  `Resource`  |  Il tipo di risorsa in esecuzione. Attualmente, Amazon ECR restituisce informazioni sull'utilizzo delle risorse per i seguenti parametri. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonECR/latest/userguide/monitoring-usage.html)  | 
|  `ResourceId`  |  L'identificatore della risorsa che ha comportato l'utilizzo. Attualmente, ResourceId è rilevante solo per `ImagesPerRepositoryCount` e il suo valore è formattato come «repository/your\$1repository\$1name. For example: "repository/my-repo» e restituisce il numero di immagini nel repository con il nome «my-repo».  | 

# Report di utilizzo di Amazon ECR
<a name="usage-reports"></a>

AWS fornisce uno strumento di reporting gratuito chiamato Cost Explorer che consente di analizzare il costo e l'utilizzo delle risorse Amazon ECR.

Utilizza Cost Explorer per visualizzare i grafici relativi all'utilizzo e ai costi. Puoi visualizzare i dati degli ultimi 13 mesi e prevedere le spese per i successivi tre mesi. Puoi utilizzare Cost Explorer per vedere l'andamento della spesa sulle risorse AWS nel tempo, identificare le aree che necessitano di maggiore attenzione e vedere le tendenze che puoi utilizzare per comprendere i costi. Puoi anche specificare intervalli di tempo per i dati e visualizzare i dati temporali per mese o per giorno.

I dati di misurazione nel report su costi e utilizzo mostrano l'utilizzo in tutti i repository Amazon ECR. Per ulteriori informazioni, consulta [Tagging delle risorse per la fatturazione](ecr-using-tags.md#tag-resources-for-billing).

Per ulteriori informazioni sulla creazione di un report sui AWS costi e sull'utilizzo, consulta il report [AWS sui costi e sull'utilizzo](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-reports-costusage.html) nella *Guida per l'AWS Billing utente*.

# Parametri del repository Amazon ECR
<a name="ecr-repository-metrics"></a>

Amazon ECR invia ad Amazon i parametri del pull count dei repository. CloudWatch I dati metrici di Amazon ECR vengono inviati automaticamente CloudWatch in periodi di 1 minuto. Per ulteriori informazioni CloudWatch, consulta la [Amazon CloudWatch User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/).

**Topics**
+ [Abilitazione delle CloudWatch metriche](#enable_cloudwatch)
+ [Parametri e dimensioni disponibili](#available_cloudwatch_metrics)
+ [Visualizzazione dei parametri di Amazon ECR tramite la console CloudWatch](#viewing_metrics_console)

## Abilitazione delle CloudWatch metriche
<a name="enable_cloudwatch"></a>

Amazon ECR invia automaticamente i parametri del repository per tutti i repository. Non è necessario intraprendere alcuna procedura manuale.

## Parametri e dimensioni disponibili
<a name="available_cloudwatch_metrics"></a>

Nelle seguenti sezioni sono elencate le metriche e le dimensioni che Amazon ECR invia ad Amazon. CloudWatch

### Parametri Amazon ECR
<a name="ecr-metrics"></a>

Amazon ECR fornisce dei parametri per monitorare i repository. È possibile misurare il numero di pull.

Lo spazio dei nomi `AWS/ECR` include i parametri descritti di seguito.

`RepositoryPullCount`  
Il numero totale di pull per le immagini nel repository.  
Dimensioni valide: `RepositoryName`.  
Statistiche valide: Average (Media), Minimum (Minimo), Maximum (Massimo), Sum (Somma), Sample Count (Conteggio campione). La statistica più utile è somma.  
Unità: numero intero

### Dimensioni per i parametri Amazon ECR
<a name="ecs-metrics-dimensions"></a>

I parametri di Amazon ECR utilizzano lo spazio dei nomi `AWS/ECR` e forniscono i parametri per le seguenti dimensioni.

`RepositoryName`  
Questa dimensione filtra i dati richiesti per tutte le immagini del container in un repository specificato.

## Visualizzazione dei parametri di Amazon ECR tramite la console CloudWatch
<a name="viewing_metrics_console"></a>

Puoi visualizzare i parametri del repository Amazon ECR sulla console. CloudWatch La CloudWatch console offre una visualizzazione dettagliata e personalizzabile delle tue risorse. Per ulteriori informazioni, consulta la [Amazon CloudWatch User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/).

# Eventi Amazon ECR e EventBridge
<a name="ecr-eventbridge"></a>

Amazon ti EventBridge consente di automatizzare AWS i tuoi servizi e di rispondere automaticamente a eventi di sistema come problemi di disponibilità delle applicazioni o modifiche delle risorse. Gli eventi AWS relativi ai servizi vengono forniti quasi EventBridge in tempo reale. Puoi scrivere regole semplici che indichino quali eventi sono considerati di interesse per te e includere le azioni automatizzate da intraprendere quando un evento corrisponde a una regola. Le azioni che possono essere attivate automaticamente includono le seguenti:
+ Aggiungere eventi ai gruppi di log in CloudWatch Logs
+ Invocare una funzione AWS Lambda 
+ Richiamo del comando di esecuzione di Amazon EC2
+ Inoltro dell'evento a Amazon Kinesis Data Streams
+ Attivazione di una macchina a stati AWS Step Functions 
+ Notifica di un argomento Amazon SNS o di una coda Amazon SQS

Per ulteriori informazioni, consulta [Getting Started with Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-getting-set-up.html) nella *Amazon EventBridge User Guide*.

## Esempi di eventi da Amazon ECR
<a name="ecr-eventbridge-bus"></a>

Di seguito sono riportati eventi di esempio di Amazon ECR. Gli eventi vengono emessi secondo il principio del massimo sforzo.

**Evento per il push di un'immagine completata**

Il seguente evento viene inviato al termine di ogni push dell'immagine. Per ulteriori informazioni, consulta [Trasferimento di un'immagine Docker a un repository privato Amazon ECR](docker-push-ecr-image.md).

```
{
    "version": "0",
    "id": "13cde686-328b-6117-af20-0e5566167482",
    "detail-type": "ECR Image Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-11-16T01:54:34Z",
    "region": "us-west-2",
    "resources": [],
    "detail": {
        "result": "SUCCESS",
        "repository-name": "my-repository-name",
        "image-digest": "sha256:7f5b2640fe6fb4f46592dfd3410c4a79dac4f89e4782432e0378abcd1234",
        "action-type": "PUSH",
        "image-tag": "latest"
    }
}
```

**Evento per un'azione di cache pull-through**

Il seguente evento viene inviato quando viene tentata un'azione di cache pull-through. Per ulteriori informazioni, consulta [Sincronizzazione di un registro upstream con un registro privato Amazon ECR](pull-through-cache.md).

```
{
    "version": "0",
    "id": "85fc3613-e913-7fc4-a80c-a3753e4aa9ae",
    "detail-type": "ECR Pull Through Cache Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2023-02-29T02:36:48Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:ecr:us-west-2:123456789012:repository/docker-hub/alpine"
    ],
    "detail": {
        "rule-version": "1",
        "sync-status": "SUCCESS",
        "ecr-repository-prefix": "docker-hub",
        "repository-name": "docker-hub/alpine",
        "upstream-registry-url": "public.ecr.aws",
        "image-tag": "3.17.2",
        "image-digest": "sha256:4aa08ef415aecc80814cb42fa41b658480779d80c77ab15EXAMPLE",
    }
}
```

**Evento per la scansione completa di un'immagine (scansione di base)**

Quando la scansione di base è abilitata per il registro, viene inviato il seguente evento al termine di ogni scansione dell'immagine. Il parametro `finding-severity-counts` restituirà un valore per un livello di gravità solo se ne esiste uno. Ad esempio, se l'immagine non contiene risultati a livello `CRITICAL`, non viene restituito alcun conteggio critico. Per ulteriori informazioni, consulta [Scansiona le immagini per individuare le vulnerabilità del sistema operativo in Amazon ECR](image-scanning-basic.md).

**Nota**  
Per informazioni dettagliate sugli eventi emessi da Amazon Inspector quando è abilitata la scansione avanzata, consulta [EventBridge eventi inviati per una scansione avanzata in Amazon ECR](image-scanning-enhanced-events.md).

```
{
    "version": "0",
    "id": "85fc3613-e913-7fc4-a80c-a3753e4aa9ae",
    "detail-type": "ECR Image Scan",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-10-29T02:36:48Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ecr:us-east-1:123456789012:repository/my-repository-name"
    ],
    "detail": {
        "scan-status": "COMPLETE",
        "repository-name": "my-repository-name",
        "finding-severity-counts": {
	       "CRITICAL": 10,
	       "MEDIUM": 9
	     },
        "image-digest": "sha256:7f5b2640fe6fb4f46592dfd3410c4a79dac4f89e4782432e0378abcd1234",
        "image-tags": []
    }
}
```

**Evento per una notifica di modifica su una risorsa con scansione avanzata abilitata (scansione avanzata)**

Quando la scansione avanzata è abilitata per il registro, il seguente evento viene inviato da Amazon ECR quando si verifica una modifica con una risorsa che ha abilitato la scansione avanzata. Ciò include la creazione di nuovi repository, la modifica della frequenza di scansione di un repository o la creazione o eliminazione di immagini nei repository con la scansione avanzata abilitata. Per ulteriori informazioni, consulta [Scansiona le immagini per individuare le vulnerabilità del software in Amazon ECR](image-scanning.md).

```
{
	"version": "0",
	"id": "0c18352a-a4d4-6853-ef53-0ab8638973bf",
	"detail-type": "ECR Scan Resource Change",
	"source": "aws.ecr",
	"account": "123456789012",
	"time": "2021-10-14T20:53:46Z",
	"region": "us-east-1",
	"resources": [],
	"detail": {
		"action-type": "SCAN_FREQUENCY_CHANGE",
		"repositories": [{
				"repository-name": "repository-1",
				"repository-arn": "arn:aws:ecr:us-east-1:123456789012:repository/repository-1",
				"scan-frequency": "SCAN_ON_PUSH",
				"previous-scan-frequency": "MANUAL"
			},
			{
				"repository-name": "repository-2",
				"repository-arn": "arn:aws:ecr:us-east-1:123456789012:repository/repository-2",
				"scan-frequency": "CONTINUOUS_SCAN",
				"previous-scan-frequency": "SCAN_ON_PUSH"
			},
			{
				"repository-name": "repository-3",
				"repository-arn": "arn:aws:ecr:us-east-1:123456789012:repository/repository-3",
				"scan-frequency": "CONTINUOUS_SCAN",
				"previous-scan-frequency": "SCAN_ON_PUSH"
			}
		],
		"resource-type": "REPOSITORY",
		"scan-type": "ENHANCED"
	}
}
```

**Evento per l'eliminazione di un'immagine**

Il seguente evento viene inviato quando un'immagine viene eliminata. Per ulteriori informazioni, consulta [Eliminazione di un'immagine in Amazon ECR](delete_image.md).

```
{
    "version": "0",
    "id": "dd3b46cb-2c74-f49e-393b-28286b67279d",
    "detail-type": "ECR Image Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-11-16T02:01:05Z",
    "region": "us-west-2",
    "resources": [],
    "detail": {
        "result": "SUCCESS",
        "repository-name": "my-repository-name",
        "image-digest": "sha256:7f5b2640fe6fb4f46592dfd3410c4a79dac4f89e4782432e0378abcd1234",
        "action-type": "DELETE",
        "image-tag": "latest"
    }
}
```

**Evento per un'azione di archiviazione di immagini**

Il seguente evento viene inviato quando un'immagine viene archiviata. Il `target-storage-class` campo verrà impostato su. `ARCHIVE` L'evento include i tipi di media manifest e artifact per identificare il tipo di contenuto da archiviare.

```
{
    "version": "0",
    "id": "4f5ec4d5-4de4-7aad-a046-EXAMPLE",
    "detail-type": "ECR Image Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-08-06T00:58:09Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "action-type": "UPDATE_STORAGE_CLASS",
        "target-storage-class": "ARCHIVE",
        "image-digest": "sha256:f98d67af8e53a536502bfc600de3266556b06ed635a32d60aa7a5fe6d7e609d7",
        "repository-name": "ubuntu",
        "result": "SUCCESS",
        "manifest-media-type": "application/vnd.oci.image.manifest.v1+json",
        "artifact-media-type": "application/vnd.oci.image.config.v1+json"
    }
}
```

**Evento relativo a un'azione di ripristino dell'immagine**

Il seguente evento viene inviato quando viene ripristinata un'immagine archiviata. Il `target-storage-class` campo verrà impostato su. `STANDARD` L'evento include un `last-activated-at` campo che mostra quando l'immagine è stata ripristinata l'ultima volta.

```
{
    "version": "0",
    "id": "7b8fc5e6-5ef5-8bbe-b157-EXAMPLE",
    "detail-type": "ECR Image Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-08-06T01:15:22Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "action-type": "UPDATE_STORAGE_CLASS",
        "target-storage-class": "STANDARD",
        "image-digest": "sha256:f98d67af8e53a536502bfc600de3266556b06ed635a32d60aa7a5fe6d7e609d7",
        "repository-name": "ubuntu",
        "result": "SUCCESS",
        "manifest-media-type": "application/vnd.oci.image.manifest.v1+json",
        "artifact-media-type": "application/vnd.oci.image.config.v1+json",
        "last-activated-at": "2025-10-10T19:13:02.74Z"
    }
}
```

**Evento relativo a un'azione di ripristino del referente**

L'evento seguente viene inviato quando viene ripristinato un referrer archiviato (elemento di riferimento come un SBOM, una firma o un attestato). Nota che serve a distinguerlo dalle normali azioni `detail-type` relative `ECR Referrer Action` all'immagine. I `artifact-media-type` campi `manifest-media-type` e identificano il tipo specifico di referente da ripristinare. In questo esempio, viene ripristinato un elemento SBOM.

```
{
    "version": "0",
    "id": "8c9gd6f7-6fg6-9ccf-c268-EXAMPLE",
    "detail-type": "ECR Referrer Action",
    "source": "aws.ecr",
    "account": "123456789012",
    "time": "2019-08-06T01:20:45Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "action-type": "UPDATE_STORAGE_CLASS",
        "target-storage-class": "STANDARD",
        "image-digest": "sha256:f98d67af8e53a536502bfc600de3266556b06ed635a32d60aa7a5fe6d7e609d7",
        "repository-name": "sbom",
        "result": "SUCCESS",
        "manifest-media-type": "application/vnd.cncf.oras.artifact.manifest.v1+json",
        "artifact-media-type": "text/sbom+json",
        "last-activated-at": "2025-10-10T19:13:02.74Z"
    }
}
```

**Evento per una replica dell'immagine completata**

Il seguente evento viene inviato al termine di ogni replica dell'immagine. Per ulteriori informazioni, consulta [Private image replication in Amazon ECR](replication.md).

```
{
  "version": "0",
  "id": "c8b133b1-6029-ee73-e2a1-4f466b8ba999",
  "detail-type": "ECR Replication Action",
  "source": "aws.ecr",
  "account": "123456789012",
  "time": "2024-05-08T20:44:54Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:ecr:us-east-1:123456789012:repository/docker-hub/alpine"
  ],
  "detail": {
    "result": "SUCCESS",
    "repository-name": "docker-hub/alpine",
    "image-digest": "sha256:7f5b2640fe6fb4f46592dfd3410c4a79dac4f89e4782432e0378abcd1234",
    "source-account": "123456789012",
    "action-type": "REPLICATE",
    "source-region": "us-west-2",
    "image-tag": "3.17.2"
  }
}
```

**Evento relativo a una replica dell'immagine non riuscita**

Il seguente evento viene inviato quando una replica dell'immagine fallisce. Il `result` campo conterrà `FAILED` e nei dettagli dell'evento potrebbero essere incluse ulteriori informazioni sull'errore.

```
{
  "version": "0",
  "id": "d9c244c2-7130-ff84-f3b2-5g577c9cb000",
  "detail-type": "ECR Replication Action",
  "source": "aws.ecr",
  "account": "123456789012",
  "time": "2024-05-08T20:45:12Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:ecr:us-east-1:123456789012:repository/my-app"
  ],
  "detail": {
    "result": "FAILED",
    "repository-name": "my-app",
    "image-digest": "sha256:8g6c3751gf7gc5g47603ege4511d5a80ead5g90f5893543f1489bde2345",
    "source-account": "123456789012",
    "action-type": "REPLICATE",
    "source-region": "us-west-2",
    "image-tag": "latest"
  }
}
```

# Registrazione delle azioni Amazon ECR con AWS CloudTrail
<a name="logging-using-cloudtrail"></a>

Amazon ECR è integrato con AWS CloudTrail, un servizio che fornisce un registro delle azioni intraprese da un utente, un ruolo o un AWS servizio in Amazon ECR. CloudTrail acquisisce le seguenti azioni Amazon ECR come eventi:
+ Tutte le chiamate API, incluse le chiamate dalla console Amazon ECR
+ Tutte le operazioni intraprese a causa delle impostazioni di crittografia nei repository
+ Tutte le operazioni eseguite a causa delle regole delle policy relative al ciclo di vita, incluse le operazioni riuscite e non riuscite
**Importante**  
A causa dei limiti di dimensione dei singoli CloudTrail eventi, per le azioni relative alle politiche del ciclo di vita in cui 10 o più immagini sono scadute, Amazon ECR invia più eventi a. CloudTrail Inoltre, Amazon ECR include un massimo di 100 tag per immagine.

Quando viene creato un trail, puoi abilitare la distribuzione continua di CloudTrail eventi a un bucket Amazon S3, inclusi gli eventi per Amazon ECR. **Se non configuri un percorso, puoi comunque visualizzare gli eventi più recenti nella CloudTrail console nella cronologia degli eventi.** Utilizzando queste informazioni, puoi determinare la richiesta effettuata ad Amazon ECR, l'indirizzo IP da cui è stata effettuata la richiesta, l'autore della richiesta, il momento in cui è stata effettuata e altri dettagli. 

Per ulteriori informazioni, consulta la [Guida per l'utente AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/).

## Informazioni su Amazon ECR in CloudTrail
<a name="service-name-info-in-cloudtrail"></a>

CloudTrail è abilitato sul tuo AWS account al momento della creazione dell'account. Quando si verifica un'attività in Amazon ECR, tale attività viene registrata in un CloudTrail evento insieme ad altri eventi di AWS servizio nella **cronologia** degli eventi. Puoi visualizzare, cercare e scaricare eventi recenti nel tuo AWS account. Per ulteriori informazioni, consulta [Visualizzazione degli eventi con la cronologia degli CloudTrail eventi](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html). 

Per una registrazione continua degli eventi nel tuo AWS account, inclusi gli eventi per Amazon ECR, crea un percorso. Un trail consente di CloudTrail inviare file di log a un bucket Amazon S3. Quando si crea un percorso nella console, è possibile applicarlo a una singola regione o a tutte le regioni geografiche. Il trail registra gli eventi nella AWS partizione e consegna i file di log al bucket Amazon S3 specificato. Inoltre, puoi configurare altri AWS servizi per analizzare e agire in base ai dati sugli eventi raccolti nei log. CloudTrail Per ulteriori informazioni, consulta: 
+ [Creare un percorso per il tuo account AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [AWS integrazioni di servizi con log CloudTrail ](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [Configurazione delle notifiche Amazon SNS per CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)
+ [Ricezione di file di CloudTrail registro da più regioni](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html) e [ricezione di file di CloudTrail registro da](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html) più account

Tutte le azioni dell'API Amazon ECR vengono registrate CloudTrail e documentate nell'[Amazon Elastic Container Registry](https://docs.aws.amazon.com/AmazonECR/latest/APIReference/) API Reference. Quando esegui attività comuni, nei file di CloudTrail registro vengono generate sezioni per ogni azione API che fa parte di tale attività. Ad esempio, quando si crea un repository`GetAuthorizationToken`, `CreateRepository` le `SetRepositoryPolicy` sezioni vengono generate nei file di CloudTrail registro. Quando inviate un'immagine a un repository,,,`InitiateLayerUpload`, e `UploadLayerPart` `CompleteLayerUpload``PutImage`, se il montaggio su BLOB è abilitato, `MountLayer` vengono generate delle sezioni. Quando esegui il pull di un'immagine, vengono generate le sezioni `GetDownloadUrlForLayer` e `BatchGetImage`. Quando si archivia o si ripristina un'immagine, viene generata una `UpdateImageStorageClass` sezione. Quando OCI i client che supportano la OCI 1.1 specifica recuperano l'elenco di referrer, o artefatti di riferimento, per un'immagine utilizzando l'API Referrers, viene emesso un evento. `ListImageReferrers` CloudTrail Per esempi di attività comuni, consulta [CloudTrail esempi di immissione di log](#cloudtrail-examples).

Ogni evento o voce di log contiene informazioni sull’utente che ha generato la richiesta. Le informazioni di identità consentono di determinare quanto segue:
+ Se la richiesta è stata effettuata con le credenziali utente o root.
+ Se la richiesta è stata effettuata con le credenziali di sicurezza temporanee per un ruolo o un utente federato.
+ Se la richiesta è stata effettuata da un altro servizio AWS 

Per ulteriori informazioni, consulta l'elemento [CloudTrail `userIdentity`](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html).

## Informazioni sulle voci del file di log Amazon ECR
<a name="understanding-service-name-entries"></a>

Un trail è una configurazione che consente la distribuzione di eventi come file di log in un bucket Amazon S3 specificato dall'utente. CloudTrail i file di registro contengono una o più voci di registro. Un evento rappresenta una singola richiesta proveniente da qualsiasi fonte e include informazioni sull'azione richiesta, la data e l'ora dell'azione, i parametri della richiesta e altre informazioni. CloudTrail i file di registro non sono una traccia ordinata dello stack delle chiamate API pubbliche, quindi non vengono visualizzati in un ordine specifico. 

### CloudTrail esempi di immissione di log
<a name="cloudtrail-examples"></a>

Di seguito sono riportati esempi di immissione di CloudTrail log per alcune attività comuni di Amazon ECR.

Questi esempi sono stati formattati per migliorare la leggibilità. In un file di CloudTrail registro, tutte le voci e gli eventi sono concatenati in un'unica riga. Inoltre, questo esempio è limitato a una singola voce Amazon ECR. In un vero file di CloudTrail registro, puoi vedere voci ed eventi provenienti da più servizi. AWS 

**Importante**  
L'**origine IPAddress** è l'indirizzo IP da cui è stata effettuata la richiesta. Per le azioni che provengono dalla console di servizio, l'indirizzo riportato è relativo alla risorsa sottostante, non al server Web della console. Per i servizi in AWS, viene visualizzato solo il nome DNS. Valutiamo comunque l'autenticazione con l'IP di origine del client anche se è stato modificato in base al nome DNS del AWS servizio.

**Topics**
+ [Esempio: crea operazione del repository](#cloudtrail-examples-create-repository)
+ [Esempio: azione dell' AWS KMS `CreateGrant`API durante la creazione di un repository Amazon ECR](#cloudtrail-examples-create-repository-kms)
+ [Esempio: operazione di invio immagine](#cloudtrail-examples-push-image)
+ [Esempio: operazione di estrazione immagine](#cloudtrail-examples-image-pull)
+ [Esempio: operazione delle policy relative al ciclo di vita delle immagini](#cloudtrail-examples-lcp)
+ [Esempio: azione di archiviazione delle immagini](#cloudtrail-examples-image-archive)
+ [Esempio: azione di ripristino dell'immagine](#cloudtrail-examples-image-restore)
+ [Esempio: azione Image Referrers](#cloudtrail-examples-image-referrers-action)

#### Esempio: crea operazione del repository
<a name="cloudtrail-examples-create-repository"></a>

L'esempio seguente mostra una voce di CloudTrail registro che illustra l'azione. `CreateRepository`

```
{
    "eventVersion": "1.04",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
        "arn": "arn:aws:sts::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "2018-07-11T21:54:07Z"
            },
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AIDACKCEVSQ6C2EXAMPLE",
                "arn": "arn:aws:iam::123456789012:role/Admin",
                "accountId": "123456789012",
                "userName": "Admin"
            }
        }
    },
    "eventTime": "2018-07-11T22:17:43Z",
    "eventSource": "ecr.amazonaws.com",
    "eventName": "CreateRepository",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "203.0.113.12",
    "userAgent": "console.amazonaws.com",
    "requestParameters": {
        "repositoryName": "testrepo"
    },
    "responseElements": {
        "repository": {
            "repositoryArn": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
            "repositoryName": "testrepo",
            "repositoryUri": "123456789012.dkr.ecr.us-east-2.amazonaws.com/testrepo",
            "createdAt": "Jul 11, 2018 10:17:44 PM",
            "registryId": "123456789012"
        }
    },
    "requestID": "cb8c167e-EXAMPLE",
    "eventID": "e3c6f4ce-EXAMPLE",
    "resources": [
        {
            "ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
            "accountId": "123456789012"
        }
    ],
    "eventType": "AwsApiCall",
    "recipientAccountId": "123456789012"
}
```

#### Esempio: azione dell' AWS KMS `CreateGrant`API durante la creazione di un repository Amazon ECR
<a name="cloudtrail-examples-create-repository-kms"></a>

L'esempio seguente mostra una voce di CloudTrail registro che illustra l' AWS KMS `CreateGrant`azione da eseguire durante la creazione di un repository Amazon ECR con crittografia KMS abilitata. Per ogni repository creato con la crittografia KMS abilitata, dovresti vedere due voci di registro. `CreateGrant` CloudTrail

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDAIEP6W46J43IG7LXAQ",
        "arn": "arn:aws:iam::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "Mary_Major",
        "sessionContext": {
            "sessionIssuer": {
                
            },
            "webIdFederationData": {
                
            },
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "2020-06-10T19:22:10Z"
            }
        },
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2020-06-10T19:22:10Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "203.0.113.12",
    "userAgent": "console.amazonaws.com",
    "requestParameters": {
        "keyId": "4b55e5bf-39c8-41ad-b589-18464af7758a",
        "granteePrincipal": "ecr.us-west-2.amazonaws.com",
        "operations": [
            "GenerateDataKey",
            "Decrypt"
        ],
        "retiringPrincipal": "ecr.us-west-2.amazonaws.com",
        "constraints": {
            "encryptionContextSubset": {
                "aws:ecr:arn": "arn:aws:ecr:us-west-2:123456789012:repository/testrepo"
            }
        }
    },
    "responseElements": {
        "grantId": "3636af9adfee1accb67b83941087dcd45e7fadc4e74ff0103bb338422b5055f3"
    },
    "requestID": "047b7dea-b56b-4013-87e9-a089f0f6602b",
    "eventID": "af4c9573-c56a-4886-baca-a77526544469",
    "readOnly": false,
    "resources": [
        {
            "accountId": "123456789012",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:123456789012:key/4b55e5bf-39c8-41ad-b589-18464af7758a"
        }
    ],
    "eventType": "AwsApiCall",
    "recipientAccountId": "123456789012"
}
```

#### Esempio: operazione di invio immagine
<a name="cloudtrail-examples-push-image"></a>

L'esempio seguente mostra una voce di CloudTrail registro che mostra un'immagine push che utilizza l'azione. `PutImage`

**Nota**  
Quando inserite un'immagine`InitiateLayerUpload`, vedrete anche `UploadLayerPart` i `CompleteLayerUpload` riferimenti nei CloudTrail log.

```
{
    "eventVersion": "1.04",
    "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
    "arn": "arn:aws:sts::123456789012:user/Mary_Major",
    "accountId": "123456789012",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
		"userName": "Mary_Major",
		"sessionContext": {
			"attributes": {
				"mfaAuthenticated": "false",
				"creationDate": "2019-04-15T16:42:14Z"
			}
		}
	},
	"eventTime": "2019-04-15T16:45:00Z",
	"eventSource": "ecr.amazonaws.com",
	"eventName": "PutImage",
	"awsRegion": "us-east-2",
	"sourceIPAddress": "AWS Internal",
	"userAgent": "AWS Internal",
	"requestParameters": {
		"repositoryName": "testrepo",
		"imageTag": "latest",
		"registryId": "123456789012",
		"imageManifest": "{\n   \"schemaVersion\": 2,\n   \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n   \"config\": {\n      \"mediaType\": \"application/vnd.docker.container.image.v1+json\",\n      \"size\": 5543,\n      \"digest\": \"sha256:000b9b805af1cdb60628898c9f411996301a1c13afd3dbef1d8a16ac6dbf503a\"\n   },\n   \"layers\": [\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 43252507,\n         \"digest\": \"sha256:3b37166ec61459e76e33282dda08f2a9cd698ca7e3d6bc44e6a6e7580cdeff8e\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 846,\n         \"digest\": \"sha256:504facff238fde83f1ca8f9f54520b4219c5b8f80be9616ddc52d31448a044bd\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 615,\n         \"digest\": \"sha256:ebbcacd28e101968415b0c812b2d2dc60f969e36b0b08c073bf796e12b1bb449\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 850,\n         \"digest\": \"sha256:c7fb3351ecad291a88b92b600037e2435c84a347683d540042086fe72c902b8a\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 168,\n         \"digest\": \"sha256:2e3debadcbf7e542e2aefbce1b64a358b1931fb403b3e4aeca27cb4d809d56c2\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 37720774,\n         \"digest\": \"sha256:f8c9f51ad524d8ae9bf4db69cd3e720ba92373ec265f5c390ffb21bb0c277941\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 30432107,\n         \"digest\": \"sha256:813a50b13f61cf1f8d25f19fa96ad3aa5b552896c83e86ce413b48b091d7f01b\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 197,\n         \"digest\": \"sha256:7ab043301a6187ea3293d80b30ba06c7bf1a0c3cd4c43d10353b31bc0cecfe7d\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 154,\n         \"digest\": \"sha256:67012cca8f31dc3b8ee2305e7762fee20c250513effdedb38a1c37784a5a2e71\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 176,\n         \"digest\": \"sha256:3bc892145603fffc9b1c97c94e2985b4cb19ca508750b15845a5d97becbd1a0e\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 183,\n         \"digest\": \"sha256:6f1c79518f18251d35977e7e46bfa6c6b9cf50df2a79d4194941d95c54258d18\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 212,\n         \"digest\": \"sha256:b7bcfbc2e2888afebede4dd1cd5eebf029bb6315feeaf0b56e425e11a50afe42\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 212,\n         \"digest\": \"sha256:2b220f8b0f32b7c2ed8eaafe1c802633bbd94849b9ab73926f0ba46cdae91629\"\n      }\n   ]\n}"
	},
	"responseElements": {
		"image": {
			"repositoryName": "testrepo",
			"imageManifest": "{\n   \"schemaVersion\": 2,\n   \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n   \"config\": {\n      \"mediaType\": \"application/vnd.docker.container.image.v1+json\",\n      \"size\": 5543,\n      \"digest\": \"sha256:000b9b805af1cdb60628898c9f411996301a1c13afd3dbef1d8a16ac6dbf503a\"\n   },\n   \"layers\": [\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 43252507,\n         \"digest\": \"sha256:3b37166ec61459e76e33282dda08f2a9cd698ca7e3d6bc44e6a6e7580cdeff8e\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 846,\n         \"digest\": \"sha256:504facff238fde83f1ca8f9f54520b4219c5b8f80be9616ddc52d31448a044bd\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 615,\n         \"digest\": \"sha256:ebbcacd28e101968415b0c812b2d2dc60f969e36b0b08c073bf796e12b1bb449\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 850,\n         \"digest\": \"sha256:c7fb3351ecad291a88b92b600037e2435c84a347683d540042086fe72c902b8a\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 168,\n         \"digest\": \"sha256:2e3debadcbf7e542e2aefbce1b64a358b1931fb403b3e4aeca27cb4d809d56c2\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 37720774,\n         \"digest\": \"sha256:f8c9f51ad524d8ae9bf4db69cd3e720ba92373ec265f5c390ffb21bb0c277941\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 30432107,\n         \"digest\": \"sha256:813a50b13f61cf1f8d25f19fa96ad3aa5b552896c83e86ce413b48b091d7f01b\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 197,\n         \"digest\": \"sha256:7ab043301a6187ea3293d80b30ba06c7bf1a0c3cd4c43d10353b31bc0cecfe7d\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 154,\n         \"digest\": \"sha256:67012cca8f31dc3b8ee2305e7762fee20c250513effdedb38a1c37784a5a2e71\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 176,\n         \"digest\": \"sha256:3bc892145603fffc9b1c97c94e2985b4cb19ca508750b15845a5d97becbd1a0e\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 183,\n         \"digest\": \"sha256:6f1c79518f18251d35977e7e46bfa6c6b9cf50df2a79d4194941d95c54258d18\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 212,\n         \"digest\": \"sha256:b7bcfbc2e2888afebede4dd1cd5eebf029bb6315feeaf0b56e425e11a50afe42\"\n      },\n      {\n         \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n         \"size\": 212,\n         \"digest\": \"sha256:2b220f8b0f32b7c2ed8eaafe1c802633bbd94849b9ab73926f0ba46cdae91629\"\n      }\n   ]\n}",
			"registryId": "123456789012",
			"imageId": {
				"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e",
				"imageTag": "latest"
			}
		}
	},
	"requestID": "cf044b7d-5f9d-11e9-9b2a-95983139cc57",
	"eventID": "2bfd4ee2-2178-4a82-a27d-b12939923f0f",
	"resources": [{
		"ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
		"accountId": "123456789012"
	}],
	"eventType": "AwsApiCall",
	"recipientAccountId": "123456789012"
}
```

#### Esempio: operazione di estrazione immagine
<a name="cloudtrail-examples-image-pull"></a>

L'esempio seguente mostra una voce di CloudTrail registro che mostra un'immagine pull che utilizza l'azione. `BatchGetImage`

**Nota**  
Quando esegui il pull di un'immagine, se non hai ancora l'immagine localmente, vedrai anche i riferimenti `GetDownloadUrlForLayer` nei log CloudTrail .

```
{
    "eventVersion": "1.04",
    "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
    "arn": "arn:aws:sts::123456789012:user/Mary_Major",
    "accountId": "123456789012",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
		"userName": "Mary_Major",
		"sessionContext": {
			"attributes": {
				"mfaAuthenticated": "false",
				"creationDate": "2019-04-15T16:42:14Z"
			}
		}
	},
	"eventTime": "2019-04-15T17:23:20Z",
	"eventSource": "ecr.amazonaws.com",
	"eventName": "BatchGetImage",
	"awsRegion": "us-east-2",
	"sourceIPAddress": "ecr.amazonaws.com",
	"userAgent": "ecr.amazonaws.com",
	"requestParameters": {
		"imageIds": [{
			"imageTag": "latest"
		}],
		"acceptedMediaTypes": [
			"application/json",
			"application/vnd.oci.image.manifest.v1+json",
			"application/vnd.oci.image.index.v1+json",
			"application/vnd.docker.distribution.manifest.v2+json",
			"application/vnd.docker.distribution.manifest.list.v2+json",
			"application/vnd.docker.distribution.manifest.v1+prettyjws"
		],
		"repositoryName": "testrepo",
		"registryId": "123456789012"
	},
	"responseElements": null,
	"requestID": "2a1b97ee-5fa3-11e9-a8cd-cd2391aeda93",
	"eventID": "c84f5880-c2f9-4585-9757-28fa5c1065df",
	"resources": [{
		"ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
		"accountId": "123456789012"
	}],
	"eventType": "AwsApiCall",
	"recipientAccountId": "123456789012"
}
```

#### Esempio: operazione delle policy relative al ciclo di vita delle immagini
<a name="cloudtrail-examples-lcp"></a>

L'esempio seguente mostra una voce di CloudTrail registro che mostra quando un'immagine è scaduta a causa di una regola del ciclo di vita. Questo tipo di evento può essere individuato applicando un filtro `PolicyExecutionEvent` per il campo del nome dell'evento.

Quando si testa un'anteprima di una politica del ciclo di vita, Amazon ECR genera una voce di CloudTrail registro con il campo del nome dell'evento di`DryRunEvent`, con la stessa struttura di. `PolicyExecutionEvent` Modificando il nome dell'evento in`DryRunEvent`, puoi invece filtrare gli eventi di dry run.

**Importante**  
A causa dei limiti di dimensione dei singoli CloudTrail eventi, per le azioni relative alle politiche del ciclo di vita in cui 10 o più immagini sono scadute, Amazon ECR invia più eventi a. CloudTrail Inoltre, Amazon ECR include un massimo di 100 tag per immagine.

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "accountId": "123456789012",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2020-03-12T20:22:12Z",
    "eventSource": "ecr.amazonaws.com",
    "eventName": "PolicyExecutionEvent",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": null,
    "responseElements": null,
    "eventID": "9354dd7f-9aac-4e9d-956d-12561a4923aa",
    "readOnly": true,
    "resources": [
        {
            "ARN": "arn:aws:ecr:us-west-2:123456789012:repository/testrepo",
            "accountId": "123456789012",
            "type": "AWS::ECR::Repository"
        }
    ],
    "eventType": "AwsServiceEvent",
    "recipientAccountId": "123456789012",
    "serviceEventDetails": {
        "repositoryName": "testrepo",
        "lifecycleEventPolicy": {
            "lifecycleEventRules": [
                {
                    "rulePriority": 1,
                    "description": "remove all images > 2",
                    "lifecycleEventSelection": {
                        "tagStatus": "Any",
                        "tagPrefixList": [],
                        "countType": "Image count more than",
                        "countNumber": 2
                    },
                    "action": "expire"
                }
            ],
            "lastEvaluatedAt": 0,
            "policyVersion": 1,
            "policyId": "ceb86829-58e7-9498-920c-aa042e33037b"
        },
        "lifecycleEventImageActions": [
            {
                "lifecycleEventImage": {
                    "digest": "sha256:ddba4d27a7ffc3f86dd6c2f92041af252a1f23a8e742c90e6e1297bfa1bc0c45",
                    "tagStatus": "Tagged",
                    "tagList": [
                        "alpine"
                    ],
                    "pushedAt": 1584042813000
                },
                "rulePriority": 1
            },
            {
                "lifecycleEventImage": {
                    "digest": "sha256:6ab380c5a5acf71c1b6660d645d2cd79cc8ce91b38e0352cbf9561e050427baf",
                    "tagStatus": "Tagged",
                    "tagList": [
                        "centos"
                    ],
                    "pushedAt": 1584042842000
                },
                "rulePriority": 1
            }
        ],
        "lifecycleEventFailureDetails": [
            {
                "lifecycleEventImage": {
                    "digest": "sha256:9117e1bc28cd20751e584b4ccd19b1178d14cf02d134b04ce6be0cc51bff762a",
                    "tagStatus": "Untagged",
                    "tagList": [],
                    "pushedAt": 1584042844000
                },
                "rulePriority": 1,
                "failureCode": "ImageReferencedByManifestList",
                "failureReason": "Requested image referenced by manifest list: [sha256:4b27c83d44a18c31543039d9e8b2786043ec6c8d00804d5800c5148d6b6f65bc]"
            }
        ]
    }
}
```

#### Esempio: azione di archiviazione delle immagini
<a name="cloudtrail-examples-image-archive"></a>

L'esempio seguente mostra una voce di CloudTrail registro che dimostra che un'immagine viene archiviata utilizzando l'`UpdateImageStorageClass`azione con `targetStorageClass` set to. `ARCHIVE`

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
        "arn": "arn:aws:sts::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
		"userName": "Mary_Major",
		"sessionContext": {
			"attributes": {
				"mfaAuthenticated": "false",
				"creationDate": "2019-04-15T16:42:14Z"
			}
		}
	},
	"eventTime": "2019-04-15T16:45:00Z",
	"eventSource": "ecr.amazonaws.com",
	"eventName": "UpdateImageStorageClass",
	"awsRegion": "us-east-2",
	"sourceIPAddress": "AWS Internal",
	"userAgent": "AWS Internal",
	"requestParameters": {
		"repositoryName": "testrepo",
		"imageId": {
			"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e"
		},
		"targetStorageClass": "ARCHIVE",
		"registryId": "123456789012"
	},
	"responseElements": {
		"image": {
			"registryId": "123456789012",
			"repositoryName": "testrepo",
			"imageId": {
				"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e"
			},
			"imageStatus": "ARCHIVED"
		}
	},
	"requestID": "cf044b7d-EXAMPLE",
	"eventID": "2bfd4ee2-EXAMPLE",
	"readOnly": false,
	"resources": [{
		"ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
		"accountId": "123456789012"
	}],
	"eventType": "AwsApiCall",
	"managementEvent": true,
	"recipientAccountId": "123456789012",
	"eventCategory": "Management"
}
```

#### Esempio: azione di ripristino dell'immagine
<a name="cloudtrail-examples-image-restore"></a>

Gli esempi seguenti mostrano le voci di CloudTrail registro che dimostrano il ripristino di un'immagine. Quando si ripristina un'immagine archiviata, vengono generati due eventi:

1. Un evento di chiamata API all'avvio del ripristino

1. Un evento di servizio al termine dell'operazione di ripristino asincrona

**Evento di chiamata API (avvio del ripristino)**

L'esempio seguente mostra la chiamata API iniziale per ripristinare un'immagine utilizzando l'`UpdateImageStorageClass`azione con `targetStorageClass` set to`STANDARD`. La risposta mostra lo stato dell'immagine come`ACTIVATING`.

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
        "arn": "arn:aws:sts::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
		"userName": "Mary_Major",
		"sessionContext": {
			"attributes": {
				"mfaAuthenticated": "false",
				"creationDate": "2019-04-15T16:42:14Z"
			}
		}
	},
	"eventTime": "2019-04-15T16:45:00Z",
	"eventSource": "ecr.amazonaws.com",
	"eventName": "UpdateImageStorageClass",
	"awsRegion": "us-east-2",
	"sourceIPAddress": "AWS Internal",
	"userAgent": "AWS Internal",
	"requestParameters": {
		"repositoryName": "testrepo",
		"imageId": {
			"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e"
		},
		"targetStorageClass": "STANDARD",
		"registryId": "123456789012"
	},
	"responseElements": {
		"image": {
			"registryId": "123456789012",
			"repositoryName": "testrepo",
			"imageId": {
				"imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e"
			},
			"imageStatus": "ACTIVATING"
		}
	},
	"requestID": "cf044b7d-EXAMPLE",
	"eventID": "2bfd4ee2-EXAMPLE",
	"readOnly": false,
	"resources": [{
		"ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo",
		"accountId": "123456789012"
	}],
	"eventType": "AwsApiCall",
	"managementEvent": true,
	"recipientAccountId": "123456789012",
	"eventCategory": "Management"
}
```

**Evento di servizio (completamento del ripristino)**

L'esempio seguente mostra l'evento di servizio generato al termine dell'operazione di ripristino asincrona. Questo tipo di evento può essere individuato applicando un filtro `ImageActivationEvent` per il campo del nome dell'evento. La `serviceEventDetails` sezione contiene il risultato del ripristino e lo stato finale dell'immagine.

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "accountId": "123456789012",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2020-03-12T20:22:12Z",
    "eventSource": "ecr.amazonaws.com",
    "eventName": "ImageActivationEvent",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": null,
    "responseElements": null,
    "eventID": "9354dd7f-EXAMPLE",
    "readOnly": true,
    "resources": [
        {
            "ARN": "arn:aws:ecr:us-west-2:123456789012:repository/testrepo",
            "accountId": "123456789012",
            "type": "AWS::ECR::Repository"
        }
    ],
    "eventType": "AwsServiceEvent",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "serviceEventDetails": {
        "repositoryName": "testrepo",
        "imageDigest": "sha256:98c8b060c21d9adbb6b8c41b916e95e6307102786973ab93a41e8b86d1fc6d3e",
        "targetStorageClass": "STANDARD",
        "result": "SUCCESS",
        "imageStatus": "ACTIVE"
    },
    "eventCategory": "Management"
}
```

#### Esempio: azione Image Referrers
<a name="cloudtrail-examples-image-referrers-action"></a>

L'esempio seguente mostra una voce di AWS CloudTrail registro che mostra quando un client OCI 1.1 conforme recupera un elenco di referrer, o artefatti di riferimento, per un'immagine utilizzando l'API. `Referrers`

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name",
        "arn": "arn:aws:sts::123456789012:user/Mary_Major",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AIDACKCEVSQ6C2EXAMPLE",
                "arn": "arn:aws:iam::123456789012:role/Admin",
                "accountId": "123456789012",
                "userName": "Admin"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2024-10-08T16:38:39Z",
                "mfaAuthenticated": "false"
            },
            "ec2RoleDelivery": "2.0"
        },
        "invokedBy": "ecr.amazonaws.com"
    },
    "eventTime": "2024-10-08T17:22:51Z",
    "eventSource": "ecr.amazonaws.com",
    "eventName": "ListImageReferrers",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "ecr.amazonaws.com",
    "userAgent": "ecr.amazonaws.com",
    "requestParameters": {
        "registryId": "123456789012",
        "repositoryName": "testrepo",
        "subjectId": {
            "imageDigest": "sha256:000b9b805af1cdb60628898c9f411996301a1c13afd3dbef1d8a16ac6dbf503a"
        },
        "nextToken": "urD72mdD/mC8b5-EXAMPLE"
    },
    "responseElements": null,
    "requestID": "cb8c167e-EXAMPLE",
    "eventID": "e3c6f4ce-EXAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "123456789012",
            "ARN": "arn:aws:ecr:us-east-2:123456789012:repository/testrepo"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "eventCategory": "Management"
}
```